關於Dev-C++無法打印出ascll值大於127的擴充套件字元的解決方案
阿新 • • 發佈:2021-06-19
以輸出國際象棋棋盤為例,這裡我們需要用到ascll值為219的擴充套件字元。首先我們給出程式碼:
#include "stdio.h" int main() { int i,j; for(i=0;i<8;i++) { for(j=0;j<8;j++) if((i+j)%2==0) printf("%c%c",219,219); else printf(" "); printf("\n"); } }
我們以為的美麗的圖案即將出現在我們的眼前
結果.....
啊這,這說明什麼,這說明我們的控制檯讀不懂ascll值為127以上的字元,那麼到底怎樣才能使我們的控制檯讀懂它呢。
我們來檢視一下devc++的控制檯內碼表編碼
將它改為編碼437也就是MS-DOS美國即可,下邊是常用的編碼:
如果要將中文亂碼改為空白可以將編碼改為65001(十進位制65001)
下面介紹一下修改編碼的操作方法:
永久性修改就是通過修改註冊登錄檔達到。
開啟登錄檔方法:win+R-> regedit
定位到:HKEY_CURRENT_USER\Console%SystemRoot%_system32_cmd.exe
需要注意的是,預設是沒有這個鍵值的。只有在標題欄右鍵修改過設定才會出現。刪除這個項,就會使用console的預設設定。 如果要修改,可以在cmd的標題欄右鍵設定,隨便修改一個屬性,然後重新整理下注冊表就可以了。
右側如果沒有CodePage,則右鍵新建一個DWORD值,直接將其修改為437即可(十進位制的437)
同理也可以修改:powershell 的預設編碼。如果因為許可權問題無法修改的,可以右鍵左邊選中的紅框,選擇許可權,賦給自己完全控制的許可權就可以了!
下面展示執行結果:
還有一個有趣的圖案,程式碼如下:
#include<stdio.h> int main() { char a=176,b=219; printf("%c%c%c%c%c\n",b,a,a,a,b); printf("%c%c%c%c%c\n",a,b,a,b,a); printf("%c%c%c%c%c\n",a,a,b,a,a); printf("%c%c%c%c%c\n",a,b,a,b,a); printf("%c%c%c%c%c\n",b,a,a,a,b); }
各位可自行執行分享成果
希望本篇文章能給您帶來幫助,謝謝閱讀