【发布时间】:2021-05-04 06:16:51
【问题描述】:
我使用 scanf() 将 "%d" 格式的输入输入到一个字符中,因为我不想要超过 8 位。但是这样做会改变另一个 char 变量的值。
代码:
#include <stdio.h>
int main() {
char a;
char b;
printf("Enter a: ");
scanf("%c", &a);
printf("a = %c\n", a);
printf("Enter b: ");
scanf("%d", &b);
printf("\na = %d\n", a);
printf("b = %d\n", b);
}
输出:
Enter a: c
a = c
Enter b: 56
a = 0
b = 56
【问题讨论】:
-
你必须决定你想读什么。您想读取单个字符(并将其存储为 char)还是要读取整数(并将其存储为 int)?您选择读取字符 (
char a;char b;)。所以使用%d作为格式说明符没有意义。此外,使用56作为输入没有意义。