C语言printf格式化控制台移动光标
2018-02-08 10:06
2521 查看
C控制台的程序,用printf输出进度显示的时候,只是进度的数值变化这样比较好看,这在C语言里面有一个'\r'表示回车,就是光标移动到行首,再进行输出,这样就能到达效果。
printf("process %4d \r", process);
for(int i = 0; i < 1000000000; i++)
;
//在Linux下\033[K是清除光标到行尾的数据
printf("process %4d \r\033[K", process);
//Linux下printf有缓冲区,要用fflush来显示,不然不能及时显示
fflush(stdout)在Linux下,光标移动及背景色和字体颜色设置比较容易:
printf("\033[47;31mhello world\033[5m");
47是字背景颜色, 31是字体的颜色, hello world是字符串. 后面的\033[5m是控制码
颜色代码:
QUOTE:
字背景颜色范围: 40--49 字颜色: 30--39
40: 黑 30: 黑
41: 红 31: 红
42: 绿 32: 绿
43: 黄 33: 黄
44: 蓝 34: 蓝
45: 紫 35: 紫
46: 深绿 36: 深绿
47: 白色 37: 白色
ANSI控制码:
QUOTE:
\033[0m 关闭所有属性
\033[1m 设置高亮度
\03[4m 下划线
\033[5m 闪烁
\033[7m 反显
\033[8m 消隐
\033[30m -- \033[37m 设置前景色
\033[40m -- \033[47m 设置背景色
\033[nA 光标上移n行
\03[nB 光标下移n行
\033[nC 光标右移n行
\033[nD 光标左移n行
\033[y;xH设置光标位置
\033[2J 清屏
\033[K 清除从光标到行尾的内容
\033[s 保存光标位置
\033[u 恢复光标位置
\033[?25l 隐藏光标
\33[?25h 显示光标
若要在windows下移动光标则要调用Windows API:
#include <conio.h>
#include<windows.h>
void setcursor(int x, int y)
{
HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);
COORD setps;
setps.X = x; setps.Y = y;
SetConsoleCursorPosition(hCon, setps);
}附:printf %d用于int或者比int小的整数类型
%ld用于long类型,%lld用于long long类型
printf("process %4d \r", process);
for(int i = 0; i < 1000000000; i++)
;
//在Linux下\033[K是清除光标到行尾的数据
printf("process %4d \r\033[K", process);
//Linux下printf有缓冲区,要用fflush来显示,不然不能及时显示
fflush(stdout)在Linux下,光标移动及背景色和字体颜色设置比较容易:
printf("\033[47;31mhello world\033[5m");
47是字背景颜色, 31是字体的颜色, hello world是字符串. 后面的\033[5m是控制码
颜色代码:
QUOTE:
字背景颜色范围: 40--49 字颜色: 30--39
40: 黑 30: 黑
41: 红 31: 红
42: 绿 32: 绿
43: 黄 33: 黄
44: 蓝 34: 蓝
45: 紫 35: 紫
46: 深绿 36: 深绿
47: 白色 37: 白色
ANSI控制码:
QUOTE:
\033[0m 关闭所有属性
\033[1m 设置高亮度
\03[4m 下划线
\033[5m 闪烁
\033[7m 反显
\033[8m 消隐
\033[30m -- \033[37m 设置前景色
\033[40m -- \033[47m 设置背景色
\033[nA 光标上移n行
\03[nB 光标下移n行
\033[nC 光标右移n行
\033[nD 光标左移n行
\033[y;xH设置光标位置
\033[2J 清屏
\033[K 清除从光标到行尾的内容
\033[s 保存光标位置
\033[u 恢复光标位置
\033[?25l 隐藏光标
\33[?25h 显示光标
若要在windows下移动光标则要调用Windows API:
#include <conio.h>
#include<windows.h>
void setcursor(int x, int y)
{
HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);
COORD setps;
setps.X = x; setps.Y = y;
SetConsoleCursorPosition(hCon, setps);
}附:printf %d用于int或者比int小的整数类型
%ld用于long类型,%lld用于long long类型
相关文章推荐
- C语言之实现控制台光标随意移动
- C语言之实现控制台光标随意移动的实例代码
- C语言实现控制台光标任意移动
- 控制台光标移动(有尾迹)
- C语言练手游戏-控制台输出一个会移动的坦克
- C语言 printf 格式化 输出 右对齐补零
- C语言中printf格式化输出函数
- C语言实现控制台中光标随意移动
- C语言中printf格式化输出函数
- C语言printf函数格式化打印之长整型
- c语言VC中console下移动光标位置
- C语言光标移动
- 【C语言】在VC中使用gotoxy函数实现光标的移动
- C语言中printf格式化输出函数
- C语言中printf格式化输出函数
- 【C语言】在VC中使用gotoxy函数实现光标的移动
- C语言整数类型及printf格式化输出问题总结复习及进制转换的简单实现
- c语言printf格式化输出(2)
- 关于C语言中的printf()方法格式化输出
- 为什么VSCode的JS编辑模式频繁地自动格式化代码,打字时稍微停顿一下光标就移动到分号处还得手动弄回来,体验很差