此代码完成后,为什么还要进行额外的迭代(打印额外的行)? EOF是否需要额外的换行符?我希望不必添加额外/特殊字符来标记EOF。

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main(){
    ifstream infile("dictionary.txt"); // one word per line
    string text;
    while(infile){
        infile >> text;
        cout << text << endl;
    }
    infile.close();
    return 0;
}

最佳答案

尝试

while(infile>>text) cout << text << endl;

代替。

关于c++ - 文件回声循环具有额外的最终迭代,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1527969/

10-11 18:28