2017-04-14 61 views
0

我是大學新生,參加使用C代碼的電氣和計算機工程課程。現在我們正在對最終的項目(編碼老處女的遊戲),我試圖在控制檯獲取打印這些字符:C代碼中的特殊字符

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

但隨之而來的是:

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

我甚至嘗試以不同的方式保存.c文件,並將文本文件中的字符作爲數組讀取並打印出來,但也會出現相同的問題。這些角色是不可能使用的嗎? 我在Visual Studios 2015上工作。任何幫助將不勝感激,我還是有點新東西這個東西。

+1

你的控制檯(控制檯仿真器),什麼是[代碼頁](https://en.wikipedia.org/wiki/Code_page)使用它?您應該知道哪個代碼頁處於活動狀態(或者如何將其更改爲所需的代碼頁,可能來自舊的DOS時間,用於[╔和╝]符號(https://en.wikipedia.org/wiki/Box-drawing_character),如[ 437代碼頁](https://en.wikipedia.org/wiki/Code_page_437);或嘗試unicode?)並查找用於格式化的符號代碼。 – osgx

+1

[Windows命令行中的Unicode字符可能重複 - 如何?](http://stackoverflow.com/questions/388490/unicode-characters-in-windows-command-line-how) –

回答

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; 
} 

輸出: