c++ - 文件读取和操作
问题描述
我有一个文本文件:
1
2
3
stop
4
代码必须将每个数字与前一个数字相加以获得新值,并且在读取文件中的“停止”时需要停止。
例如输出将是:
1
3
5
Reading has stopped
我怎样才能打破我的输出的代码是这样的?“阅读已停止”,仅在文件中有“停止”时才会出现。否则输出应该只是数字。
解决方案
如果您的文本文件只有一个字符串“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;
}
此解决方案的问题在于,如果文本文件中有其他字符串并且您想以不同的方式处理它们,则此解决方案将失败。
希望能帮助到你。
推荐阅读
- c# - Reading CSV with optional column using CsvHelper
- java - How to execute several sql-statements in one session with mybatis-string
- python - 对 MongodDB 中文档的几乎所有字段应用操作?
- excel - 对象失效的方法范围
- kubernetes - 将完整的应用程序放在一个 Kubernetes pod 中是否很好?
- html - 某些自定义中的垂直对齐问题
- 并标记
- excel - 尝试打开文件的 VBA 下标超出范围错误
- regex - 有没有办法在 awk 中的匹配表达式之后加入行?
- ruby-on-rails - 在单元测试中发布到不在同一模块中的端点
- python - 无法提取所有出现的模式匹配