私はC++にはかなり新しく、ソリューションにはとても近いですが、依然としていくつかの助けが必要です。私のループは初めて正しく動作します。その後、私は車の番号を入力すると、どこかの入力を取り込んでいるようで、2回目のパスで無効な色を実行するだけです。明らかに、私は何かが欠けているが、私は迷っている。どんな助けもありがとう。C++の検証ループの問題
これは私のプログラムのほんの一部ですが、問題が産む:あなたはあなたが得るgetline(cin, carColor[count]);
の第二のパスを実行した後
while (count < 3)
{
cout << endl << "Enter car color: blue, red or green in lower case. ";
getline(cin, carColor[count]);
if (!(carColor[count] == "blue" || carColor[count] == "red" || carColor[count] == "green"))
{
cout << "That is an invalid color"
<< "The program will exit";
cin.clear();
cin.ignore();
return 0;
}
cout << endl << "Enter car number between 1 and 99: ";
cin >> carNumber[count]; // Enter car number
if (carNumber[count] >99 || carNumber[count] < 1)
{
cout << "That is not a correct number"
<< " The program will exit";
return 0;
}
cout << "car no is:" << carNumber[count] << "color: " << carColor[count];
++count;
// int lapCount{ 1 };
cout << endl;
}
、それはあげますよ番号の後ろにバッファ内の '\ n'(エンドライン文字)が続きます。 cinをクリアしないので、ループの最初の反復の後、バッファにはそのエンドラインしかありません。 Getlineは次の繰り返しでそのエンドラインを読むでしょう – Bettorun