【发布时间】:2021-06-20 13:31:55
【问题描述】:
我正在开发一个项目 (C++),该项目读取类似于以下的文件 (.txt):
0
40
120
360
440
760
840
1080
我正在使用带有函数 getline() 的 For 循环逐行读取文件,但在 For 循环中我有一个条件,如果满足该条件,我不想读取下一行,相反,我希望读取文件的指针在循环的下一次迭代中保持在相同的位置。我该怎么做?
【问题讨论】:
-
看来你已经准确描述了如何操作:如果满足条件,请不要调用
getline()。 -
但是如果我的条件在 for 循环内,我该怎么做呢?
-
条件在for循环外时的方式相同。
if语句的工作方式相同,无论它们是在某个循环内部还是外部。 -
所以想象一下我有:for (i = 0; getline (readMyFile, text); i++) { if (condition) { ...}}。如何不调用 getline() 函数?
-
直接方法:将其移到
if语句中,将循环条件改为只检查流状态;或者完全省略循环条件,并将循环终止逻辑移到for循环内(使用break语句)。