C代码中的特殊字符

时间:2017-04-14 02:06:50

标签: c

我是大学新生,参加使用C代码的电气和计算机工程课程。我们正在研究最终项目(编写老女佣游戏),我正试图在控制台中打印这些角色:

 ██████╗ ██╗     ██████╗         ███╗   ███╗ █████╗ ██╗██████╗ ██╗                      
██╔═══██╗██║     ██╔══██╗        ████╗ ████║██╔══██╗██║██╔══██╗██║                      
██║   ██║██║     ██║  ██║        ██╔████╔██║███████║██║██║  ██║██║                      
██║   ██║██║     ██║  ██║        ██║╚██╔╝██║██╔══██║██║██║  ██║╚═╝                      
╚██████╔╝███████╗██████╔╝        ██║ ╚═╝ ██║██║  ██║██║██████╔╝██╗                      
 ╚═════╝ ╚══════╝╚═════╝         ╚═╝     ╚═╝╚═╝  ╚═╝╚═╝╚═════╝ ╚═╝                      

但结果是:

 ??????? ???     ???????         ????   ???? ?????? ?????????? ???
????????????     ????????        ????? ???????????????????????????
???   ??????     ???  ???        ?????????????????????????  ??????
???   ??????     ???  ???        ?????????????????????????  ??????
?????????????????????????        ??? ??? ??????  ?????????????????
 ??????? ???????????????         ???     ??????  ????????????? ???

我甚至尝试以不同的方式保存.c文件以及从文本文件中读取字符作为数组并打印出来,但是会出现同样的问题。这些角色是不可能使用的吗? 我正在研究2015年的Visual Studios。任何帮助都会受到赞赏,我仍然对这些东西有点新意。

1 个答案:

答案 0 :(得分:0)

你应该考虑使用宽字符 请参阅C标准库wchar.h

例如:

#include <stdio.h>
#include <wchar.h>
#include <stdlib.h>

int main(int argc, char** argv) {
  wchar_t widechar = L'\x220E';

  wprintf(L"%lc\n", widechar);

  return EXIT_SUCESS;
}

输出: