2017-03-09 12 views
-2

C++を使用してファイル内の文字列を読みたい。 のように入力文字列:「:」私のコードの 一部を次のように:私は後の文字列を読んでする必要があります:「blacksburg.ascファイル」 cout:最後の文字列が最初の文字列をカバーする

void mapWalk(string input, string output){ 
 
     ifstream in(input.c_str()); 
 
     string line; 
 
     string mapdata = ""; 
 
     getline(in,line); 
 
     int pos = line.find(":"); 
 
     mapdata = line.substr(pos); 
 
     cout<<"The string is"<< mapdata <<"&&" << endl;  
 
    }
出力は、次のように示されています: & &文字列は:blacksburg.asc

これは配線済みです! なぜ& &は文字列の先頭にあり、もう一方をカバーしていますか?

アイデアはありますか?

+0

問題を再現するのに十分なコードを教えていただけますか?読み込まれた行には何が入っていますか? 'line'はどのような型ですか?等々。 –

+0

実行可能なサンプルがありますか? –

答えて

0

mapdataの末尾に改行文字があります。だからあなたは "The string is"という文字列を出力し、その後キャリッジリターンを含めてmapdataの内容を出力します。改行なしでキャリッジを返却したため、前のテキストの上に&&を出力します。

getlineのドキュメントを読む。行末が削除されないことを指定します。

関連する問題