C++从txt读入数据问题

如图,读入文件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;

}

应该是你 fin >> c 遇到非数字,导致程序崩溃,下面的没有执行。
用这个:https://www.cnblogs.com/TenosDoIt/p/3724234.html

在train.txt中,内容是一行一行的,所以每行的最后都有一个'\n',这导致fin>>c这行最后会读到'\n'这个非数字,程序就会停止。
如果你的文件每行的格式都是一个字符串跟着6个数字,你可以循环6次取数字,最后一个定义一个char类型的变量,把换行符取出。或者直接可以调用ifsream的getline函数,获取一行,然后自己根据空格进行解析。