如果您还没有明白,只能怨我表达能力有限,您可以结合以下实例体会。

  创建一个控制台工程,输入如下代码:

#include < iostream >
using namespace std;

int main()
{

 char c;

//第一次调用getchar()函数
//程序执行时,您可以输入一串字符并按下回车键,按下回车键后该函数才返回
 c=getchar();

    //显示getchar()函数的返回值
 cout < <  c < < endl;

    //暂停
 system("PAUSE");
 
//循环多次调用getchar()函数
//将每次调用getchar()函数的返回值显示出来
//直到遇到回车符才结束
 while((c=getchar())!=' ')
 {
  printf("%c",c);
 }

    //暂停
 system("PAUSE");

 return 0;
}

  这段小代码也很简单,同样在代码内部都有注释。

  getchar()函数的执行是采用了行缓冲。第一次调用getchar()函数,会让程序使用者(用户)输入一行字符并直至按下回车键 函数才返回。此时用户输入的字符和回车符都存放在行缓冲区。

  再次调用getchar()函数,会逐步输出行缓冲区的内容。

  好了,本人表达能力有限,还是编译运行程序,通过运行结果自己领会吧。

  编译运行程序,会提示您输入字符,您可以交替按下一些字符,如下:

  您一直按下去,您会发现当您按到第4094个字符时,不允许您继续输入字符。这说明行缓冲区的大小也是4K。

  此时您按下回车键,返回第一个字符’a’,如下图:

  继续敲一下回车键,将缓冲区的其它的字符全部输出,如下图:

 3、标准错误输出不带缓冲

  如错误输出时使用:

  cerr<<”错误,请检查输入的参数!”;

  这条语句等效于:

  fprintf(stderr, ”错误,请检查输入的参数!”);

  好了,说到这吧,祝您好运,希望能对您有所。