Mới đối với C++. Có vấn đề lặp chính xác trong khi xử lý lỗi. Tôi đang cố gắng kiểm tra xem liệu đầu vào của người dùng có phải là số nguyên hay không và là số dương.C++ Kiểm tra số nguyên.
do{
cout << "Please enter an integer.";
cin >> n;
if (cin.good())
{
if (n < 0) {cout << "Negative.";}
else {cout << "Positive.";}
}
else
{
cout << "Not an integer.";
cin.clear();
cin.ignore();
}
}while (!cin.good() || n < 0);
cout << "\ndone.";
Khi không nhập số nguyên, ngắt vòng lặp. Tôi cảm thấy như tôi hiểu sai việc sử dụng vốn có của cin.clear()
và cin.ignore()
và trạng thái của cin
trong vòng lặp này. Nếu tôi xóa cin.ignore()
, vòng lặp sẽ trở thành vô hạn. Tại sao điều này? Tôi có thể làm gì để biến nó thành một vòng lặp hoạt động thanh lịch? Cảm ơn bạn.
Sử dụng một trình gỡ lỗi. –