搜索
写经验 领红包

c语言输入字符的函数(输入字符c语言)

C语言输入字符和字符串(所有函数大汇总)

C语言有多个函数可以从键盘获得用户输入,它们分别是:

scanf():和 printf() 类似,scanf() 可以输入多种类型的数据。getchar()、getche()、getch():这三个函数都用于输入单个字符。gets():获取一行数据,并作为字符串处理。

scanf() 是最灵活、最复杂、最常用的输入函数,上节我们已经进行了讲解,本节接着讲解剩下的函数,也就是字符输入函数和字符串输入函数。

输入单个字符

输入单个字符当然可以使用 scanf() 这个通用的输入函数,对应的格式控制符为%c,上节已经讲到了。本节我们重点讲解的是 getchar()、getche() 和 getch() 这三个专用的字符输入函数,它们具有某些 scanf() 没有的特性,是 scanf() 不能代替的。

1) getchar()

最容易理解的字符输入函数是 getchar(),它就是scanf(, c)的替代品,除了更加简洁,没有其它优势了;或者说,getchar() 就是 scanf() 的一个简化版本。下面的代码演示了 getchar() 的用法:

34;c: %c\n&include <stdio.h>34;c: %c\n&include <stdio.h>34;c: %c\n&include <stdio.h>int main(){      char author[30], lang[30], url[30];   gets(author);    printf(, author);     gets(lang);    printf(, lang);    gets(url);    printf(, url);      return 0;}

运行结果:

YanChangSheng↙author: YanChangShengC-Language↙lang: C-Languagehttp://c.biancheng.net http://biancheng.net↙url: http://c.biancheng.net http://biancheng.net

gets() 是有缓冲区的,每次按下回车键,就代表当前输入结束了,gets() 开始从缓冲区中读取内容,这一点和 scanf() 是一样的。gets() 和 scanf() 的主要区别是:

scanf() 读取字符串时以空格为分隔,遇到空格就认为当前字符串结束了,所以无法读取含有空格的字符串。gets() 认为空格也是字符串的一部分,只有遇到回车键时才认为字符串输入结束,所以,不管输入了多少个空格,只要不按下回车键,对 gets() 来说就是一个完整的字符串。

也就是说,gets() 能读取含有空格的字符串,而 scanf() 不能。

总结

C语言中常用的从控制台读取数据的函数有五个,它们分别是 scanf()、getchar()、getche()、getch() 和 gets()。其中 scanf()、getchar()、gets() 是标准函数,适用于所有平台;getche() 和 getch() 不是标准函数,只能用于 Windows。scanf() 是通用的输入函数,它可以读取多种类型的数据。getchar()、getche() 和 getch() 是专用的字符输入函数,它们在缓冲区和回显方面与 scanf() 有着不同的特性,是 scanf() 不能替代的。gets() 是专用的字符串输入函数,与 scanf() 相比,gets() 的主要优势是可以读取含有空格的字符串。scanf() 可以一次性读取多份类型相同或者不同的数据,getchar()、getche()、getch() 和 gets() 每次只能读取一份特定类型的数据,不能一次性读取多份数据。

免责声明:本站部份内容由优秀作者和原创用户编辑投稿,本站仅提供存储服务,不拥有所有权,不承担法律责任。若涉嫌侵权/违法的,请与我联系,一经查实立刻删除内容。本文内容由快快网络小美创作整理编辑!