1

我正在尝试使用 C++,并在读取文本文件时收到以下错误。知道为什么吗?

输入:

This is a test.
    A test, with tabs  and too many spaces.
If this is a good one,
    then all will be well.

输出:

    then all will be well. too many spaces.

代码:

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

int main() {    

    string line;

    ifstream infile ("A5.txt");

    if (infile.is_open()) {
        while (!infile.eof()) {
            getline(infile,line);
            cout << line << endl;
        }
        infile.close();
    }
return 0;
}
4

1 回答 1

5

您使用一个使用 UNIX 行尾 ( \n) 的实现,并解释\r为将光标返回到行首。该文件包含旧的 Mac OS 行尾 ( \r),这意味着getline()读取到文件末尾并将所有内容\r放入字符串中,导致您稍后将它们打印到控制台。

于 2013-01-12T21:09:44.017 回答