22问答网
所有问题
c语言 中,要同时输入scanf("%s%d%d%c", a, b, c, d)为何输入的都被%s占据了? 求详细解答
如题所述
举报该问题
推荐答案 推荐于2017-11-27
%s是
字符串
的输入,不读到空格或空行就不会停止,而%d是整型变量,输入的时候只会读到一个整型变量,然后到空格停止,%c只能读一个字符型变量,读到之后就停止。
scanf("%s%d%d%c", a, &b,&c,&d)注意这个....a是字符数组的首字母本身可以当地址符,而其他的变量是不行的,需要取地址符。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://22.wendadaohang.com/zd/XSffS6IC0hf6Sh6XCf.html
其他回答
第1个回答 2015-07-14
因为你%s表示一个字符串,你输一串它都以为是%s,你在每个%s和%d这种之间加个空格,然后就是以空格来分开输入,这样你可以输入, test 1 3 a,这种就占4个了。
还有你后面4个都要&符号的。要取地址来scanf
第2个回答 2015-07-14
%s一直到空格,换行才终止
相似回答
...
scanf(
"
%s%d%d%c
",
a,
b,
c,
d)为何输入的都被%s
占据了? 求详细解 ...
答:
输入%s时要以空格换行或制表符结束,然后才能输入剩下的字符,你上面的
b,c,
d如果不是指针,得用
&b,&c,&
d,还有%c前需要有空格,即
scanf(
"
%s%d%d %c
",
a,
&b, &c,
&d);
C语言中scanf
函数以
%s
和
%d
格式进行输入时
,输入的
空格和Enter残留在缓冲...
答:
s格式读入字符串时,只有接收到\n时(假设字符数组空间不收限制的话),才停止如入,因此以
%s,%d
读入一个字符串和一个整数时,一般不会得到预期的结果,这是因为逗号“,”被当作字符串的一部分,所以整数必被接受为字符串。解决的办法是,用两个
scanf()
函数分别读入字符串和整数。
大家正在搜
相关问题
c语言 中,要同时输入scanf("%s%d%d%c", a...
怎么在C语言中产生一个1000-9999的10个随机数,要求...
c语言中,scanf("%d,%d",&a,&b);中的逗号...
C语言 求详细过程: main() { char a,b,c...
C语言,题目中的选择题,求详细解析
C语言课本题目,运行以下程序段后,x, y,z的 值分别为?...
关于C语言中交换两个变量的几种做法?求详细解释!实际运行中f...
求c语言大神详细说明这个程序(输入字符串,然后反向输出)