如图,读入文件train.txt,格式为1个string,2个int,然后后面若干个int数压入vector数组,测试输出到test.txt,只读了一行,那行数据程序测试是对的。
就大概这样的格式大量数据怎么读啊...
哪里有错或者有什么更好的办法吗?
emmmm怎么没人答呢就是这个模板,我想反复读这个格式,但是他只读一行就结束了
如图,读入文件train.txt,格式为1个string,2个int,然后后面若干个int数压入vector数组,测试输出到test.txt,只读了一行,那行数据程序测试是对的。
就大概这样的格式大量数据怎么读啊...
哪里有错或者有什么更好的办法吗?
emmmm怎么没人答呢就是这个模板,我想反复读这个格式,但是他只读一行就结束了
看了一下你的程序,首先,你程序逻辑本身有问题,其次,对文件读取的使用应该是用错了。第一个问题,你外循环while (fin >> f)和内循环while ((fin >> c)),用的都是同一个流fin,你本来的意图是外循环是读取一行,内循环是读取行中的一个字段吧,但两个循环都是针对fin,如果你内循环是希望读到一行末会结束循环,那外循环不一样也是读到一行末就结束循环了?那外循环还有什么用?所以这是你第一个代码逻辑上的错误。第二个问题,fin >> x这种确实是读到一行末就会结束而不是到文件末,所以你上面程序对它的使用是背离了你的原意。
据此,根据你上面的程序逻辑,为你写好了下面的程序代码(可直接拷贝使用):
int main()
{
ifstream fin("train.txt");
ofstream oin("test.txt");
if (!fin.is_open() || !oin.is_open())
{
return -1;
}
string f;
int a, b, c;
//vector num;
string str;
stringstream ss;
while (!fin.eof())
{
getline(fin, str);
ss << str;
ss >> f >> a >> b;
oin << f << " " << a << " " << b << " ";
while (ss >> c)
{
oin << c << " ";
}
oin << endl;
}
fin.close();
oin.close();
return 0;
}