C ++问题阅读文本文件

时间:2013-01-12 21:03:38

标签: c++ text

我正在尝试使用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;
}

1 个答案:

答案 0 :(得分:5)

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