进度条函数
2017-02-17 13:43
127 查看
在写进度条函数之前,我们要先明确几个概念:
一·回车换行:
'\r' 回车,回到当前行的行首,而不会换到下一行,如果接着输出的话,本行以前的内容会被逐一覆盖;
'\n' 换行,换到当前位置的下一行,而不会回到行首;
Unix系统里,每行结尾只有“<换行>”,即"\n";Windows系统里面,每行结尾是“<回车><换行>”,即“\r\n”;Mac系统里,每行结尾是“<回车>”,即"\r";。一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。
分别在Windws和Linux中查看此文件可知:
Linux中遇到换行符("\n")会进行回车+换行的操作,回车符反而只会作为控制字符("^M")显示,不发生回车的操作。而windows中要回车符+换行符("\r\n")才会回车+换行,缺少一个控制符或者顺序不对都不能正确的另起一行。
在windows 系统中,当你输入回车时会自动变成\r\n
在linux下的回车键只代表\n
而在windows下的回车键表示\r\n
\n为进入下一行,\r为打印头回到行首上
linux/unix下只用\n,它就表示回车+换行
而windows下,\r只回车不换行的,\n是换行,但在有些编辑中,单独的\n是不会换行的
二·fflush函数
fflush()函数冲洗流中的信息,该函数通常用于处理磁盘文件。
函数名: fflush
功 能: 清除读写缓冲区,需要立即把输出缓冲区的数据进行物理写入时
头文件:unistd.h
原型:int fflush(FILE *stream)
其中stream是要冲洗的流
fflush()会强迫将缓冲区内的数据写回参数stream 指定的文件中. 如果参数stream 为NULL,fflush()会将所有打开的文件数据更新
返回值:fflush 的返回值类型是int类型,那么这个int类型具体的返回是什么呢?
如果成功刷新,fflush返回0。指定的流没有缓冲区或者只读打开时也返回0值。返回EOF指出一个错误。
注意:如果fflush返回EOF,数据可能由于写错误已经丢失。当设置一个重要错误处理器时,最安全的是用setvbuf函数关闭缓冲或者使用低级I/0例程,如open、close和write来代替流I/O函数
其他用法:
fflush(stdin)刷新标准输入缓冲区,把输入缓冲区里的东西丢弃[非标准]
fflush(stdout)刷新标准输出缓冲区,把输出缓冲区里的东西打印到标准输出设备上
产生进度条的元素:
1.一个不断向右增长的容器,可以直观看出当前的进度。
2.一个反应进度的百分比,在这里用到转义字符"%%",代表的是"%"
3.一个标志,反应该进度是正在运行还是卡死,在程序中体现的是char *label="-\\|/";,是顺时针输出.
完整代码:
Makefile的编写:
Makefile用于简化代码的编译链接过程,而Makefile中最重要的就是依赖函数和依赖关系.
单步编写Makefile
当编写好Makefile之后就是利用它来编译这个进度条的代码:
清理代码:
更简洁的Makefile编写
该Makefile的编写将预编译,编译,汇编以及链接直接执行,不容易出错,执行过程如下:
至此,进度条函数就编写成功了。
在windows 系统中,当你输入回车时会自动变成\r\n
在linux下的回车键只代表\n
而在windows下的回车键表示\r\n
\n为进入下一行,\r为打印头回到行首上
linux/unix下只用\n,它就表示回车+换行
而windows下,\r只回车不换行的,\n是换行,但在有些编辑中,单独的\n是不会换行的
一·回车换行:
'\r' 回车,回到当前行的行首,而不会换到下一行,如果接着输出的话,本行以前的内容会被逐一覆盖;
'\n' 换行,换到当前位置的下一行,而不会回到行首;
Unix系统里,每行结尾只有“<换行>”,即"\n";Windows系统里面,每行结尾是“<回车><换行>”,即“\r\n”;Mac系统里,每行结尾是“<回车>”,即"\r";。一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。
分别在Windws和Linux中查看此文件可知:
Linux中遇到换行符("\n")会进行回车+换行的操作,回车符反而只会作为控制字符("^M")显示,不发生回车的操作。而windows中要回车符+换行符("\r\n")才会回车+换行,缺少一个控制符或者顺序不对都不能正确的另起一行。
在windows 系统中,当你输入回车时会自动变成\r\n
在linux下的回车键只代表\n
而在windows下的回车键表示\r\n
\n为进入下一行,\r为打印头回到行首上
linux/unix下只用\n,它就表示回车+换行
而windows下,\r只回车不换行的,\n是换行,但在有些编辑中,单独的\n是不会换行的
二·fflush函数
fflush()函数冲洗流中的信息,该函数通常用于处理磁盘文件。
函数名: fflush
功 能: 清除读写缓冲区,需要立即把输出缓冲区的数据进行物理写入时
头文件:unistd.h
原型:int fflush(FILE *stream)
其中stream是要冲洗的流
fflush()会强迫将缓冲区内的数据写回参数stream 指定的文件中. 如果参数stream 为NULL,fflush()会将所有打开的文件数据更新
返回值:fflush 的返回值类型是int类型,那么这个int类型具体的返回是什么呢?
如果成功刷新,fflush返回0。指定的流没有缓冲区或者只读打开时也返回0值。返回EOF指出一个错误。
注意:如果fflush返回EOF,数据可能由于写错误已经丢失。当设置一个重要错误处理器时,最安全的是用setvbuf函数关闭缓冲或者使用低级I/0例程,如open、close和write来代替流I/O函数
其他用法:
fflush(stdin)刷新标准输入缓冲区,把输入缓冲区里的东西丢弃[非标准]
fflush(stdout)刷新标准输出缓冲区,把输出缓冲区里的东西打印到标准输出设备上
产生进度条的元素:
1.一个不断向右增长的容器,可以直观看出当前的进度。
2.一个反应进度的百分比,在这里用到转义字符"%%",代表的是"%"
3.一个标志,反应该进度是正在运行还是卡死,在程序中体现的是char *label="-\\|/";,是顺时针输出.
完整代码:
Makefile的编写:
Makefile用于简化代码的编译链接过程,而Makefile中最重要的就是依赖函数和依赖关系.
单步编写Makefile
当编写好Makefile之后就是利用它来编译这个进度条的代码:
清理代码:
更简洁的Makefile编写
该Makefile的编写将预编译,编译,汇编以及链接直接执行,不容易出错,执行过程如下:
至此,进度条函数就编写成功了。
在windows 系统中,当你输入回车时会自动变成\r\n
在linux下的回车键只代表\n
而在windows下的回车键表示\r\n
\n为进入下一行,\r为打印头回到行首上
linux/unix下只用\n,它就表示回车+换行
而windows下,\r只回车不换行的,\n是换行,但在有些编辑中,单独的\n是不会换行的
相关文章推荐
- 分享Android recovery updater-script进度条函数的使用经验
- PHP 进度条函数,很不错的!自己写的
- android 多线程下载 显示进度 速度
- 游戏开发项目进度管理(17)
- php任务进度条
- 青铜器RDM与微软Project计划进度管理对比分析
- 0409第六周学习进度条
- js 加减乘除运算 进度问题 解决方案
- 快速实现进度条
- 第六周的学习进度条
- Oracle数据泵,impdp,expdp,查看导出导入进度
- Android progressbar 根据文件下载偏移量的进度条
- 第六周学习进度
- 自定义View之王者荣耀等级进度条
- 标题栏显示进度条
- android 通知栏显示下载进度
- HTML5矢量实现文件上传进度条
- jQuery的each函数--轻松实现一个页面中的多个进度条
- flex学习进度9之访问xml的XMLListCollection
- Android修改圆形进度条ProgressBar的默认颜色