「已注销」 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日

悬赏问题

  • ¥35 引用csv数据文件(4列1800行),通过高斯-赛德尔法拟合曲线,在选取(每五十点取1点)数据,求该数据点的曲率中心。
  • ¥20 程序只发送0X01,串口助手显示不正确,配置看了没有问题115200-8-1-no,如何解决?
  • ¥15 Google speech command 数据集获取
  • ¥15 vue3+element-plus页面崩溃
  • ¥15 像这种代码要怎么跑起来?
  • ¥15 怎么改成循环输入删除(语言-c语言)
  • ¥15 安卓C读取/dev/fastpipe屏幕像素数据
  • ¥15 pyqt5tools安装失败
  • ¥15 mmdetection
  • ¥15 nginx代理报502的错误