gpt4 book ai didi

c++ - 两个输入进入 while 循环

转载 作者:行者123 更新时间:2023-11-28 00:53:27 24 4
gpt4 key购买 nike

我的代码的基本思想是让用户输入 0-9 的拼写,即零、一等或实际数字,然后分别输出数字/拼写。

我设法使用 while(cin >> number)(number 是一个字符串变量)通过 while 循环来做到这一点,然后使用 if 语句来选择适当的输出选项,即“零”- -> 0 和“0”--> 零。

起初虽然我尝试按如下方式进行;

while (cin >> number || cin >> n) 
{
if (n == 0)
cout << digits[0] << endl;
.
.
.
else if (n == 9)
cout << digits[9] << endl;

if (number == digits[0])
cout << 0 << endl;
.
.
.
else if (number == digits[9])
cout << 9 << endl;
}

digits 只是一个 vector 类,用于存储字符串“零”、“一”等。

虽然这不起作用,当输入字符串时输出是正确的,但当输入整数时输出始终为“零”。我想知道为什么这不起作用?我认为它与 while 循环条件有关。计算机无法识别是否输入了字符串/整数并执行适当的操作?

最佳答案

问题是 cin >> number 总是会成功,因为 number 是一个 string(只要你不这样做)命中 EOF 或其他一些失败条件);如果用户输入一个数字,number 将把这个数字保存为一个字符串。所以 cin >> n 不会发生。

您应该将您的 number 与字符串 "0".."9" 进行比较(除了测试数字名称之外) .您还应该使用循环而不是 if/else if 链。

关于c++ - 两个输入进入 while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12764498/

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