我是一名新的C ++用户。 我的代码如下:
#include <iostream>
using namespace std;
int main()
{
int option = 1;
char abstract='a';
while(option == 1){
char temp;
cin>> temp;
abstract = temp;
cout << abstract;
option = 1;
if(abstract == '!'){
option = 0;
}
}
return 0;
}
当我输入类似的内容时:abcdefg 所有人物都在屏幕上,为什么?这只是因为编译器?
答案 0 :(得分:1)
事实上,char
中一次只能存储一个字符。 cin>>temp;
一次读取一个字符,因为更多字符不适合那里。循环只是读取并打印另一个字符。
作为可视化提示,尝试使用cout<<abstract<<endl;
回显您的角色。每行/每次迭代都会看到一个字符。
答案 1 :(得分:1)
您的终端不限制输入的字符数,这就是您可以根据需要输入多少字符的原因。您的c ++编译器只会读取其中一个字符,因为'temp'的类型为char。您可以输入'if'语句来检查在终端中输入的字符数
答案 2 :(得分:0)
由于while
循环,它依次处理每个字符。不确定你预期会发生什么。
使用分隔符打印出来,看每次迭代打印的字符数不会超过一个:
cout << "'" << abstract << "'";
答案 3 :(得分:0)
终端窗口本身负责读取字符并将它们回显到屏幕上。你的C ++程序要求终端输入字符,至少在这种程序中,对这些字符的显示方式没有影响。