int studentId,nOfWorkingDay;
char name[30],surname[30];
printf("Enter person information : name , surname ,studentId, nOfWorkingDay\n");
scanf("%s %s %d %d",&name,&surname,&studentId,&nOfWorkingDay);
printf("%s %s %d %d",name,surname,studentId,nOfWorkingDay);
我得到一个奇怪的输出。例如,当我输入:
birol genç 30 35
输出是:
birol gen┼ 30 35
这里有什么问题?
答案 0 :(得分:2)
scanf("%s %s %d %d",&name,&surname,&studentId,&nOfWorkingDay);
应该是
scanf("%s %s %d %d", name, surname,&studentId,&nOfWorkingDay);
即删除&
和name
之前的surname
,它们已经是字符串的地址。
答案 1 :(得分:1)
int studentId,nOfWorkingDay;
char name[30],surname[30];
printf("Enter person information : name , surname ,studentId,nOfWorkingDay\n");
scanf("%s %s %d %d",name,surname,&studentId,&nOfWorkingDay);
printf("%s %s %d %d",name,surname,studentId,nOfWorkingDay);
答案 2 :(得分:0)
#include <stdio.h>
int main(){
int studentId,nOfWorkingDay;
char name[30],surname[30];
printf("Enter person information : name , surname ,studentId,nOfWorkingDay\n");
scanf("%s %s %d %d",name,surname,&studentId,&nOfWorkingDay);
printf("%s %s %d %d",name,surname,studentId,nOfWorkingDay);
}
描述:
的scanf(&#34;%S&#34;,姓名);
%s占位符用于读取文本,但仅限于遇到第一个空格字符。所以空格或制表符或Enter键终止字符串。 (太糟糕了。)另外,firstname是一个char数组,所以它不需要&amp; scanf()函数中的运算符。