喵呜 来啦来啦:C语言gets(),scanf()与getchar()函数的区别

喵博主在刚刚接触这些输入函数的时候,也是朝天喵喵喵,今天给大家梳理一下,希望对你们有帮助,以下内容是喵博主个人的总结,文中有知识错误,请大家指出,相互学习,共同进步。

scanf( )函数和gets( )函数都可用于输入字符串,getchar()函数用于读取字符;

scanf()函数可以读取所有类型的变量,不能接收空格,遇到空格、回车和Tab键都会认为输入结束。

gets()函数用于输入字符串,可以接收空格,遇到回车认为输入结束;

getchar()函数可以接受空格,回车等字符;

举个栗子:

#include<stdio.h>
int main() {
	char password[20];
	scanf("%s",&password);
	printf("%s", password);
	return 0;
}

 其中 空格ghjj就被放入缓存区了

#include<stdio.h>
int main() {
	char password[20];
	scanf("%s",&password);
	printf("%s\n", password);
	getchar();
	char k=getchar();
	putchar(k);

	return 0;
}

其中,空格被第一个getchar拿走,g被第二个getchar拿走赋值给k,输出。

注意:

scanf :当遇到回车,空格和tab键会认为输入结束,但是回车,空格和tab键仍会留在输入的缓冲区中。

gets:可接受回车键之前输入的所有字符,回车键不会留在输入缓冲区中

举个栗子证明一下下:

 

如果gets()函数没有带走\n,getchar将接受\n,getchar将不输入r,也不会输出r。 

  • 14
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值