【发布时间】:2014-10-01 21:51:18
【问题描述】:
这是一种自我强加的额外学分问题,我要添加到我提前一周完成的当前编程任务中。分配涉及从文件中读取整数,每行有多个整数,每个整数用空格分隔。这很容易使用while(inFile >> val) 实现。
我面临的挑战是尝试从混合数字和字母的文件中读取整数,将所有连续数字作为由这些数字组成的单独整数提取出来。例如,如果我从文本文件中读取以下行:
12f 356 48 r56 fs6879 57g 132e efw ddf312 323f
读取(和存储)的值是
12f 356 48 r56 fs6879 57 g 132e efw ddf312 323f
或
12、356、48、56、6879、57、132、312 和 323
我整个下午都在挖掘 cplusplus.com 并阅读封面以涵盖 get、getline、cin 等的细节,但我无法找到一个优雅的解决方案。我可以推断出的每一种方法都涉及从整个文件中详尽地读取每个字符并将其存储到某种容器中,然后一次遍历一个元素并提取每个数字。
我的问题是在从文件中读取它们的过程中是否有办法做到这一点;即 get、getline、cin 和 company 的功能是否支持这种复杂的操作?
【问题讨论】: