C语言中能否同时输入scanf("%s%c",a,&b);

%s和%c连在一起

可以的

追问

我的意思是字符串和字符连起来
不是int型
能举个%s和%c的例子吗?
多谢

追答

输入一个字符串赋值给cc,然后按回车或者空格来结束,以输入下一个字符赋值给c,按空格或者回车也是字符啊,所以它就把你输入的空格或者回车赋给了cc字符了。
如果你中间加一个空格,输入完第一字符串后,按空格,他会按格式赋值,因为scanf("%s %c"); 中间有一个空格,会吸收这个空格,因此会在你输入空格后的下一个字符赋给字符c。

scanf("%d%f%d%")
像这样的中间的空格或者回车不会被下一个变量吸收,具体你可以看书上的定义

scanf("%c%c")这样的,你输入ab,然后他把a赋给第一个,a赋给第二个,没问题。
但是你输入a后,再空格或者回车,他就会把空格或者回车赋给第二个字符。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-12-20
scanf("%s%c",a,&b);不能正常读入数据,b中读入的都是空格、回车或tab符,应改为:
scanf("%s%*c%c",a,&b);追问

中间的%*c怎么理解呢?
书上没出现过

追答

%*c,读入一个字符并忽略掉,可以初步解决字符串与字符之间的分割问题,你可以试一试,输入时无论以一个回车或一个空格分隔都可以。

你又被上面的忽悠了吧?