C/C++编程:txt文件中提取数据,该怎么解决

C/C++编程:txt文件中提取数据
txt文件中内容的格式为:
“5”,“23:45:34:78:21:45”,"-34","sdfsdfdsf"
“7”,“32:47:34:89:21:75”,"-80","sdfsdfsdf"
“5”,“23:45:34:78:21:45”,"-54","sdfsdfdsf"
“7”,“32:47:34:89:21:75”,"-27","sdfsdfsdf"
 …………………………………………
 …………………………………………
每一行格式都是一模一样的。我想提取出-34、-80、-54、-27那一列的数据,请问各位高手用C/C++该如何处理,怎么实现???
C/C++编程:txt文件中提取数据

------解决方案--------------------
我不知道这个是不是最简单的方法:
你可以getline取出每一行,然后找到第6个和第7个引号的位置,p_i,p_j .然后p_i+1到p_j-1就是数字了。
如何你想提取整形的话,之后先判断是否有减号,然后每个字母减48就是对应的数字。然后十进制。
------解决方案--------------------
如果你用matlab会快很多,直接导入就可以了。
------解决方案--------------------
用awk也挺方便的
------解决方案--------------------
改下文件扩展名cvs,打开即可。
------解决方案--------------------
csv
引用:
改下文件扩展名cvs,打开即可。

------解决方案--------------------
我也是用1楼的算法,其实本来喜欢先sizeof读出无关字符串的长度的但是这里有引号我就算了。
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
vector<int> vData; //存放所需数据
ifstream fin("data.txt");
while (!fin.eof())
{
string line;
const char charToSearch = '-'; //查找'-'
fin >> line;   //存放一行的数据
int charPos = line.find(charToSearch);
int temp; //所需数据
temp = 10 * (line[charPos + 1] - 48) + (line[charPos + 2] - 48);
vData.push_back(temp);
}
fin.close();

//检测读入数据
for_each(vData.begin(), 
     vData.end(), 
 [](int& data){ cout << data << endl; });

return 0;
}

C/C++编程:txt文件中提取数据,该怎么解决