【发布时间】:2023-03-08 08:31:02
【问题描述】:
#include <iostream>
#include <string>
#include <cstring>
#include <fstream>
using namespace std;
int main()
{
string temp;
ifstream inFile;
ofstream outFile;
inFile.open("ZRMK Matched - 010513.txt");
outFile.open("second.txt");
while(!inFile.eof()) {
getline(inFile, temp);
if (temp != "") {
getline(inFile, temp);
outFile << temp;
}
}
cout << "Data Transfer Finished" << endl;
return 0;
}
我很难让它工作。当我执行程序时,它会循环一段时间,然后在没有完成的情况下终止——它不会将任何文本行输出到输出文件。任何帮助将不胜感激。
【问题讨论】:
-
你用过调试器吗?它是否输出您的“数据传输完成”消息?
-
您是否尝试过刷新输出文件?
-
每次迭代调用 getline 两次(第一次检查
(temp != ""),第二次写入 outfile)是故意的吗? -
如果我们知道 (a) 您的程序 应该 做什么,(b) 什么输入数据的样子,以及 (c) 为什么您认为您的代码应该可以工作,但 似乎没有。
-
这可能不是你的直接问题,但你不应该在循环条件中使用
.eof()。这样做几乎总是会导致程序出错。
标签: c++