簡體   English   中英

Printf 顯示這個 - 每當我使用擴展 ascii(unsigned char)

[英]Printf displays this � whenever I use extended ascii(unsigned char)

我想使用一些擴展的 ASCII 字符 o 我使用了無符號字符。 沒有編譯器錯誤,但它只是顯示�

 #include <stdio.h>
#include <wchar.h>
#include "PrintColor.h"

unsigned char background_occupacy[101] = {178,178,177,'@','@','@','@','W','W','M','M','M','M','M','M','M','M','B','Q','G','P','N','N','&','O','D','g','S','E','m','w','A','8','Z','K','H','6','9','X','C','p','b','q','5','U','2','O','e','3','a','V','V','F','4','h','k','o','s','y','u','n','n','c','T','z','z','7','J','x','L','L','v','?','?','=','f','t','t','j',')','(','(','r','r','i','^','/','*','_',';',';',':','-',',','.','.',' ',' ',' ',' '};

int main(){
  text_color(5);
  background_color(5);

  for(int j = 0; j < 8; j ++){
  text_color(8 - j);
  background_color(j);
  for(int i = 101; i > -1; i --){
    printf("%c",background_occupacy[i]);
  }

  text_color(j);
  background_color(8 - j);

  for(int i = 0; i < 101; i ++){
    printf("%c",background_occupacy[i]);
  }
  reset();
  printf("\n");
}
}

我認為這里可能有一些問題,例如:您的終端有自己的編碼,所以如果您想要 output “特殊”字符 - 請確保您的終端可以 output 它。

因此,如果您是 Windows 用戶 - 更改代碼頁或使用強制轉換為另一種編碼。 如果您不是 windows 用戶 - 嘗試使用此庫: https://github.com/fmtlib/fmt


暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM