2016-08-02 2 views
0

私は、行に数字をカンマで区切ったテキストファイルを読み込むプログラムを持っています。テキストファイルの各行を取得し、文字ごとに解析します。私がカンマになったら、私はちょうど続ける。コンマ以外のもの(整数でなければなりません)に到達すると、その文字を整数に変換して出力します。私のプログラムはうまく動かず、たまに2本の空白行が表示され、時には "1 1 2 2 3 3 4 4"と空行が表示されることがあります。同じテキストファイルに複数のプログラムが出力されているのはなぜですか?

プログラム:

#include <iostream> 
#include <fstream> 
#include <string> 

using namespace std; 

int main(int argc, char *argv[]) { 
    ifstream infile(argv[1]); 
    string str; 
    int num, i; 

    while (!infile.eof()) { 
     getline(infile, str); 
     if (str.length() == 0) continue; 
     else { 
      for (i == 0; i < str.length(); ++i) { 
       if (str[i] == ',') continue; 
       else { 
        num = str[i] - '0'; 
        cout << num << " "; 
       } 
      } 
     } 
     cout << endl;   
    } 
    infile.close(); 
    return 0; 
} 

テキストファイル:

1,1,1,2,2,3,3,4,4 
2,3,4,5,5 
+3

参照[**なぜのiostreamがあるとi = 0ないようになります。 :ループ条件内のeofが間違っていると考えられますか?**](http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong) –

+1

'for(i == 0; i DimChtz

答えて

2

あなたはループの中にタイプミスがあり、==

+0

OMG!火曜日、私は正しい? –

関連する問題