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

请问为什么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 13:36
    关注
    
    char a = 'A';       // 字符A
    char a2 = 65;       // 字符A,十进制表示
    char a3 = '\x41';   // 字符A,十六进制表示
    char a4 = '\101';   // 字符A,八进制表示
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    「已注销」 2022-11-19 13:39

    好的谢谢,是我犯蠢了😇😇😇

    回复
编辑
预览

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 在ros2的iron版本进行编译时遇到如下问题
  • ¥18 vs用setup project打包项目实现安装完立即运行
  • ¥15 孟德尔随机化TwoSampleMR在线提取结局数据,遇到Error in check_reset(override_429)的问题
  • ¥15 ONNX转RKNN遇到问题
  • ¥60 以太网电缆未接通怎么处理
  • ¥15 关于超声图片进行放射组学的疑问
  • ¥20 已经有功率放大电路图,具体每个元器件的参数怎么算?
  • ¥15 用GIS怎么提取出一个城市的中心城区
  • ¥30 matlab代码调试
  • ¥15 使用ruoyi分离版,下载完成引成功第三方插件报错,报错,换了好多插件都是一样的。
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部