我有一个任务,我必须从一个文件读取数据并对其执行各种计算并将答案写入输出文件。一切都很好,直到我来到这一步:C++ simple如果语句使得程序的其余部分不能执行
“只要总和不超过1000重读文件并计算文件中的整数的总和。使用标志控制的循环结构。”
我的代码片段如下:
dataFile2.close();
dataFile2.clear();
dataFile2.open("J:\\datafile2.txt");
sum = 0;
while(sum < 1000)
{
dataFile2 >> num;
sum = sum + num;
if(sum > 1000)
sum = sum - num;
}
answers << "The sum of the integers not exceeding 1000 is " << sum << endl;
cout << "The sum of the integers not exceeding 1000 is " << sum << endl;
return 0;
我的变量已经被宣布。当我取出if语句时,总和增加了最后一个数字,并且总和超过了1000.当If语句留下时,答案和cout语句不会执行,并且没有编译器警告或错误。
任何帮助,将不胜感激。
-ThePoloHobo
您正在进入一个无限循环。在一张带有样本值的纸上手动跟踪您的循环,以查看发生的位置和原因。 – us2012 2013-03-24 21:29:11
试图告诉我,当循环实际结束? – Spook 2013-03-24 21:32:24
另外,我认为你正在阅读错误的问题。你不应该添加总数为1000的数字,你应该添加所有小于1000的数字。总数可以超过1000. – 2013-03-24 21:32:28