dadidada 发表于 2020-6-16 10:03:32

字符型数据与整型数据之间的转换问题

运行结果如图片所示,问题如下:
c1以%d为占位符输出时,发生溢出显示数值为-2,但是以%c为占位符输出时,ASCII码值为254应该是一个黑色方框,这里却显示为一个?
c2以%u为占位符输出时,正常显示数值为254,以%c为占位符输出时,也显示为一个?
为什么输出的对应字符都是错的,我查了ASCII码表,显示?时,ASCII码值应该是63
代码如下:
#include<stdio.h>
int main()
{
        char c1=254;
        unsigned char c2=254;
        printf("%d,%c\n",c1,c1);
        printf("%u,%c\n",c2,c2);
    return 0;
}

wp231957 发表于 2020-6-16 10:13:45

char顶多也就127大于127的 都无法正常显示,你说的什么方框也只是在特定条件下才能显现

dadidada 发表于 2020-6-16 10:21:04

本帖最后由 dadidada 于 2020-6-16 10:24 编辑


解决了,我可以自己给自己设为最佳答案吗?
在运行框右键单击出现默认值,点开以后把默认代码页改成437美国就可以了

xiaosi4081 发表于 2020-6-16 12:34:51

dadidada 发表于 2020-6-16 10:21
解决了,我可以自己给自己设为最佳答案吗?
在运行框右键单击出现默认值,点开以后把默认代码页改成437 ...

不行的

xiaosi4081 发表于 2020-6-16 12:35:30

不过可以给别人设置:
在运行框右键单击出现默认值,点开以后把默认代码页改成437美国就可以了

405794672 发表于 2020-6-16 15:33:53

dadidada 发表于 2020-6-16 10:21
解决了,我可以自己给自己设为最佳答案吗?
在运行框右键单击出现默认值,点开以后把默认代码页改成437 ...

我是改为437也没有用。就是不输出。与字体有关吧。系统原因。比如曾经有题目要输出笑脸,只好找了个答案。结果出来是正方形框框。无论如何也没有笑脸。
页: [1]
查看完整版本: 字符型数据与整型数据之间的转换问题