Tôi đang ở lớp OOP thứ hai, và lớp đầu tiên của tôi được dạy bằng C#, vì vậy tôi mới dùng C++ và hiện tại tôi đang thực hành xác thực đầu vào bằng cin. Vì vậy, đây là câu hỏi của tôi:Vòng xác thực đầu vào tốt bằng cin - C++
Vòng lặp này có phải là cách tốt để xác thực đầu vào không? Hoặc có cách nào phổ biến hơn/được chấp nhận để làm điều đó?
Cảm ơn!
Code:
int taxableIncome;
int error;
// input validation loop
do
{
error = 0;
cout << "Please enter in your taxable income: ";
cin >> taxableIncome;
if (cin.fail())
{
cout << "Please enter a valid integer" << endl;
error = 1;
cin.clear();
cin.ignore(80, '\n');
}
}while(error == 1);
Xin cảm ơn, điều này phù hợp hơn với những gì tôi đang tìm kiếm. Nhiều đánh giá cao. Một câu hỏi là, điều kiện vòng lặp (;;) là gì? Đừng hiểu điều đó. – Alex
@Alex - 'foo (;;)' nghĩa là vòng lặp mãi mãi, giống như 'while (1)'. Nếu bạn không muốn vòng lặp của bạn thực sự lặp mãi mãi, bạn cần một 'break' ở đâu đó bên trong để chấm dứt vòng lặp. –
Tôi thường có trong khi (! Eof (stdin)) trong trường hợp như vậy, để tránh mã phát điên nếu đầu vào bị mất ... hoặc sẽ ném một ngoại lệ ở đây? – PypeBros