「已注销」 2022-11-19 21:25 采纳率: 100%
浏览 10
已结题

请问为什么Dev-C++无法识别赋给char类型的八进制和十六进制形式的ASCII码?

初学者,无计算机基础,正在阅读C Primer Plus 第三章。P53提到可以通过使用'\0oo'与'\xhh'的格式来用八进制/十六进制表示ASCII码,按照这种格式将'\0x41'赋给了char类型的变量,用%c的转换说明打印出来后却没有得到“A”的结果,而是得到了“1”。

不是很清楚自己的编译器不支持C的某些标准。一开始以为是因为缺少支持该前缀的某些头文件所以程序输出了内存中的任意值,但重复打印了几次后发现似乎对应的数值是固定的。试着把65赋给char变量再用%c输出,发现打印出了“5”。是自己计算机使用的字符编码不是ASCII吗?请问如果是这种情况怎么查询自己计算机使用的字符编码呢?
百度过了,没能找到类似问题。我明白自己的问题很蠢,但是仍然希望能得到解答,提前感谢可能会来回答的各位。T T

代码:

#include <stdio.h>
 int main(void)
 {
     char first='\0x41';
     char second='0x42';
     char a='65';
     
      printf("%c %d\n",first,first);
      printf("%c %d\n",second,second);
      printf("%c",a);                                        
     
     return 0;

输出结果:

img

使用的编译软件是Dev-C++,5.11版本。

  • 写回答

1条回答 默认 最新

  • 叶落花枯 2022-11-19 21:36
    关注
    
    char a = 'A';       // 字符A
    char a2 = 65;       // 字符A,十进制表示
    char a3 = '\x41';   // 字符A,十六进制表示
    char a4 = '\101';   // 字符A,八进制表示
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月19日
  • 已采纳回答 11月19日
  • 修改了问题 11月19日
  • 创建了问题 11月19日

悬赏问题

  • ¥15 k8s生产配置推荐配置及部署方案
  • ¥15 matlab提取运动物体的坐标
  • ¥15 人大金仓下载,有人知道怎么解决吗
  • ¥15 一个小问题,本人刚入门,哪位可以help
  • ¥15 python安卓开发
  • ¥15 使用R语言GD包一直不出结果
  • ¥15 计算机微处理器与接口技术相关问题,求解答图片的这个问题,有多少个端口,端口地址和解答问题的方法和思路,不要AI作答
  • ¥15 如何根据一个截图编写对应的HTML代码
  • ¥15 stm32标准库的PID角度环
  • ¥15 ADS已经下载好了,但是DAS下载不了,一直显示这两种情况,有什么办法吗,非常急!