2016-08-02 29 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的: :eof里面的循环条件认为是错误的?**](http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong) –

+1

'for(i == 0;我 DimChtz

回答

2

你必须在for循环中一个错字,应该是i = 0而不是与==

+0

OMG!星期二,我说得对吗? –

相关问题