行缓冲。在这种情况下,当在输入和输出中遇到换行符时,标准I/O库执行I/O操作。这允许我们一次输出一个字符,但只有在写了一行之后才进行实际I/O操作。当流涉及一个终端时,通常使用行缓冲。
第一个例子:(hello world)
在这里,当我们没有在hello world后边跟\n,此时结果中并没有出现hello world;
而当我们给它加上\n之后,
结果是这样的:
这是为什么呢,这里就是因为缓冲区的存在。当我们在屏幕上打印出来之前会将内容存放在行缓冲区里。只有识别到\n时,才会输出内容。
第二个例子:(神奇的进度条)
说起进度条,大家都再熟悉不过了。比如像这样的:
这样的一个进度条怎么用代码实现呢?
简单的分析一下,首先我们要输出走过的进度,以及剩余部分,同时还得显示百分比。
代码实现如下:
progress_bar是定义了一个102个空间,来存放每个进度;
ch[]表示的是出现进度时的缓冲效果;
‘#’代表了进度;
fflush(stdout):为了刷新行缓冲区的内容;
usleep(100000):睡眠时间,即控制进度的快慢;
运行结果如下:
今天的缓冲就先说到这里喽~~
欢迎提出宝贵意见哦。