【C语言】- 设置控制台标题、编码、文字颜色、大小和字体

【C语言】- 设置控制台标题、编码、文字颜色、大小和字体

文章目录

  • 【C语言】- 设置控制台标题、编码、文字颜色、大小和字体
    • 1 - 设置控制台标题
    • 2 - 设置控制台编码
    • 3 - 设置控制台字体和大小
    • 参考链接

1 - 设置控制台标题

因为要用到 Windows API,所以需要包含头文件 Windows.h

#include <Windows.h>

// 标题设置声明
BOOL WINAPI SetConsoleTitle(_In_ LPCTSTR lpConsoleTitle); 

调用示例

#include <Windows.h>

int main(int argc, char* argv[])
{
	// 字符串常量 前面加上 L 会转换成宽字符 wchar_t*
	SetConsoleTitle(L"控制台应用测试");
	
	// 防止控制台退出
	system("pause");
	// 防止控制台退出 也可以使用 
	getchar();
}

效果如图:
在这里插入图片描述

2 - 设置控制台编码

若控制台输出中文为乱码,则可以使用 SetConsoleOutputCP 设置控制台输出代码页

BOOL WINAPI SetConsoleOutputCP(_In_ UINT wCodePageID);

CP 表示 Code Page 代码页,GBK 为 936, UTF-8 为 65001。
更多内容 参见 Microsoft 官网 SetConsoleOutputCP

设置示例

SetConsoleOutputCP(65001);

3 - 设置控制台字体和大小

设置控制台字体和大小,首先需要获取控制台句柄

HANDLE WINAPI GetStdHandle(_In_ DWORD nStdHandle);

控制台输出句柄需要设置参数 STD_OUTPUT_HANDLE 参见官网 GetStdHandle

设置需要调用

BOOL WINAPI SetCurrentConsoleFontEx(
  _In_ HANDLE               hConsoleOutput, // 控制台屏幕缓冲区的句柄
  _In_ BOOL                 bMaximumWindow, // 是否设置窗体最大化的字体,FALSE 设置当前的字体信息
  _In_ PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx // 字体信息结构体指针,见下方 配置结构体
);

配置结构体示例

CONSOLE_FONT_INFOEX fontInfo;
fontInfo.cbSize = sizeof(fontInfo); // 结构体的大小
fontInfo.nFont = 0; // 系统控制台字体表中字体的索引
fontInfo.dwFontSize.X = 0;  // 字高
fontInfo.dwFontSize.Y = 20; // 字宽
fontInfo.FontFamily = FF_DONTCARE; // 字体间距和系列
fontInfo.FontWeight = FW_NORMAL; // 粗细
wcscpy_s(fontInfo.FaceName, L"Consolas"); // 字样的名称

获取句柄与设置示例

HANDLE handle;
if ((handle= GetStdHandle(STD_OUTPUT_HANDLE)) != INVALID_HANDLE_VALUE)
{
	SetCurrentConsoleFontEx(handle, FALSE, &fontInfo);
}

更多内容,参见官网 SetCurrentConsoleFontEX 与 CONSOLE_FONT_INFOEX

参考链接

  • https://blog.csdn.net/qq_42717803/article/details/106318357
  • https://blog.csdn.net/cjz2005/article/details/104358000

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/335851.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

systemverilog/verilog文件操作

1、Verilog文件操作 Verilog具有系统任务和功能,可以打开文件、将值输出到文件、从文件中读取值并加载到其他变量和关闭文件。 1.1 、Verilog文件操作 1.1.1、打开和关闭文件 module tb; // 声明一个变量存储 file handler integer fd; initial begin // 以写权限打开一个文…

计算机vcruntime140.dll丢失要怎么解决,快速解决dll报错问题

在计算机系统中&#xff0c;vcruntime140.dll是一个至关重要的动态链接库文件&#xff08;DLL&#xff09;&#xff0c;它是Visual C Redistributable运行时组件的重要组成部分。这个特定的.dll文件承载了大量的运行时函数和资源&#xff0c;对于许多基于Windows的应用程序来说…

基于动态顺序表实现通讯录项目

本文中&#xff0c;我们将使用顺序表的结构来完成通讯录的实现。 我们都知道&#xff0c;顺序表实际上就是一个数组。而使用顺序表来实现通讯录&#xff0c;其内核是将顺序表中存放的数据类型改为结构体&#xff0c;将联系人的信息存放到结构体中&#xff0c;通过对顺序表的操…

【微服务核心】ZooKeeper

文章目录 1. 简介2. 下载与安装2.1 单机版2.2 集群版 3. 选举机制3.1 首次启动3.2 非首次启动 4. 客户端常用命令行操作4.1 查看节点信息4.2 节点类型4.3 监听器原理4.4 写数据流程 5. 编程实现监听服务动态上下线6. 分布式锁6.1 手写简易分布式锁6.2 Curator 框架 7. 进阶知识…

python对象方法 反射

前言 类实例化得到的对象可以直接调用类中定义的函数&#xff0c;并且可以将对象本身作为第一个参数&#xff0c;那么类能不能也能像对象一样使用类体中的函数而不需要传递第一个参数呢&#xff1f;如果我们使用别人封装好的类&#xff0c;如何判断这个类或者对象是否有某个属…

未来 AI 可能给哪些产业带来哪些进步与帮助?

AI时代如何要让公司在创新领域领先吗&#xff1f;拥抱这5种创新技能&#xff0c;可以帮助你的公司应对不断变化。包括人工智能、云平台应用、数据分析、 网络安全和体验设计。这些技能可以帮助你提高业务效率、保护公司知识资产、明智决策、满足客户需求并提高销售额。 现在就加…

Python入门到精通(三)——Python循环语句

