scanf和gets的差别

Posted cathy_mu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scanf和gets的差别相关的知识,希望对你有一定的参考价值。

scanf("%s", str1);

 scanf() 读取到空格时就认为字符串输入结束了,不会继续读取了。

第一个 scanf() 读取到 "Java" 后遇到空格,结束读取,将"Python C-Sharp" 留在缓冲区。第二个 scanf() 直接从缓冲区中读取,不会等待用户输入,读取到 "Python" 后遇到空格,结束读取,将 "C-Sharp" 留在缓冲区。第三个 scanf() 读取缓冲区中剩下的内容。

 

gets 是 get string 的缩写,意思是获取用户从键盘输入的字符串,语法格式为:

gets(arrayName);
当输入的字符串中含有空格时,输出仍为全部字符串,这说明 gets() 函数不会把空格作为输入结束的标志,而只把回车换行作为输入结束的标志,这与 scanf() 函数是不同的。

总结:如果希望读取的字符串中不包含空格,那么使用 scanf() 函数;如果希望获取整行字符串,那么使用 gets() 函数,它能避免空格的截断。

以上是关于scanf和gets的差别的主要内容,如果未能解决你的问题,请参考以下文章

c++中scanf和cout有啥区别

cin和scanf的速度差别

在简单方程中用 scanf 替换 get 会使程序崩溃

Python snippet(代码片段)

java基础之get和post的差别

你了解gets()和scanf()吗