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++该如何处理,怎么实现???
------解决方案--------------------
我不知道这个是不是最简单的方法:
你可以getline取出每一行,然后找到第6个和第7个引号的位置,p_i,p_j .然后p_i+1到p_j-1就是数字了。
如何你想提取整形的话,之后先判断是否有减号,然后每个字母减48就是对应的数字。然后十进制。
------解决方案--------------------
如果你用matlab会快很多,直接导入就可以了。
------解决方案--------------------
用awk也挺方便的
------解决方案--------------------
改下文件扩展名cvs,打开即可。
------解决方案--------------------
csv
------解决方案--------------------
我也是用1楼的算法,其实本来喜欢先sizeof读出无关字符串的长度的但是这里有引号我就算了。
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
------解决方案--------------------
我也是用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;
}