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
相关产品推荐
相关产品推荐

