c语言 中,要同时输入scanf("%s%d%d%c", a, b, c, d)为何输入的都被%s占据了? 求详细解答

如题所述

%s是字符串的输入,不读到空格或空行就不会停止,而%d是整型变量,输入的时候只会读到一个整型变量,然后到空格停止,%c只能读一个字符型变量,读到之后就停止。
scanf("%s%d%d%c", a, &b,&c,&d)注意这个....a是字符数组的首字母本身可以当地址符,而其他的变量是不行的,需要取地址符。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-07-14
因为你%s表示一个字符串,你输一串它都以为是%s,你在每个%s和%d这种之间加个空格,然后就是以空格来分开输入,这样你可以输入, test 1 3 a,这种就占4个了。

还有你后面4个都要&符号的。要取地址来scanf
第2个回答  2015-07-14
%s一直到空格,换行才终止