scanf、gets、puts的应用
本帖最后由 tyf1218405122 于 2022-3-23 14:55 编辑键盘输入
aa bb<回车>
cc dd<回车>
#include <stdio.h>
int main(void)
{
char a1,a2,a3,a4;
scanf("%s%s",a1,a2);
gets(a3);gets(a4);
puts(a1);puts(a2);
puts(a3);puts(a4);
}
为什么结果是
aa
bb
cc dd
这样的啊? 我试了,结果是这样:
a1 = "aa"
a2 = "bb"
a3 = "\n"
a4 = "cc dd" scanf()函数遇到空格会停止读取,所以a1是aa,a2是bb,回车后\n应该又被gets()接收到了,a3是空的(puts默认会换行,所以输出有空行),a4是cc dd。 6666666666666666 {:10_312:} 额,scanf(“%s”,&a1),输入要加& {:10_289:} {:10_289:} 3 4 5 scanf读取非字符时,读到回车换行就不读了,回车换行还在缓冲区中,此时gets(a3)就读到这个了(gets是行读取,也就是读到包括回车换行处,但会丢掉回车换行最后加上\0),然后再gets(a4)就会读到cc dd
页:
[1]