1

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

我运行 getline(inFile,line); outFile << 行 << endl;

我运行这段代码,只有几个文件在大约 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;
    }

}
4

1 回答 1

1

请参阅为什么 seekg 不适用于 getline?

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

inFile.clear();  // Clears all error flags.
inFile.seekg(pos);
于 2015-04-09T21:50:00.440 回答