【发布时间】:2015-11-24 21:23:02
【问题描述】:
下午好,我的 c 代码遇到问题,我不知道是什么原因造成的。
每次我尝试打印这样的字符时:“┌──┐”我的程序只会打印一些奇怪的字符,就像这个屏幕截图一样:
我在 Windows 上使用 Qt Creator,Qt 版本为 5.5.0 MSVC 64 位。编译器是 Microsoft Visual C++ Compiler 12.0 (amd64)。
我尝试更改语言环境,但没有成功。我发现打印这些字符的唯一方法是使用 ASCII 代码将它们定义为 int 变量并打印它们,但这会导致一些非常广泛且丑陋的编码,如下所示:
int cSupEsq = 218; //'┌'
int cSupDir = 191; //'┐'
int cInfEsq = 192; //'└'
int cInfDir = 217; //'┘'
int mVert = 179; //'│'
int mHor = 196; //'─'
int espaco = 255; //' '
int letraO = 111; //'o'
//Inicia limpando a tela da aplicação
clrscr();
//Linha 1
printf("%c", cSupEsq);
for (i = 1; i < 79; i++) { printf("%c", mHor); }
printf("%c", cSupDir);
有什么方法可以让程序正确处理这些字符?什么可能导致此问题?
【问题讨论】:
-
您正在尝试在 unicode 环境中打印 8 位 ascii 字符。不会工作...
-
改用
QString。 -
抱歉,您能澄清一下吗?我需要改变环境吗?
-
我必须在这个项目上使用纯 C,我正在使用 Qt Creator 来实现 IDE 的附加功能。
-
您的“丑陋的解决方法”实际上是一个更好的方法。将其包装在一个函数中。
标签: c windows qt-creator