黑马程序员技术交流社区

标题: scanf与printf缓冲区重点 [打印本页]

作者: DUKEMAN    时间: 2015-8-22 08:27
标题: scanf与printf缓冲区重点
                                                                                                一、scanf缓冲区 1、在不同速度的设备之间传递数据的时候,需要使用缓冲区临时存储数据                                        2)内容:scanf 函数工作时会利用一个输入缓冲区把用户在键盘上输入的字符临时存储起来,程序实际上从这个输入缓冲区里获得数字
                                        3)特点:先进入输入缓冲区的数据必须优先处理                                        2、注意事项:
1)如果用户输入的内容和 scanf 函数要求的格式不一致,则它们会一直无法被处理,这会导致后面输入的内容也无法处理
                                        2)可以使用如下两条语句把输入缓冲区里可能存在的错误数据丢弃
scanf("%*[^\n]");//把输入缓冲区里第一个换行字符前的所有内容丢弃
                                        scanf("%*c");//把输入缓冲区里第一个换行字符丢弃
                                        二 、printf缓冲区
printf 函数使用输出缓冲区临时存储要打印的内容
                                        只有满足如下四个条件中的某一个,输出缓冲区里面的内容才会显示在屏幕上
                                        1.'\n'换行字符前面的内容会被打印在屏幕上
2.当主函数结束后程序打印的内容出现在屏幕上
3.当输出缓冲区被充满的时候,里面的内容会被打印在屏幕上
4.可以使用 fflush(stdout)语句把输出缓冲区里的内容强制显示在屏幕上

                               
                       



作者: 愿得一人心1111    时间: 2015-8-22 22:08
嗯     这下就明白了
作者: 素包子    时间: 2015-8-22 22:12
不错  很详细这个知识点
作者: DUKEMAN    时间: 2015-8-23 09:27
愿得一人心1111 发表于 2015-8-22 22:08
嗯     这下就明白了

一起交流,,发帖格式总是出问题 ,请见谅
作者: DUKEMAN    时间: 2015-8-23 09:28
素包子 发表于 2015-8-22 22:12
不错  很详细这个知识点

谢谢 刚学一点,第一次发这种贴
作者: Pythoner    时间: 2015-8-23 17:59
也可以使用getchar()来清掉缓冲区中的数据
作者: DUKEMAN    时间: 2015-8-24 14:48
Pythoner 发表于 2015-8-23 17:59
也可以使用getchar()来清掉缓冲区中的数据

嗯  谢谢补充
作者: 颖峰    时间: 2015-8-25 11:06
说的确实很有道理 很好理解
作者: runsunlife    时间: 2015-8-25 12:06
不错。很好




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2