怎样吧自己做的网站发布,云商城的网站建设,牧童蝉网站建设,南宁营销型网站建设公司哪家好1、首先#xff0c;我们看一下这段代码#xff1a; 它的简单意思就是从键盘读入一个字符#xff0c;然后输出到屏幕。理所当然#xff0c;我们输入1#xff0c;输出就是1#xff0c;输入2#xff0c;输出就是2。 那么我们如果输出的是12呢#xff1f; 它的输出是1。 这…1、首先我们看一下这段代码 它的简单意思就是从键盘读入一个字符然后输出到屏幕。理所当然我们输入1输出就是1输入2输出就是2。 那么我们如果输出的是12呢 它的输出是1。 这里我们先简单的解释下因为当我们从键盘输入字符‘1’‘2’并按下回车后我们的输入被放入了输入缓冲区这个时候getchar()会从缓冲区中读取我们刚才的输入一次只读一个字符所以字符1就被拿出来了赋值给了c然后putchar()又将c放在了标准输出也就是这里的屏幕所以我们看见了最终的显示结果1。同时字符‘1’也被缓冲区释放了而字符‘2’仍然被留在了缓冲区。而这样是很不安全的有可能下次使用的时候我们的缓冲区会读到一些垃圾但是当程序结束的时候它会自动刷新。 2、我们接着看下面的代码 大家觉得这几行代码是什么意思呢大家是否真的看懂了呢 如果你觉得你看懂了那么我提一个问题你觉得是不是你从键盘输入一个字符就会输出一个字符直到遇见了换行符呢 emmmmm。 如果你真的这么想了那你就错了。 它真正的运行过程应该是这样的还记得我们刚才说过的东西吗getchar()会从输入缓冲区去读取内容也就是说我们把所有的内容都输入完成并且按下了Enter键后我们的输入才被送进去了输入缓冲区这个时候while循环才开始工作每一次getchar()从输入缓冲区读取一个字符然后如果不是换行符就输出。 3、那么我们为什么要使用缓冲区呢 举个例子我们知道计算机CPU的处理速度很快的而我们键盘的输入速度总是比不过CPU的处理速度那么CPU就得一直等着键盘输入完这样很浪费资源。于是我们党键盘输入完了再让CPU一次性处理这样就会大大地提高效率。 又比如我们的打印机打印文档打印机的处理速度是很慢的所以我们会将文档输出到打印机的缓存中去这样打印机就可以自行慢慢打印而不必占用CPU资源。 4、缓冲区的类型 缓冲区 分为三种类型全缓冲、行缓冲和不带缓冲。 1、全缓冲 在这种情况下当填满标准I/O缓存后才进行实际I/O操作。全缓冲的典型代表是对磁盘文件的读写。 2、行缓冲 在这种情况下当在输入和输出中遇到换行符时执行真正的I/O操作。这时我们输入的字符先存放在缓冲区等按下回车键换行时才进行实际的I/O操作。典型代表是键盘输入数据。 3、不带缓冲 也就是不进行缓冲标准出错情况stderr是典型代表这使得出错信息可以直接尽快地显示出来。 5、缓冲区的刷新 缓冲区会在以下三种情况下被刷新 1、缓冲区满 2、执行flush刷新缓冲区的语句 3、程序正常结束。--------------------- 作者lws123253 来源CSDN 原文https://blog.csdn.net/lws123253/article/details/79848373 版权声明本文为博主原创文章转载请附上博文链接转载于:https://www.cnblogs.com/jack-hzm/p/10059231.html