C语言美化控制台命令
最近,把扫雷写完了。主要的功能其实早就实现了,美化控制台页面花费了我好多时间。感觉就跟网页前端一样,我现在已经完全是前端工程师的形状了。
=============================================================================
这里把美化控制台的相关命令列举一下。下面的这些函数要使用,必须包含在windows.h这个头文件中
system("pause");
实现按任意键继续的效果,这个功能我感觉挺适合控制台游戏的开发的
system("cls");
清空当前控制台的屏幕
void gotoxy(int x,int y){COORD c;c.X=x;c.Y=y;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);
}
gotoxy()这个函数可以指定printf的输出位置。y代表的是第多少行,x代表的是第多少列 (控制台的行的宽度是一个回车,列的宽度是一个空格)
int color(int c){//SetConsoleTextAttribute是API设置控制台窗口字体颜色和背景色的函数SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), c); //更改文字颜色return 0;
}
color()这个函数可以改变控制台的的字体颜色,也可以改变控制台的背景颜色
void output_board(int i,int j,int chang,int kuan){//(i,j)表示边框的左上角//i代表第几行,j代表第几列 int last_line=i+kuan-1;int last_col=j+chang-1;int first_j=j;int first_i=i; for( ;i<=last_line;i++){//先遍历行 j=first_j;for(;j<=last_col;j++){//再遍历列 gotoxy(j,i);if(i==first_i||i==last_line){printf("-");}else if(j==first_j||j==last_col){printf("|");} }}gotoxy(0,0);//控制台输出位置归零
}
//输出效果为-----------| || || |-----------
output_board()这个函数是我自己写的。写扫雷的时候,输出了大量的边框。所以,我就想把他直接封装起来。i代表第几行,j代表第几列,是边框的左上角(这个和上面的gotoxy参数的顺序不一样,是相反的).,可以自己定义边框的长宽
void output_squareboard(int i,int j,int chang,int kuan){//(i,j)表示边框的左上角//i代表第几行,j代表第几列//这个函数有bug,j和chang的奇偶性,有可能会导致最右边的边框输出不出来//但是,我懒得再排错了。出现右边框打印不出来的话,就自己换换j或者changint last_line=i+kuan-1;int last_col=j+chang-1;int first_j=j;int first_i=i; for( ;i<=last_line;i++){//先遍历行 j=first_j;for(;j<=last_col;j=j+2){//字符"■"占有两个空格的位置 //再遍历列 gotoxy(j,i);if(i==first_i||i==last_line){printf("■");}else if(j==first_j||j==last_col){printf("■");} }}gotoxy(0,0);//控制台的输出位置归零
}
//输出效果为■■■■■■■■■■■ ■■ ■■■■■■■■■■■
output_squareboard()函数是输出以 "■"围成的方框,"■"行和行之间的距离其实没有那么大,是紧靠在一起的,可以自己在控制台上试一下。
值得注意的是,"■"这个字符,在控制台上是占有两个字符的,所以在遍历列的时候,每次都要+2。这个函数实际上有一个bug,就是j和chang的奇偶性,有可能会导致最右边的边框输出不出来。但是我懒得排错了,如果出现了这种情况的话,你可以换一换j和chang的值
void SetSize(unsigned uCol,unsigned uLine){//指定控制台窗口的大小 ,代表了控制台的长度是ucol个空格,宽度是uline个回车 char cmd[64];sprintf(cmd,"mode con cols=%d lines=%d",uCol,uLine);system(cmd);
}
SetSize()函数可以指定控制台显示的大小:控制台的长度是ucol个空格,宽度是uline个回车
还有一个模板,这个模板是模仿网上一个C语言贪吃蛇博客上面的。
void menu(){//显示菜单int i,j;color(2);//绿色,输出"扫雷" printf(" \n");printf(" \n"); printf(" \n");printf(" _____ ______ ________ _________ \n");printf(" | | / \\ / \\ | _________ ______|_______ \n");printf(" | | / ____ \\ / ____ \\ _|__ | | \\ | \\ | \n");printf(" | |/ / \\ \\ / / \\ \\ | ________| | \\ | \\ | \n");printf(" | / | / \\ \\ __|__ | ______________ \n");printf(" | / | / | | | ________| |______|______| \n");printf(" | | | | | | ____ ___ ____ |______|______| \n");printf(" | | | | | | |___| | |/ __ \\ / _____ \\ \n");printf(" | | | | | | ____ | / \\ \\ / /____\\__\\ \n");printf(" | | | | | | | | | | | | | \\_______ \n");printf(" |____| |____| |____| |___| |___ | |__| \\________/ \n");printf(" \n");printf(" \n");gotoxy(43,18);//淡蓝色,居中输出"C语言扫雷" color(11);printf("C 语 言 扫 雷");color(14);//白色,输出边框output_board(20,27,47,6);color(10);//绿色,输出游戏选项 gotoxy(35, 22);printf("1.开始游戏");gotoxy(55, 22);printf("0.退出游戏");gotoxy(29,27);//蓝色,输出游戏选项 color(3);printf("请选择[1 0]:[ ]"); //作者署名color(7); gotoxy(90,27);printf("by cookie_plus");gotoxy(92,28);printf("未来科技有限公司");color(7); // 恢复控制台的颜色gotoxy(0,0); // 恢复控制台输出的位置
}
这个模板可以一直保留着,以后再写类似的程序的时候,可以直接把printf的内容换一下
====================================================================
参考博客:C语言贪吃蛇游戏的实现(一)
C语言美化控制台命令相关推荐
- UDK控制台命令概览
控制台命令 文档概要: 本文档将覆盖各种游戏及编辑器控制台命令(命令在控制台侧进行输入). 文档变更记录:创建,并不断维护. 控制台命令 概述 命令列表 一般目的 调试 内存和性能 显示 渲染 贴图m ...
- r语言使用linux命令,技术|如何在 Ubuntu 上安装和使用 R 语言
这个教程指导你如何在 Ubuntu 上安装 R 语言.你也将同时学习到如何在 Ubuntu 上用不同方法运行简单的 R 语言程序. R,和 Python 一样,它是在统计计算和图形处理上最常用的编程语 ...
- C语言变换控制台颜色
C语言变换控制台颜色 我们都知道用C语言写的程序打开的控制台颜色默认为黑底白字,看的多了确实感觉乏味,那么可以改变颜色么?其实是可以的,有两种方法可以改变控制台颜色,一种是用 system() 调用 ...
- UE4控制台命令有哪些,什么意思?
转自:https://www.52pojie.cn/thread-674880-1-1.html 官方文档: file:///D:/git/AirSim/Unreal/Environments/New ...
- C语言调用Cmd命令以及执行系统软件
C语言调用Cmd命令以及执行系统软件 system("explorer.exe")文件夹管理器 system("explorer.exe c:");打开C盘 s ...
- C语言代替cmd命令
该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/105066506 C ...
- Linux系统安全与应用(二)——安全机制、安全控制、弱口令检测JR、网络扫描NMAP和控制台命令Netstat
Linux系统安全与应用(二)--安全机制.安全控制.弱口令检测JR.网络扫描NMAP和控制台命令Netstat 一.使用sudo机制提升权限 1.su命令的缺点 2.sudo的用途和用法 3.配置s ...
- [转载] c语言中检查命令行参数_C中的命令行参数
参考链接: Java中的命令行参数 c语言中检查命令行参数 Command line argument is a parameter supplied to the program when it i ...
- c语言程序命令行,ttyd(C语言编写的命令行程序) v1.3.1 免费版
ttyd是一个C语言编写的命令行程序,可以把任意命令行程序分享到网页上操作,可以看做是个网页版的远程终端,支持 Linux.macOS 系统,还可以运行在 OpenWrt 之类的嵌入式系统上. 功能特 ...
最新文章
- 2006年下半年 网络工程师 上下午试卷【附带答案】
- 基于现有工程解读stm32的工程文件
- mysql基本操作 [http://www.cnblogs.com/ggjucheng/archive/2012/11/03/2752082.html]
- Quick BI 功能“炸弹”:即席分析、模板市场、企业微信免密登录等强势功能
- 《剑指offer》字符串的排列
- AES_ENCRYPT() 和 AES_DECRYPT()
- MyBatis 配制文件层次表
- JavaScript | JSON基本格式
- ie浏览器速度提升设置 关闭网页多媒体方法
- pytorch错误解决 | 错误‘Widget Javascript not detected. It may not be installed or enabled properly.‘
- java8 64x下载_jdk8 u102 64位下载
- Character,String相关方法,Int,double互相转换
- Scala中如何优雅的处理Null
- python基础随机数模块生成银行卡密码
- windows关机自动还原设置UWF
- Java微信小程序发送服务通知
- 忘记压缩包密码 python 暴力破解rar密码
- matlab仿真低通滤波,Matlab 低通Butterworth滤波仿真m文件
- 一种轻量化多尺度的遥感跨模态图文检索方法
- K1-K4分组控制LED
热门文章
- substratum android8,如何在没有root的情况下在Android Oreo上安装Substratum主题
- 如何将Excel表格中的数据粘贴到记事本中,且每列间距都为一个空格?
- 弱监督检测初识——Weakly Supervised Deep Detection Networks解读
- xml 入门 shema_02
- 螺旋传动设计系统lisp_螺旋传动的设计计算.pdf
- ZOC7-ssh工具配置快速登录执行命令
- 【开关电源】matlab/simulink入门
- webpack打包路径更改_webpack打包教程
- ubuntu下安装rtl8811cu/rtl8821cu网卡 Tplink WDN5200H网卡
- 记录你生活的点滴,体会分享的快乐