我想定义字符,通过输入ascii来输出对应的字符,为什么可以输出4,不能输出2只输出了第二个字符
要想输入字符,需要将scanf里的%d改为%c,而且scan里%c之间需要用空格隔开。
修改如下:
scanf("%c %c",&a,&b);
改成 int a,b;
试试这个
#include <stdio.h>
int main() {
int ascii_code;
printf("请输入一个ASCII码值: ");
scanf("%d", &ascii_code);
// 使用强制类型转换将ASCII码转换为字符
char c = (char)ascii_code;
printf("对应的字符为: %c\n", c);
// 或者使用字符数组将ASCII码转换为字符
char str[2];
str[0] = (char)ascii_code;
str[1] = '\0';
printf("对应的字符为: %s\n", str);
return 0;
}
可能是溢出了,输入b的时候把a的数据覆盖了。可以把a和b定义成int类型,用putchar函数输出。
char 变量名
输入
变量=getchar()
scanf("%c%c",&a,&b)
输出
putchar(字符)
printf(“%c”,字符变量)
scanf和printf中要一次输入完全部字符,不能有空格、回车、Tab等,因为它也是字符,也会被接收
可以加上头文件<ctype.h>以防程序错误