scanf、gets、getchar的基本使用

1:scanf

scanf()是在C语言中最常用的输入函数,它需要我们严格按照要求进行输入,除非你用对scanf()使用了正则表达式;对于scanf(),当它遇到空格、回车、或者Tab键时,都会自动停止输入,剩下的内容逗留在缓冲区中,所以如果需要输入字符串,不推荐使用它。

关于正则表达式:
[ ]是个集合的标志,%[ ]特指读入此集合所限定的那些字符,比如%[A-Z]是输入大写字母,一旦遇到不在此集合的字符便停止。
如果集合的第一个字符是“”,这说明读取不在””后面集合的字符,既遇到”^”后面集合的字符便停止(这就是scanf函数里的正则表达式应用)。
注意:此时读取的字符串是可以含有空格的。
例如:
“%[^\n]”则表示当遇到回车时才结束输入。
“%[A-Z]”则表示输入A到Z的任何字符(包括回车、空格)都会停止。
“%[0-9a-zA-Z]”则表示只能输入数字加字母

2:gets

gets()主要用来接收字符串,可以接收空格,遇到’\n’时结束,但不接收’\n’,把 ‘\n’留存输入缓冲区;把接收的一串字符存储在形式参数指针指向的空间,并在最后自动添加一个’\0’。
相对于scanf(),我觉得gets()的使用更加的简单,当你需要输入那个字符串的时候,就直接gets(str)就可以了。
可以无限读取,不会判断上限,因此使用gets不安全,可能会造成溢出。

3:getchar

getchar()主要用来接收单个字符,不管是空格或者回车都可以接收
可以用作特别字符作为结束的时候进行判断。
例如:
(c=getchar())!=’\n’ 则表示遇到回车的时候结束接收字符。

空格换行TAB
scanf("%s")结束读取,但不丢弃,仍在缓冲区结束读取,但不丢弃,仍在缓冲区中结束读取,但不丢弃,仍在缓冲区中
scanf("%c")读入读入读入
getchar()读入读入读入
gets()读入读入,转换成’\0’读入
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值