我编写了一个C ++程序,我有多个CSV文件用作输入,我一次打开一个并在将数据提取到输出文件后关闭它,这是唯一的文件。
我运行getline(inFile,line); outFile<< line<< ENDL;
我运行此代码,只有少数文件在大约200-300行后突然输出,并且在我的输出CSV文件中有一个大的空格
但是当我在循环中减慢代码(如系统(“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;
}
}
答案 0 :(得分:1)
请参阅Why seekg does not work with getline?
在seekg(pos)调用之前添加clear()调用,以清除可能由getline(inFile,line)调用创建的所有错误标志。
inFile.clear(); // Clears all error flags.
inFile.seekg(pos);