gpt4 book ai didi

c++ - C++中的重复循环

转载 作者:行者123 更新时间:2023-11-28 07:59:43 29 4
gpt4 key购买 nike

下面是用 C++ 编写的简单菜单的代码。出于某种原因,如果你给它垃圾输入,它会做出正确的 react (“请再次尝试你的选择”)。然而,它会再次通过循环再次给出错误消息,然后最终恢复正常运行。

编辑

输入变量是一个字符。如果垃圾输入只有一个字符长,那么循环将按预期运行。如果有任何额外的字符会导致在允许用户再次输入任何内容之前循环被执行多次。

char input = 0;
while (input != 4)
{
cout << "1. Circle";
cout << "\n2. Rectangle";
cout << "\n3. Triangle";
cout << "\n4. Quit";
cout << "\nChoose a shape: ";
cin >> input;

switch(input)
{
case '1':
circleFunctions();
break;
case '2':
rectangleFunctions();
break;
case '3':
triangleFunctions();
break;
case '4':
exit(4);
default:
cout << "\nPlease try your selection again...\n";
input = NULL;
cin.ignore();
break;
}

cin.ignore();
cout << "\n";
}

最佳答案

您只需在遇到默认情况时清除输入缓冲区,

std::cin.clear();

之后忽略输入流中的所有内容,

std::cin.ignore(INT_MAX);

这应该使 cin 缓冲区处于良好状态并且提取运算符 (>>) 应该可以正常工作。

关于c++ - C++中的重复循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11812932/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com