![](/img/trans.png)
[英]My C++ program exits and ends too early after input. Why does this happen?
[英]Program ends early in C++
int H;
int M;
int SleepH;
int SleepM;
cout << NumActivities[2][0];
cin >> H >> M;
cout << NumActivities[2][1];
cin >> SleepH >> SleepM;
int SubtractM;
int SubtractH;
if (H<=12)
{
int MH=24;
int MM=60;
SubtractH= MH-H;
SubtractM = MM-M;
}
if (SleepM==00)
{
int SleepM= SleepM+60;
int TimeLeftH;
TimeLeftH= SleepH-SubtractH;
int TimeLeftM;
TimeLeftM= SleepM-SubtractM;
int F;
F=TimeLeftM/60;
int DoThisZ;
DoThisZ= TimeLeftH + F;
float Normal = Normal + DoThisZ;
cout<<Normal;
}
}
}
以上是我的程序。 它尚未完成,但是在運行時,程序會在第64行輸出NumActivities [2] [1]之后立即保持結束。我找不到任何方法可以停止它,並且取消循環不會改變任何內容。
我希望程序可以讓我輸入變量H,M,SleepH和SleepM,然后向我顯示結果,但是在顯示NumActivities [2] [1]之后它只是關閉而沒有讓我輸入變量。
當程序詢問您“您的上床時間是什么時候(以24小時格式):”時,如果您的答案中包含冒號(:),則還會輸入下一個問題“您要睡多長時間?:”。
這是因為在C ++中,逗號分隔符不是數字的一部分,因為小數點不是整數,因此一旦該操作找到了逗號或點,提取操作便會結束,並將該字符作為下一個字符被提取。 隨后的提取操作發現該字符是要提取的第一個字符,因此它們全部返回。
輸入第一個答案,例如“ 11 30”-數字之間的空格,而不是冒號。 然后,該程序也應該為您的下一個問題輸入信息。
僅出於建議,您正在浪費迭代數字0、1、2、4、5。 因此,您可以簡單地取消for循環。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.