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

C++程序输出ASCII艺术出现字符异常,请求技术支持

问题原因与修复方案

1. 编译错误(弹出错误窗口的根源)

代码末尾的<< ' ';存在语法错误:C++规定单引号只能包裹单个字符,换行符无法直接放在单引号内,这会触发编译器报错,导致弹出错误提示窗口。

修复方式:直接删除该行即可(你的原始字符串已包含完整换行,无需额外输出),或替换为<< std::endl;(如果需要追加换行)。修复后的代码片段:

// ... 前面代码不变
   ░░░░░    ░░░░░ ░░░░░░░░░░ ░░░░░   ░░░░░ 
                                            
                                            
                                                
)" << std::endl;
return 0;
}

2. 控制台乱码问题

你使用的█、░属于扩展ASCII/Unicode字符,并非标准ASCII字符。Windows控制台默认采用OEM字符集(如CP437),若源码以UTF-8编码保存,直接输出会出现字符不匹配的乱码。

修复方案:强制控制台使用UTF-8编码

在main函数开头添加控制台编码设置代码(需引入windows.h头文件):

#include <iostream>
#include <windows.h> // 新增头文件

int main()
{
    SetConsoleOutputCP(CP_UTF8); // 设置控制台输出为UTF-8编码
    std::cout << R"(
 ███████████ ████  ██████████ ███████████  
░█░░░███░░░█░░███ ░░███░░░░░█░░███░░░░░███ 
░   ░███  ░  ░███  ░███  █ ░  ░███    ░███ 
    ░███     ░███  ░██████    ░██████████  
    ░███     ░███  ░███░░█    ░███░░░░░███ 
    ░███     ░███  ░███ ░   █ ░███    ░███ 
    █████    █████ ██████████ █████   █████
   ░░░░░    ░░░░░ ░░░░░░░░░░ ░░░░░   ░░░░░ 
                                            
                                            
                                                
)" << std::endl;
return 0;
}

额外注意:

  • 确保源码文件保存为UTF-8编码(若使用MSVC编译器,建议保存为UTF-8带BOM格式,避免编译时字符解析错误)。
  • 运行程序后,可将控制台字体切换为Consolas或Lucida Console,确保特殊字符正常显示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 10:45:45