我正在尝试编写一个程序,该程序从一个运动的季节(即:足球)获取两个文件的inputData,并且每周写一个输出列表排名。在包含每个游戏分数的输入文件中,每周由一行“ - ”字符分隔。我有一个if,else循环设置程序窥视每行的第一个字符。如果它看到“ - ”以外的字符,则表示正常读取。但是,当它显示“ - ”时,程序将开始输出循环。
问题是,由于这是偷看,我需要弄清楚如何在不创建新输入的情况下进入下一行并且不会导致崩溃。我能想到的就是使用inStream.find( !'-' );
或inStream.seekg( !'-' );
。我还可以使用其他任何选项吗?
此外,作为参考,代码列在此处:https://coderpad.io/475356。查找问题区域的第80行。请不要做任何修改。
感谢您的时间。
P.S。:如果有人能找到任何其他崩溃,请随意提及。
答案 0 :(得分:3)
如何使用ignore()
跳过该行?
inStream.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
确保您拥有:
#include <limits>
如果您不想std::
,请将using std::numeric_limits;
放在文件的顶部,然后从上面的表达式中删除std::
。