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

请问为什么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 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么