gpt4 book ai didi

c++ - 如何防止用户在下面的示例代码中输入多个字符?

转载 作者:行者123 更新时间:2023-11-27 23:29:50 25 4
gpt4 key购买 nike

我在下面的代码中遇到了问题。如果用户输入多个字符,那么我的循环执行的次数等于用户输入的字符串的长度。我的代码是用 GNU c/c++ 编译器编写的。

提前致谢。

int continue_option()
{
char c;
loop:
fflush(stdin);
cin.ignore();
cout<<"\n\n\t\t\t\tPress (Y/y) - Continue / Press (N/n) - Exit :";
cin>>c;
if(c=='y'||c=='Y')
{
system("clear");
}
else if(c=='n'|| c=='N')
{
exit(0);
}
else
{
printf("\n\t\t\t\tInvalid Option.Try Again.....");
goto loop;
}
fflush(stdin);
}

最佳答案

首先,不要使用跳跃。它们是老式的,除了所有其他不良后果之外,它们还让 Dijkstra 在他的坟墓中旋转。我的意思不是“复古”,我的意思是坏意义上的旧。

关于你的问题,我宁愿将结果放在 std::string 中并且只考虑其中的第一个字符:

std::string input;
std::cin >> input;
switch (input[0]) {
case 'y':
case 'Y':
//your code
break;
case 'n':
case 'N':
exit(0);
default:
std::cout << "Invalid text" << std::endl;
}

我也不会使用 exit(),我宁愿依赖函数的返回值最终导致返回 0;在 main() 中,或一些等效的技术。

关于c++ - 如何防止用户在下面的示例代码中输入多个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6227161/

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