从文件中提取数据
……
ifstream fin;
……
fin.get(c);
我想问的从文件中提取数据,遇到空格之后可判断为一数据,该怎么做??
我一个字符一个字符的提取,但是该怎么连起来,最后还得用atoi、atof之类的转换,感觉很乱,指点指点我这个菜鸟
[解决办法]
#include <string>
string str( ' ');
while (fin.get(c)) {
if (c != ' ') { // 说明数字还没有读完
str += c;
} else if (c == ' ') { // 读完数字
int value = atoi(str);
str.resize(0); // 清空表示数字的字符串
}
}
我的思路是,当读入的字符不是空格时,说明这个数字还没有读完,把读入的字符加入到当前的数字的字符串中,当读入的是空格时,说明当前数字已经读完,把字符串转换为数字,清空表示数字的字符串,继续读入。
[解决办法]
到空格之后可判断为一数据,该怎么做??
如果文件中是 空格分割数据的,
那么直接 fin> > data 循环读取即可。
比如test.txt文件中是:11 12 13... (空格分割的 int整数)
ifstream fin( "test.txt ");
int data;
while(!fin.eof())
{
fin> > data; //循环读取数据
cout < < "Read data " < <data < <endl;
}
..