C++从txt读入数据问题?

图片说明
发项目程序没人答,发个模板把
从txt读入,1个string,2个int,后面若干个int压入vector
但是循环只读了一行,不知道为什么,求解

问题出在内循环fin>>c这里。内循环退出的条件是fin>>c返回值为零,也就是没有读到整数。当文件指针跳到“京汉线”时,由于不是整数,所以内循环退出。内循环退出时,文件指针已经跳到了“京汉线”之后了。当外循环开始第二次读取时,实际上fin>>f读到的是“0”,实际这不是字符串,所以fin>>f返回0,外循环结束,就没有然后了。修改一下内外循环结束的条件,就能避免这种问题。

一行一行读的解决方案····

int main()
{
    ifstream fin("D:\\train.txt");
    ofstream oin("D:\\test.txt");
    string f;
    int a;
    vector<int> num;
    while (!fin.eof())
    {
        getline(fin, f);
        istringstream line(f);
        string name;
        line >> name;
        oin << name << " ";
        while ((line>>a))
        {
            oin << a << " ";
        }
        oin << endl;
    }
    return 0;
}