Linux环境下模拟实现进度条
来源:互联网 发布:窗口编程 编辑:程序博客网 时间:2024/05/22 10:50
回车 \r 本义是光标重新回到本行开头,r的英文return,控制字符可以写成CR,即Carriage Return
换行 \n 本义是光标往下一行(不一定到下一行行首),n的英文newline,控制字符可以写成LF,即Line Feed
在不同的操作系统这几个字符表现不同,比如在WIN系统下,这两个字符就是表现的本义,在UNIX类系统,换行\n就表现为光标下一行并回到行首,在MAC上,\r就表现为回到本行开头并往下一行,至于ENTER键的定义是与操作系统有关的。通常用的Enter是两个加起来。
在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。
于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。
这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。
后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。
/*======================================*/
\n: UNIX 系统行末结束符
\n\r: window 系统行末结束符
c++语言编程时(windows系统)\r 就是return 回到 本行 行首 这就会把这一行以前的输出 覆盖掉
如:
int main() {
cout << "hahaha" << "\r" << "xixi" ;
}
最后只显示 xixi 而 hahaha 被覆盖了
\n 是回车+换行 把光标 先移到 行首 然后换到下一行 也就是 下一行的行首拉
int main() {
cout << "hahaha" << "\n" << "xixi" ;
}
则 显示
hahaha
换行 \n 本义是光标往下一行(不一定到下一行行首),n的英文newline,控制字符可以写成LF,即Line Feed
在不同的操作系统这几个字符表现不同,比如在WIN系统下,这两个字符就是表现的本义,在UNIX类系统,换行\n就表现为光标下一行并回到行首,在MAC上,\r就表现为回到本行开头并往下一行,至于ENTER键的定义是与操作系统有关的。通常用的Enter是两个加起来。
在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。
于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。
这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。
后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。
/*======================================*/
\n: UNIX 系统行末结束符
\n\r: window 系统行末结束符
\r: MAC OS 系统行末结束符
/*======================================*/
一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。(这也是经常说见到的现象,哈哈,原来是这样的)c++语言编程时(windows系统)\r 就是return 回到 本行 行首 这就会把这一行以前的输出 覆盖掉
如:
int main() {
cout << "hahaha" << "\r" << "xixi" ;
}
最后只显示 xixi 而 hahaha 被覆盖了
\n 是回车+换行 把光标 先移到 行首 然后换到下一行 也就是 下一行的行首拉
int main() {
cout << "hahaha" << "\n" << "xixi" ;
}
则 显示
hahaha
xixi
进度条因电脑速度/网络速度等原因
造成从本机/服务器
读取/下载的资源的过程的多少的表现形式
#include <string.h>#include <unistd.h>int main(){char bar[102] = "\0";char ptr[] = "-\//-";int i = 0;for (i = 0; i <= 100;){printf("[%-101s][%d%%][%c]\r",bar,i,ptr[i%4]);fflush(stdout);bar[i++] = '*';bar[i] = '\0';usleep(1);}printf("\n");return 0;}
0 0
- Linux环境下模拟实现进度条
- Linux下模拟实现进度条
- Linux下模拟实现进度条
- 【Linux】Linux下进度条的模拟实现
- 【Linux】Linux系统下进度条的模拟实现
- Linux中模拟实现进度条
- Linux环境下模拟实现sleep函数
- Linux下实现进度条
- Linux下实现进度条
- Linux下实现进度条
- linux环境下使用vim实现简易进度条代码
- C实现LINUX命令行环境下的进度条功能
- 在Linux环境下实现打印彩色进度条
- C语言实现彩色进度条---linux环境下编译
- linux环境下实现进度条以及shell脚本实现彩色进度条
- 【Linux】linux下模拟进度条的编写
- Linux下用Shell模拟进度条
- Linux下实现一个进度条
- 2016蓝桥杯A组java第五题
- 欢迎使用CSDN-markdown编辑器
- 1014. Waiting in Line
- List,set,Map区别
- java关键字 this,super,static,final的总结
- Linux环境下模拟实现进度条
- xml解析之dom解析以及两种方式的特点
- java8时间api和mysql集成的坑
- Leetcode-416. Partition Equal Subset Sum
- 【UVa 10054】欧拉回路
- iOS开发调试技巧总结
- POJ 3508 Hide That Number 可能会
- PyCharm中Dictionary与Python package的区别
- PLSQL更改数据及管理事务