scanf能不能与gets一起用,请说明原因,详细点哈。 我试过,好像不能
发布网友
发布时间:2023-09-25 13:26
我来回答
共3个回答
热心网友
时间:2023-09-25 16:11
gets函数可以一次接收一行输入串,其中可以有空格,也就是说空格可以做为字符串的一部分输入.
而scanf函数接收的字符串不会含有空格,即遇到字空格时,认为字符串输入结束,也就是说空格是scanf默认的结束符号。
scanf和gets不能混合使用,如果一个程序中用scanf的话,一般不能再用gets,反之亦然。
1:...
2:gets()输入字符串时,可以包含空格在内的字符,在回车时,自动将字符串结束标志'\0'赋予字符数组最后一个元素。scanf函数不能输入包含空格字符的字符串,也就是说空格是scanf默认的结束符号。
3:如果像你在你的程序中提到的只把for循环中gets改为scanf的话,在后面该输入的时候直接跳过的原因是,在结束前一个scanf输入时输入的回车被后一个gets输入时接受,也就是说前一个地方输入的“数据+回车”分别被两个地方接受。此种问题会出现在gets和scanf交接处。只需要在程序中统一改为scanf和gets就可以了。
热心网友
时间:2023-09-25 16:11
应该可以。我们老师昨天用的时候,就是前面用的gets,后面写的scanf。一前一后,不影响的
再看看别人怎么说的。
热心网友
时间:2023-09-25 16:12
scanf
读到空字符后停止,比如
空格
换行
Tab
而gets只读到换行后才停止