C语言getchar()和gets()的用法
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函数负责读取数据.
getchar函数不会关心你实际输入的是什么,它只负责从缓冲区读取数据,而且每次读取一个字符.
你点击键盘的时候,实际上是往缓冲区输入:
你按下a,则缓冲区中保存了一个字符a
你按下b,则缓冲区中又保存了一个字符b
你按下c,则缓冲区中又保存了一个字符c
你按下1,则缓冲区中又保存了一个字符1
你按下backspace删除键,则缓冲区中删除了一个字符(最后保存的那个1)
除非你按下Enter,不然你其实就是在往缓冲区中塞数据.
关键点来了:当你按下Enter的时候,发生了两个动作.首先是往缓冲区保存了一个'\n'字符,然后才执行刷新
刷新其实就是告诉getchar(或者任何需要读取这个缓冲区的函数,比如scanf),现在你可以开始读取我保存的数据了.
gets()读入一个字符串(“xxxx”)不接受换行符
puts()根据gets()来输出
gets()遇到换行符就终止读取,会读取所有可打印符号,包括开头结尾的空格等
puts()和putchar()都会自动换行
putchar()好像不会换行
额,对啊,我记错了