我已经编写了一个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);