系统:CentOS
1、printf行缓冲函数
printf是一个行缓冲函数,先写到缓冲区,满足一定条件会刷新缓冲区。比如有'\n'或者调用 fflush(stdout) 手动刷新等。
验证:以打印0到49为例子
<1>没有\n,有fflush(stdout)
现象:边打印边输出
<2>没有\n,没有fflush(stdout)
现象: 先休眠一会儿,在输出结果
<3>没有fflush(stdout),有\n
现象:换行边打印边输出
2、\r和\n区别
\r 仅仅只是回车,\n是换行,如果下一行有内容光标会回到内容的后边。回车就是光标回到最左边;换行就是移动到下一行。如果只回车,打印的东西会覆盖同行以前的内容。
在实现进度条时就会用到上面的知识。
进度条实现过程
进度条大致分3个部分:
<1>进度条部分[#####],注意刷新缓冲区、换行和回车区别、打印方向、格式化控制;
<2>显示百分比,注意%为特殊字符,%%输出为%;
<3>显示加载图案,定义一个字符串“|/-\\”实现顺时针加载图案,注意\为转义字符,需要两个\;
代码部分