C++中关于putchar()和cout的小问题,求助高手解答

来源:百度知道 编辑:UC知道 时间:2024/06/04 02:01:44
void main()
{
cout<<"a";
char c = getchar();
cout<<"b"<<endl;
cout<<c;
}
就拿这个简单的程序举例吧:为什么执行后,在DOS屏幕上是先叫我输入一个字符,然后才输出ab呢,按理说不是先输出a,再输入,接着输出b,最后输出输入的字符吗?
但是如果把cout<<"a";改成cout<<"a"<<endl;就是先输出a了!我就是想不通这到底有什么区别啊?求高手解答,我是个新手!

第一句之后应该刷新,endl的作用是执行下一次输出并把缓冲区前一次输出的值用新值覆盖,所以叫做刷新.
endl除了写'\n'进输出流之外,还调用输出流的flush函数,刷新缓冲区,让数据直接写入文件或者屏幕上。

如果不写endl则不一定会立即显示输出的数据,因为数据可能被存在缓冲区里,没有立刻写入设备。