您的位置:首页 > 其它

关于getchar()cin>> 缓冲区的一点发现

2015-03-16 16:04 239 查看
#include<iostream> 首先看到右边这些代码 我们输入3 然后按下回车 此时3被送入键盘缓冲区

using namespace std; 但是cin没办法读入回车键 所以此时缓冲区还有一个回车键未读取 接着

int main()

{ 回车键被gets 读取 然后puts 输出 所以出现两个换行符 接下来输入 ha ta

int it; 结果如下

cin>>it;

char a[10];

while(it--)

{

gets(a);

puts(a);

}

};

若在while前面加入getchar();此时我可以有3个输入 且结果如右图

这是因为cin输入的回车被getchar()所读取 。

若在gets前面加上getchar();此时结果就不一样 如右图

这是因为循环进行了三次getchar();第一次读取了回车

后来两次读取了首字母。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: