一个有关结构体数据输入的问题
以下是一个程序的一部分,作用是输入数据,但运行的时候总是不能正确输进去,是不是scanf()里有错误?for(i=0;i<10;i++) { scanf("%s%d%d%f",stud[i].name,&stud[i].num,&stud[i].age,&stud[i].score); printf("%s,%d,%d,%f\n",stud[i].name,stud[i].num,stud[i].age,stud[i].score);}
这个程序是课本上的,我怀疑%s是怎么知道字符串输入结束的,如果把后面的数字也当成了字符串的元素怎么办,应该怎样改?
[解决办法]
输入多个整数时,可用空格或回车作为分隔符,输入多个字符、整数与字符混合时,
不能用空格做为分隔符。
[解决办法]
scanf()遇到空格或换行也会读入,但是会结束接收之后的字符
[解决办法]
上面写错了,scanf(“%s”),遇到空格或换行也会读入,但是会结束接收之后的字符
[解决办法]
你贴的代码没有问题,可能是你没有按照你写的方式去输入。字符串输入后按下空格或回车表明这个字符串输入完成。如果不是很清楚就在格式串中加一个空格提醒自己。
scanf("%s%d%d%f",stud[i].name,&stud[i].num,
&stud[i].age,&stud[i].score);
scanf("%s %d%d%f",stud[i].name,&stud[i].num,
&stud[i].age,&stud[i].score);