scanf和gets有什么区别,为什么scanf和gets在一起,且scanf在前面就不能同时输出呢?

2025-05-12 21:35:21
推荐回答(2个)
回答(1):

scanf可以输入所有类型的数据,而gets只能输入字符串;当scanf在前面的时候输入数据和后面的字符串中间会用空格分开,这时gets就无法区分这个空格是否属于gets的输入。你在scanf后面加一个getchar();会解决问题的。

回答(2):

gets(字符数组名);作用:从终端输入一个字符串到字符数组
#include
main()
{char str1[20];
gets(str1);//ges函数输入,以Enter结束。
puts(str1);
}

#include
main()
{char str2[20];
scanf("%s",str2);//"%s"输入,以空格结束。
puts(str2);
}
eg:输入:how are you?
分析可得:若要处理的字符串包含空格字符,那么必须用gets函数获取这个字符串!
不知是你想要的答案不,开始我也没搞懂,多看书的结果!