c++ - 为什么在同一个文本文件上运行多次的程序会有不同的输出?

标签 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

最佳答案

你在 for 循环中有错别字,应该是 i = 0 而不是 ==

关于c++ - 为什么在同一个文本文件上运行多次的程序会有不同的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38728990/

相关文章:

c++ - GCC -Wshadow 缺少一些案例吗?

c++ - 在不同机器之间使用 float / double 时我应该知道什么?

c++ - 环境 PATH 目录迭代

C++:将 vector reshape 为 3D 数组

c++ - RInside 在 OS X Mavericks 上使用 clang++ 构建的示例无法在链接时找到 STL 标准库

c++ - 具有可变参数模板的模糊部分模板特化

c++ - 适用于 iOS 和 Android 的 C++ 文件操作

c++ - 使用模板格式化 C++ 字符串

C++程序永远循环

c++ - 从 std::regex 中提取原始正则表达式模式