私は時間と分の入力を受けるこの機能を持っています。区切り文字がコロンでない場合、エラーが発生します。時間が23より大きく、59より大きい場合も同じです。私の現在のループでは、while boolは常に真であるようです。私は何を間違えたのですか?可能な限り何かが変わるのを見ることはできません。あなたはこれを解決するには、このようなwhileループでにstringstreamを持っていることが無限ループに入って一旦コロンの値を設定する機能でwhileループは常に真となります。C++
int delaString(string &samtalStart, int &timmarStart, int &minuterStart) {
istringstream is(samtalStart);
char colon;
getline(cin, samtalStart);
is >> timmarStart >> colon >> minuterStart;
while (colon != ':' || timmarStart > 23 || minuterStart > 59) {
cout << "Inkorrekt inmatning, var vänligen skriv in en timme mellan 00-23 och minuter mellan 0-59 i formatet tt:mm.\n" << endl;
getline(cin, samtalStart);
}
// is >> timmarStart >> colon >> minuterStart;
return(timmarStart, minuterStart);
}
ヒント:ここで新しい入力を調べますか? – molbdnilo
そして 'return(timmarStart、minuterStart)'は何を期待していますか? (ヒント: 'minuterStart'を返します。) – molbdnilo
@molbdniloあなたはwhileループの前にifを使うべきですか? – Thesar