cin状态的问题

浏览:737 发布日期:2023-02-27 16:20:48

cin状态的问题

cout << "Enter the x and y values: ";
while (cin >> rplace.x) // 依次读取,赋值给rplace.xrplace.y
{
    cout << "Next two numbers (q to quit): ";
}
cout << "Done." << endl;

当输入的内容无法转换为rplace.x同类型值是,cin.fail()为真,同时输入的值将放入缓冲区,此时,缓冲区有很多的损坏字符,我们需要清除状态,并将缓冲区清空。

cin.clear();
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');