Tôi khá mới với C++ và thực sự gần với giải pháp, nhưng tôi vẫn cần trợ giúp. Vòng lặp của tôi hoạt động chính xác lần đầu tiên. Sau đó khi tôi nhập số xe, nó có vẻ là lấy một số đầu vào một nơi nào đó và chỉ thực hiện màu không hợp lệ trên đèo thứ hai. Rõ ràng, tôi đang thiếu một cái gì đó, nhưng tôi đang thua lỗ. Bất kỳ trợ giúp sẽ được đánh giá cao.Các vấn đề về vòng lặp xác thực C++
Đây chỉ là một đoạn nhỏ của chương trình của tôi, nhưng có đặt vấn đề:
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;
}
Sau khi bạn nhập số điện thoại xe hơi, nó sẽ đặt số theo sau là một '\ n' (ký tự cuối) trong bộ đệm. Vì bạn không xóa cin, sau lần lặp đầu tiên của vòng lặp, bộ đệm chỉ có dòng cuối trong đó. Getline sau đó sẽ đọc dòng cuối đó trên lần lặp tiếp theo – Bettorun