關於Dev-C++無法打印出ascll值大於127的擴展字符的解決方案


以輸出國際象棋棋盤為例,這里我們需要用到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);    
}

各位可自行運行分享成果

希望本篇文章能給您帶來幫助,謝謝閱讀


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM