首页 > 解决方案 > 文件读取和操作

问题描述

我有一个文本文件:

1
2
3
stop
4

代码必须将每个数字与前一个数字相加以获得新值,并且在读取文件中的“停止”时需要停止。

例如输出将是:

1
3
5
Reading has stopped

我怎样才能打破我的输出的代码是这样的?“阅读已停止”,仅在文件中有“停止”时才会出现。否则输出应该只是数字。

标签: c++file

解决方案


如果您的文本文件只有一个字符串“stop”,那么有一个非常简单的解决方案:您只需继续读取整数,直到读取失败

int main() {
    ifstream ifs("test.txt");

    int first = 0;
    int second;
    while (ifs >> second) {
        cout << first + second << ' ';
        first = second;
    }

    cout << "Reading has stopped" << endl;
    return 0;
}

此解决方案的问题在于,如果文本文件中有其他字符串并且您想以不同的方式处理它们,则此解决方案将失败。

希望能帮助到你。


推荐阅读