我已经编写了一个C++程序,我有多个CSV文件用作输入,我一次打开一个,然后在将数据提取到唯一的文件输出文件中之后关闭它。

我运行getline(inFile,line);
outFile <
我运行此代码,只有大约200-300行之后突然输出的几个文件,并且我的输出CSV文件中有很大的空格

但是,当我放慢代码的速度时,例如循环中的system(“Pause”),我可以完全提取想要的内容...。

我的程序运行速度很快,为什么getline会跳过我想要的部分内容?

我真的不知道问题出在哪里或从哪里开始

非常感谢!

if (dataname[i] == dataname)
{
    inFile.seekg(datalength[i], ios::beg);
    for (int j = 0; j < datacount[i]; j++)
    {
        getline(inFile, line);
        outFile << line << endl;
    }

}

最佳答案

请参阅Why seekg does not work with getline?

在seekg(pos)调用之前添加clear()调用,以清除可能由getline(inFile,line)调用创建的所有错误标志。

inFile.clear();  // Clears all error flags.
inFile.seekg(pos);

10-05 23:01
查看更多