这是一个小代码:
char a;
while(std::cin >> a) {
std::cout << a << " is pressed\n";
}
当我输入&#34; w&#34;时,我得到&#34; w被按下&#34;。 当我输入&#34; www&#34;时,我得到&#34; w被按下&#34;连续3次。
有人可以解释为什么会这样吗?
由于
答案 0 :(得分:4)
当您使用std :: cin读取char变量时,它一次读取一个字符。这就是为什么你在输入www的while循环中得到3次迭代的原因。
答案 1 :(得分:0)
有queue
个输入。如果你输入太多,你的输入会等待患者...
答案 2 :(得分:0)
答案的第一部分在代码的第一行。
char a;
变量a
是一个char
,一个8位值,通常用于存储代表显示字符的代码。如果显示为ASCII,则(值)0 =无字符,(值)32 =空格,值48 =(字符)'0'等。
std::cin
是类std::istream
的一个实例,它有各种成员和运算符重载来处理不同类型。对于char
,您正在调用
std::istream::operator(char)
从输入流中读取一个char
,恰好一个,然后返回。
#include <iostream>
int main()
{
char a, b, c;
std::cin >> a >> b >> c;
std::cout << "a = " << a << ", b = " << b << ", c = " << c << '\n';
return 0;
}