关于字符串scanf,gets,getchar输入总结!!!

相信大家或多或少都对这几个输入区分的不是那么的清楚,今天就用这篇文章做个全面的说明。

废话不多说,直接上总结

snanf

输入字符串%s的时候,不可以 “abc def” 这样输入,因为有空格,scanf表示结束

同样的也不可以输入制表符,换行符(回车键)

如果是%c输入一个字符,是没有影响的,也是可以输入空格,换行符号的。

和字符串是不一样的

gets

使用这个需要包括头文件,#include

gets 函数的官方格式:char * gets (char * str );
在参数列表中,需要传一个字符型指针,也就是我们要输入的字符串的名(数组的名)
gets()函数的主要作用就是接受从键盘输入的一个字符串。

gets遇到\n也就是回车键或者EOF时停止,并将读取的结果存放在指针所指的字符数组中。

getchar

getchar 遇到空格、回车、制表符都正常读取。

最后让大家都头疼的问题就是scanf,gets,getchar会不会残留\n在缓冲区

scanf和getchar是需要自己设置吸收\n的操作的。而gets是不需要的,gets遇到回车\n时,系统自动用'0'代替'\n',表示字符串结束,所以输入一串字符串按下回车,就完成了一次输入。

gets 函数只会遇见回车时结束遇到空格t制表符都会正常读取,而 scanf 遇到空格回车、制表符都会结束。

*******很难再找到这么简短的总结文章了,不妨收藏以备不时之需*******

你可能感兴趣的:(数据结构,c语言,c++,java,开发语言)