【发布时间】:2022-01-04 06:23:07
【问题描述】:
所以我这里有这段代码来获取用户的三个输入,一个整数类型和 2 个字符类型:
#include <stdio.h>
int main() {
int carNumber;
char customerName, carCode;
printf("Enter Car Number: ");
scanf("%d", &carNumber);
printf("Enter Customer Name: ");
scanf("%s", &customerName);
printf("Enter Car Code: ");
scanf("%s", &carCode);
if (carCode == 'T'){
printf("Toyota");
}
else if (carCode == 'H'){
printf("Honda");
}
printf("\nCar Number: %d", carNumber);
printf("\nCustomer Name: %s", customerName);
return 0;
}
虽然大部分输出正确,但customerName 始终打印(null)。
【问题讨论】:
-
变量
customerName和carCode是单个字符。它们不能保存以 null 结尾的字符串(您尝试读入它们)。如果carCode应该是单个字符,请使用格式字符串" %c"来读取它(注意格式字符串中的前导空格)。如果customerName应该是一个字符串,则需要一个字符数组(例如char customerName[100];)。看起来您似乎跳过了教科书的一些相当重要的部分。 -
我尝试将它们分成两个不同的行,分别为
char customerName[20];和char carCode;以区分它们,但customerName现在什么也不输出。 -
我同意@Someprogrammerdude max1eee-我已经编辑了你的整个程序,你可以测试一下。