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

Visual Studio Release配置中ANSI转义码失效,执行cls后恢复正常的问题求助

Visual Studio Release配置中ANSI转义码失效,执行cls后恢复正常的问题求助

各位编程大佬们好,我碰到一个特别费解的问题,想请大家帮忙看看:

在Visual Studio的Debug配置里,ANSI转义码能正常解析显示,但用未修改过的Visual Studio 2017/2022的Release配置编译运行时,转义码直接变成明文显示了,可执行cls清屏命令之后,转义码又能正常工作了,这到底是怎么回事啊?

我的测试代码

#include <iostream>
#include <cstdlib>

int main() {
    char ch{};
    std::cout << "\x1B[4mNOT OK\x1B[0m\n";
    std::cin >> ch;
    system("cls");
    std::cout << "\x1B[4mOK\x1B[0m\n";
    std::cin >> ch;
    return 0;
}

预期效果

  • 程序启动后,输出带下划线的"NOT OK"
  • 按下任意键执行cls清屏
  • 清屏后输出带下划线的"OK"

实际效果

  • 程序启动后,直接显示转义码原文:←[4mNOT OK←[0m
  • 按下任意键执行cls清屏
  • 清屏后正常输出带下划线的"OK"

有没有大佬能解释下这个现象的原因,或者给个不用依赖cls就能让Release模式一开始就正常识别ANSI转义码的解决办法呀?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 12:49:35