C 按用户打印基本详细信息的程序。输出中不断出现错误
所以我试图创建一个程序,允许用户输入他们的姓名、DOB和电话号码,然后将它们作为printf语句一起列出。我注意到,每次我运行这个程序时,它都不会打印我的名字,而是用我的出生月份来替换,电话号码会以随机乱码的形式弹出。知道我做错了什么吗??先谢谢你C 按用户打印基本详细信息的程序。输出中不断出现错误,c,C,所以我试图创建一个程序,允许用户输入他们的姓名、DOB和电话号码,然后将它们作为printf语句一起列出。我注意到,每次我运行这个程序时,它都不会打印我的名字,而是用我的出生月份来替换,电话号码会以随机乱码的形式弹出。知道我做错了什么吗??先谢谢你 #包括 #包括 内部主(空){ 字符名[26]; 国际日、年、手机; scanf(“%s”,名称); scanf(“%s%d%d”,名称、日期和年份); scanf(“%d”和手机); printf(“名称:%s\n”,名称); printf(“出生
#包括
#包括
内部主(空){
字符名[26];
国际日、年、手机;
scanf(“%s”,名称);
scanf(“%s%d%d”,名称、日期和年份);
scanf(“%d”和手机);
printf(“名称:%s\n”,名称);
printf(“出生日期:%s%d%d\n”,姓名、日期、年份);
printf(“手机:%d”,手机);
}
您的代码有一些错误,但它们很容易修复
首先,您可能应该在每个scanf
之前有printf
语句,以便用户知道输入什么
第二,你为什么要用这个名字两次?您需要为月份名称声明另一个变量。这就是为什么它把你的名字印成出生月份。您可以选择字符串格式还是数字格式
最后,你对电话号码胡言乱语的原因很可能是因为你输入的号码太大了,不能用双人号码。您可以使用某种类型的无符号int或只使用字符串,在本例中,这可能更适合于输入
这是我对你的代码的建议
#include <stdio.h>
#include <string.h>
int main(void) {
char name[32];
char cellPhone[32];
char month[32];
int day, year;
printf("Please enter your name: ");
scanf("%s", name);
printf("Please enter your DOB (Month ## ####): ");
scanf("%s %d %d", month, &day, &year);
printf("Please enter your cell number: ");
scanf("%s", cellPhone);
printf("Name: %s\n", name);
printf("DOB: %s %d %d\n", month,day,year);
printf("Mobile: %s",cellPhone );
return 0;
}
#包括
#包括
内部主(空){
字符名[32];
手机字符[32];
半个月[32];
国际日,年;
printf(“请输入您的姓名:”);
scanf(“%s”,名称);
printf(“请输入您的出生日期(月):”;
scanf(“%s%d%d”,月、日、年);
printf(“请输入您的手机号码:”);
scanf(“%s”,手机);
printf(“名称:%s\n”,名称);
printf(“日期:%s%d%d\n”,月、日、年);
printf(“手机:%s”,手机);
返回0;
}
对您的代码有几点建议:
char[]
来存储电话号码fgets()
输入字符串,而不是scanf
。如果您不想使用scanf,请这样使用它:scanf(“%26s”,name)
scanf(“%s%d%d”、名称、日期和年份)
。也许你缺少了DOB的月份元素?您已经将名称作为输入,所以它将覆盖旧值char name[26],手机[10];
整数日、月、年;
fgets(姓名,26,标准名称);
fgets(手机,10,标准输入);
scanf(“%d%d%d”、&day、&month、&year);
printf(“%s”,名称);
printf(“日期:%d%d%d\n”,日、月、年);
printf(“手机:%s”,手机);
当我运行它时,我似乎得到了期望的输出:
[rohaan@localhost c-posts]$ ./a.out
Rohan Kumar
+92334312
23 10 1994
Rohan Kumar
DOB:23 10 1994
Mobile:+92334312
scanf(“%s”,名称);scanf(“%s%d%d”,name,
)-为什么要读取两次名称?int
不是存储电话号码的合适数据类型。电话号码本质上是字符序列,而不是实数。