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 に答える