使用 cin 将单个字母输入到字符中

sta*_*ler -1 c++ arrays input cin char

我一直在尝试使用“cin”将单个字母输入到名为 letter 的字符中。我必须使用这种方法输入字母,但是每次在“cin”行之后输出字母时,我都会有一个无法识别的字符。

int main()
{
char letter[2];
cout << "Enter a letter: ";
cin >> letter;
cout << letter[2];
return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

Enter a letter: a
?
Run Code Online (Sandbox Code Playgroud)

有时我也会得到随机字符输出,例如“1”和“s”。

任何帮助将不胜感激!

谢谢!

wol*_*k88 5

您没有正确输入或输出字符。char letter[2]是一个包含 2 个字符的数组,而不是单个字符。你要char letter。此外,您正在输出letter[2],它是只有两个值的数组的第三个元素(C++ 中的索引从 0 开始;第一个元素是letter[0],第二个是letter[1])!输出总是垃圾。正确的代码应该是:

char letter;
cout << "Enter a letter: ";
cin >> letter;
cout << letter;
return 0;
Run Code Online (Sandbox Code Playgroud)

  • 从技术上讲,输入部分没问题 ** 在这种情况下** 因为它是一个(显式)字符而数组是两个。但是,提供触发 UB 的输入太容易了。 (2认同)