C语言gets函数详解 字符/字符串的输入

下面我们从字符。字符串的输入讲起,为大家理清楚gets函数scanf函数即getchar函数的区别等

单个字符的输入

1)getchar 

头文件#include<stdio.h>
函数原型int getchar(void); 
返回值     以无符号 char 强制转换为 int 的形式返回读取的字符,如果到达文件末尾或发生读错误,则返回 EOF。
作用读取一个任意的字符  从缓冲区读走一个字符,相当于清除缓冲区

基本用法:

1,读取一个字符      

2,用于清空缓冲区

下面解释什么是清空缓冲区:如下:

#include<stdio.h>
int main()
{
	//我们输入一个数和一个字符
	int height;
	char id;
	scanf("%d", &height);

	scanf("%c", &id);
	printf("%d %c", height, id);
	return 0;
}

上述代码的输出为:

当我们输入数字1111并按下回车之后,系统会自动的吧我们所按的回车当作字符存在id中,导致了运行错误!!(这是最简单的理解吧)

改进为:

#include<stdio.h>
int main()
{
	//我们输入一个数和一个字符
	int height;
	char id;
	scanf("%d", &height);
	getchar();//读入回车,清空缓冲区
	scanf("%c", &id);
	printf("%d %c", height, id);
	return 0;
}

 正确的运行结果为:

 2)scanf函数

scanf函数大家应该很熟悉了

scanf函数输入字符即scanf("%c"&zifu);

scanf函数处理单个字符时与getcahr函数相同

字符串的输入

1)gets函数

    

#include<stdio.h>
int main()
{
	char arr[100] = { 0 };
	gets(arr);
	printf("%s", arr);
	return 0;
}

看样例:

 

 

这里它读入了空格并且打印

总结:

从标准输入设备(如键盘)读取字符到s所指向的数组中,直到读到文件末尾或者换行符‘\n’。换行符被丢弃,最后一个字符读入后写入一个 ‘\0’。若成功则返回s,若无字符读入数组或者读取失败返回空指针NULL。 

2)scanf函数

#include<stdio.h>
int main()
{
	char arr[100] = { 0 };
	scanf("%s", arr);
//注意字符数组的数组名即地址,不用取址符&
	printf("%s", arr);
	return 0;
}

 

看输出样例:

 

这里我输入了:i love you 但是它只打印了 i

我输入了:   hello(前面有三个空格)但是空格也没有打印

总结: scanf函数读取用户键入的字符到字符数组,直到遇到空格,回车,或者文件结束符(EOF)为止,空格,回车,或者文件结束符被丢弃,最后一个字符读入后往字符数组中写入结束符'\0'。

 

  • 27
    点赞
  • 166
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值