当前位置:嗨网首页>书籍在线阅读

23-刷新输出

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

3.7.2 刷新输出

printf() 何时把输出发送到屏幕上?最初, printf() 语句把输出发送到一个叫作缓冲区(buffer)的中间存储区域,然后缓冲区中的内容再不断被发送到屏幕上。C标准明确规定了何时把缓冲区中的内容发送到屏幕:当缓冲区满、遇到换行字符或需要输入的时候(从缓冲区把数据发送到屏幕或文件被称为刷新缓冲区)。例如,前两个 printf() 语句既没有填满缓冲区,也没有换行符,但是下一条 scanf() 语句要求用户输入,这迫使 printf() 的输出被发送到屏幕上。

旧式编译器遇到 scanf() 也不会强行刷新缓冲区,程序会停在那里不显示任何提示内容,等待用户输入数据。在这种情况下,可以使用换行字符刷新缓冲区。代码应改为:

printf("Enter your desired monthly salary:\n");
scanf("%f", &salary);

无论接下来的输入是否能刷新缓冲区,代码都会正常运行。这将导致光标移至下一行起始处,用户无法在提示内容同一行输入数据。还有一种刷新缓冲区的方法是使用 fflush() 函数,详见第 13 章。