为什么程序的不同输出在同一文本文件上多次运行?

时间:2016-08-02 19:30:58

标签: c++

所以我有一个程序读取一个文本文件,其行的数字用逗号分隔。我得到文本文件的每一行并逐字符地解析它。如果我得到一个逗号,我就继续。当我得到一个不同于逗号的东西(应该是一个整数)时,我将该字符转换为整数并打印出来。我的程序不能正常工作,有时只打印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

1 个答案:

答案 0 :(得分:2)

for循环中有拼写错误,应为i = 0而不是==