You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C语言printf命令中调整单行文本文字大小?

解决Windows终端中C程序单行文本放大问题

你用的\033[1;33m是ANSI转义序列里的加粗+黄色文本,并不是放大字体,而且老版本Windows CMD默认不支持ANSI序列,需要额外开启。针对Windows终端实现单行标题栏放大,有两种可行方案:

方案1:使用Windows Terminal专属VT序列(简洁但兼容性有限)

新版Windows Terminal、PowerShell 7+支持通过OSC序列直接设置字体大小,代码示例:

#include <stdio.h>

int main() {
    // 将字体放大到20号,输出标题栏
    printf("\033]50;FontSize=20\007");
    printf("==============================\n");
    printf("        我的程序标题栏        \n");
    printf("==============================\n");
    
    // 恢复默认字体大小(比如12号,根据你的终端默认值调整)
    printf("\033]50;FontSize=12\007");
    
    // 正常输出正文内容
    printf("这是正常大小的正文文本\n");
    return 0;
}

注意:该方案仅在Windows Terminal、新版PowerShell中生效,老CMD不支持。

方案2:使用Windows控制台API(兼容性强)

通过Windows原生API修改控制台字体大小,兼容所有Windows控制台环境(CMD、PowerShell、Windows Terminal),代码示例:

#include <windows.h>
#include <stdio.h>

int main() {
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    CONSOLE_FONT_INFOEX cfi;
    cfi.cbSize = sizeof(CONSOLE_FONT_INFOEX);
    
    // 获取当前字体信息,保存原始大小
    GetCurrentConsoleFontEx(hConsole, FALSE, &cfi);
    COORD originalSize = cfi.dwFontSize;
    
    // 设置新的字体高度(决定字号,宽度可保持默认)
    cfi.dwFontSize.Y = 24; // 放大到24号字体
    SetCurrentConsoleFontEx(hConsole, FALSE, &cfi);
    
    // 输出标题栏
    printf("==============================\n");
    printf("        我的程序标题栏        \n");
    printf("==============================\n");
    
    // 恢复原始字体大小
    cfi.dwFontSize = originalSize;
    SetCurrentConsoleFontEx(hConsole, FALSE, &cfi);
    
    // 正常输出正文
    printf("这是正常大小的正文文本\n");
    return 0;
}

编译说明:使用GCC编译时需要链接kernel32库,命令为gcc your_code.c -o output.exe -l kernel32;使用MSVC编译则无需额外配置。

补充:你的原始转义序列没生效的原因

如果只是想实现加粗黄色文本而非放大,需要先开启Windows控制台的ANSI转义支持(老CMD默认关闭),代码如下:

#include <windows.h>
#include <stdio.h>

int main() {
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    DWORD mode;
    GetConsoleMode(hConsole, &mode);
    // 开启ANSI转义处理
    SetConsoleMode(hConsole, mode | ENABLE_VIRTUAL_TERMINAL_PROCESSING);
    
    // 输出加粗黄色文本
    printf("\033[1;33m");
    printf("这是加粗黄色的文本\n");
    printf("\033[0m"); // 恢复默认样式
    
    return 0;
}

内容的提问来源于stack exchange,提问作者Leon Rankovic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 20:40:18