Honma Himawari
2019-01-05 21:37
采纳率: 76.9%
浏览 982

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

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • shifenglv 2019-01-05 21:57
    已采纳

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

    点赞 打赏 评论
  • 追天荧火 2019-01-05 22:59

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

    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;
    }
    
    点赞 打赏 评论

相关推荐