gpt4 book ai didi

c++ - 当用户使用 char 变量输入多个字符时出现错误

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

我正在制作一个简单的程序,如果用户输入“z”则显示“True”,如果用户输入其他任何内容则显示“False”。但是,问题是当用户输入的字符超过一个字符时,例如当用户输入 'zz' 时,输出是

True
Input : True

当用户输入如'zs'时应该是错误的,输出是

True
Input : Wrong

这是我的代码

#include <iostream>

using namespace std;

int main()
{
char input;

cout << "Check input" << endl;

while(true){
cout << "Input : ";
cin >> input;
if(input=='z'){
cout << "True" << endl;
} else {
cout << "Wrong" << endl;
}
}

return 0;
}

我想知道是否有办法在不将变量类型更改为字符串的情况下防止这种情况?

我在 Windows 10 x64 上使用 CodeBlocks 16.04 (MinGW) 和 GNU GCC 编译器

最佳答案

你不能通过读取单个字符来做到这一点。关键是如果用户输入例如zz 他实际上确实输入了这两个字符,这些是您从 cin 读取时得到的字符.

只需按照建议读取 std::string 并仅检查字符串的第一个字符。这就像您正在做的一样简单。

所以你可能想要这个:

#include <iostream>
#include <string>

using namespace std;

int main()
{
string input;

cout << "Check input" << endl;

while (true) {
cout << "Input : ";
cin >> input;
if (input.length() > 0 && input[0] == 'z') {
cout << "True" << endl;
}
else {
cout << "Wrong" << endl;
}
}

return 0;
}

关于c++ - 当用户使用 char 变量输入多个字符时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46893292/

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