繁体   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