一个小小的问题,怪哉

来源:百度知道 编辑:UC知道 时间:2024/05/28 15:04:35
怪哉代码如下

#include <conio.h>
#include <stdio.h>
#include <iostream.h>
main()
{
char ch;
cout<<"han";
ch=getch();
putchar('*');
}

按照程序顺序应该先cout han 然后再输入字符

然而运行确恰恰相反 先要求输入字符 输入字符后输出*然后再输出han

二如下代码
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
main()
{
char ch;
cout<<"han"<<endl; ////////////////////////////此处加了endl回车
ch=getch();
putchar('*');
}

得到的才是想要的结果 岂不怪哉? 为啥???

因为endl是输出流结束标识符。
没有endl,你的输出流只是将字符"han"输出到了缓冲区中还没有输出到控制台上。
当你调用endl时,意味清空缓冲区。此时将会将缓冲区的所有内容输出 到控制台。