Python循环语句 一、while 循环 1、基础语法 2、嵌套应用 二、for 循环 1、基础语法 2、嵌套应用 三、循环中断&#xff1a;break 和 continue 1、break 2、continue 四、综合案例 一、while 循环 1、基础语法 while的条件需得到布尔类型&#xff0c;True表示继续循环…

一款真正可用的支付系统,可搭建自己的易支付系统,开源无后门

应用介绍 介绍: thinkphp开发的风吹雪支付系统易支付去后台验证版本&#xff0c;支持代理系统&#xff0c;适合搭建易支付系统&#xff0c;完整100%可运行网站源码。是为数不多的一款真正可用的支付系统&#xff0c;开源无后门可运营。 自带微信支付宝官方通道&#xff0c;资质…

探秘网络爬虫的基本原理与实例应用

1. 基本原理 网络爬虫是一种用于自动化获取互联网信息的程序&#xff0c;其基本原理包括URL获取、HTTP请求、HTML解析、数据提取和数据存储等步骤。 URL获取&#xff1a; 确定需要访问的目标网页&#xff0c;通过人工指定、站点地图或之前的抓取结果获取URL。 HTTP请求&#…

一键拆分,轻松整理,高效管理文本文件,让工作更轻松!

在日常工作中&#xff0c;我们经常需要处理大量的文本文件。如何快速整理这些文件&#xff0c;方便管理和使用成为了关键问题。为此&#xff0c;我们为您推荐一款强大的一键拆分和整理工具&#xff0c;助您高效管理文本文件&#xff01; 首先&#xff0c;在首助编辑高手的主页面…

Gradle——基础

1、Gradle基础 1.1、Ant/Maven/Gradle对比 无论那种项目构建工具&#xff0c;都有自身的优势和劣势&#xff0c;所以选择一款最适合项目的就是最好的&#xff01; 1.2、Gradle项目目录结构 Gradle项目默认目录结构和Maven项目的目录结构一致&#xff0c;都是基于约定大于配置…

好物周刊#37:元气桌面

https://github.com/cunyu1943/JavaPark https://yuque.com/cunyu1943 村雨遥的好物周刊&#xff0c;记录每周看到的有价值的信息&#xff0c;主要针对计算机领域&#xff0c;每周五发布。 一、项目 1. MallChat 一个既能购物又能聊天的电商系统。以互联网企业级开发规范的…

《斗罗大陆Ⅱ绝世唐门》美女盘点:高颜值角色吸睛无数,玄机科技再塑国漫辉煌

在国漫崛起的大潮中&#xff0c;玄机科技以其精湛的建模技术和独特的审美视角&#xff0c;打造了一部又一部备受瞩目的佳作。其中&#xff0c;《绝世唐门》作为玄幻类动画的代表&#xff0c;凭借其丰富的人物设定和颜值爆表的角色&#xff0c;赢得了无数观众的喜爱和追捧。今天…

DC-3靶机刷题记录

靶机下载地址&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1-P5ezyt5hUbmmGMP4EI7kw?pwdrt2c 提取码&#xff1a;rt2c 参考&#xff1a; http://t.csdnimg.cn/hhPi8https://www.vulnhub.com/entry/dc-32,312/ 官网http://t.csdnimg.cn/5mVZ7DC-3 (1).pdfhttps://…

裸辞后找工作有多难?分享个人经历+面经+学习路线【内含免费下载初级前端面试题】- 回忆我的2023

&#x1f449; 个人博客主页 &#x1f448; &#x1f4dd; 一个努力学习的程序猿 专栏&#xff1a; HTML和CSS JavaScript jQuery Vue Vue3 React TypeScript uni-app Linux 前端面试分享 前端学习方案分享(VitePress、html2canvasjspdf、vuedraggable、videojs) 前端踩坑日记&…

2023年上半年网络工程师真题(2/3)

21.在OSI参考模型中&#xff0c;负责对应用层消息进行压缩&#xff0c;加密功能的层次为&#xff08;C&#xff09;。 A.传输层 B.会话层 C.表示层 D.应用层 表示层。表示层处理的是用户信息的表示问题。端用户(应用进程)之间传送的数据包含语义和语法两个方面。语义是数据…

索引的概述和性能分析

索引index&#xff0c;是一种有序的数据结构&#xff0c;可以高效的获取数据&#xff0c;在数据库中维护着满足查找特定算法的数据结构&#xff0c;就是索引 无索引的情况&#xff0c;查询数据时会全表扫描&#xff0c;效率极低 索引结构 &#xff08;1&#xff09;二叉树&…

flink学习之水位线

什么是水位线 在事件时间语义下&#xff0c;我们不依赖系统时间&#xff0c;而是基于数据自带的时间戳去定义了一个时钟&#xff0c; 用来表示当前时间的进展。于是每个并行子任务都会有一个自己的逻辑时钟&#xff0c;它的前进是靠数 据的时间戳来驱动的。 我们可以把时钟也以…

Linux下MySQL用户管理、权限、密码

一、原理 MySQL的用户管理实质上是对用户表的管理&#xff0c;系统中的数据库mysql存在一张用户表&#xff08;user&#xff09;&#xff0c;所有的用户都在该表内&#xff0c;对用户的管里也就是对该表进行增删查改的操作。 show databases; 如图中的mysql数据库&#xff0c;…

Leetcode 用队列实现栈

题目&#xff1a; 请你仅使用两个队列实现一个后入先出&#xff08;LIFO&#xff09;的栈&#xff0c;并支持普通栈的全部四种操作&#xff08;push、top、pop 和 empty&#xff09;。 实现 MyStack 类&#xff1a; void push(int x) 将元素 x 压入栈顶。 int pop() 移除并…