私は一度に1行ずつテキストファイルを読み込み、各行をターミナルウィンドウに表示しようとしています。私はg ++、例えばg ++ cpp3.cpp -o cpp3を使ってMacでコンパイルしています。getlineとcoutによる印刷
テキストファイルは次のようになります。ここでは
20100000001 20100000001.xml
20100000002 20100000002.xml
20100000003 20100000003.xml
20100000004 20100000004.xml
が私のコードです:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
ifstream ifs("file.txt");
string line;
while(getline(ifs,line)) {
getline(ifs,line);
cout << "[ " << line << " ]" << endl;
}
return 0;
}
私は、出力は次のようになりたいのですが。しかし
[20100000001 20100000001.xml]
[20100000002 20100000002.xml]
[20100000003 20100000003.xml]
[20100000004 20100000004.xml]
、すべてのもの端末の1行に印刷されます。言い換えると、テキストファイルの各行は最後の行の上に書き込まれます。さらに、大括弧 "["と "]"は一度しか書かれていないように見えるので、基本的に "["、次にファイルの内容全体、次に "]"を出力します。
だから、これは端末への最終的な出力は次のようになります。これが起こっておよび/またはどのように問題を修正することですなぜ誰もが説明でき
user$ ./cpp3
]10000000401 20100000004.xml
user$
?
注:」それぞれの繰り返しでgetlineを2回呼び出します。あなたのプログラムの出力をhexdumpで実行できますか? (私はあなたのソーステキストファイルに奇妙な行末の文字があると思います。) – Mat