C语言getchar()和gets()的用法

先说说关于getchar()是不是没有实参,gets()是不是除了不接受换行符,其他什么符号都接受,puts()函数会自动加上换行符吗?

C语言getchar()和gets()的用法:

1、gets读一行,getchar()读一个字符。

2、函数用法:
1)gets()用于从标准输入流stdin读入一个整行(以'\n'或EOF)结束,写入ptr指向的字符数组,并返回这个指针;出错或遇到文件结束时则返回NULL。行末的'\n'从流中取出,但不写入数组。gets()不检查被写入的数组大小。

2)getchar()用于从标准输入流stdin读入一个字符,并返回这个字符。如果读到文件结尾,则返回EOF。注意到EOF不能用char类型表示,所以getchar()函数返回的是一个int型的数。使用时也应该注意这一点。

拓展资料:

getchar是读入函数的一种。它从标准输入里读取下一个字符,相当于getc(stdin)。返回类型为int型,为用户输入的ASCII码或EOF。

gets从标准输入设备读字符串函数,其可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。

C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器

C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括一些类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。

参考资料:

百度百科——getchar

百度百科——gets

百度百科——C语言

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-12-23
实际上getchar函数是从缓冲区读取数据的,而不是从你的屏幕上读取数据.
键盘负责往缓冲区写入数据,而getchar函数负责读取数据.
getchar函数不会关心你实际输入的是什么,它只负责从缓冲区读取数据,而且每次读取一个字符.
你点击键盘的时候,实际上是往缓冲区输入:
你按下a,则缓冲区中保存了一个字符a
你按下b,则缓冲区中又保存了一个字符b
你按下c,则缓冲区中又保存了一个字符c
你按下1,则缓冲区中又保存了一个字符1
你按下backspace删除键,则缓冲区中删除了一个字符(最后保存的那个1)
除非你按下Enter,不然你其实就是在往缓冲区中塞数据.
关键点来了:当你按下Enter的时候,发生了两个动作.首先是往缓冲区保存了一个'\n'字符,然后才执行刷新
刷新其实就是告诉getchar(或者任何需要读取这个缓冲区的函数,比如scanf),现在你可以开始读取我保存的数据了.
第2个回答  2014-01-18
getchar()读入一个字符,注意是一个(‘x’之类的就是一个字符)
gets()读入一个字符串(“xxxx”)不接受换行符
puts()根据gets()来输出本回答被提问者采纳
第3个回答  2014-01-18
getchar()不用传参数
gets()遇到换行符就终止读取,会读取所有可打印符号,包括开头结尾的空格等
puts()和putchar()都会自动换行追问

putchar()好像不会换行

追答

额,对啊,我记错了

第4个回答  2014-01-18
getchar()得到的是字符如getchar('a'),gets是字符串如gets("阿凡达");是输入的字符
相似回答