我正在尝试从如下所示的文件中读取数据:
1 1 2007 12 31 2006
12 31 2007 1 1 2008
1 3 2006 12 15 2006
2 29 1900 3 1 1900
9 31 2007 10 28 2009
我正在使用一个函数以 3int
秒为一组读取它,因为这些值应该是日期,每行有 2 个日期。如果该对的第一个日期返回错误,我需要跳到下一行并从那里开始重复循环,如果没有错误,只需评估下一组。错误的文件和bool
变量Get_Date()
作为参考参数传递到函数中,因此它们在函数之外相应地更改。我尝试使用ignore()
和break
这样的声明:
while (infile) {
Get_Date(infile, inmonth1, inday1, inyear1, is_error);
if (is_error == true){
infile.ignore(100, '\n');
break;
}
if (is_error == false) {
Get_Date(infile, inmonth2, inday2, inyear2, is_error);
if (is_error == false) {
Get_Date(infile, inmonth2, inday2, inyear2, is_error);
other stuff;
}
}
}
这只是使整个程序在出现 1 个错误后终止,在第 4 行,因为 2 月在闰年只有 29 天。我认为 break 会将控制权返回到最近的循环,但这似乎不是正在发生的事情。