关于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();第一次读取了回车
后来两次读取了首字母。
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();第一次读取了回车
后来两次读取了首字母。
相关文章推荐
- 关于istream_iterator<int>(cin)和istream_iterator<int>()的一点分析
- 关于while(cin>>str)输入无法结束的问题(转+修改)
- 关于while(cin>>str)
- C++ Primer 关于while(cin>>word) 退出循环问题
- <iOS>关于自定义description的一点用法
- 关于c++问题while(cin>>x)怎么用eof结束
- 关于<a>的一点问题问题及解决方案
- 关于<taglib>的uri的一点总结
- 关于while(std::cin>>value)
- 关于hibernate中报错”The content of element type "class" must match ......“的一点发现
- 关于<img>标签的一点理解
- <读书.敏捷开发>1.关于敏捷开发的一点读后感
- 关于while(cin>>str)无法结束的问题
- 第二遍C++primer->关于endl刷新缓冲区
- 关于while(cin>>str)无法结束的问题
- <iOS>关于viewWithTag的一点说明
- 关于<taglib>的uri的一点总结
- <iOS>关于viewWithTag的一点说明
- 初学者的问题 关于->与.的区别
- 关于< tbody >的一个实例,很实用。