初识C语言——常见的输入函数(一)

        小编来此介绍两个暂时认识到的输入函数:1.scanf函数和2.getchar函数

        我们先来介绍一下两者:

目录

1,对于scanf函数的认识

        2,对于getchar函数认识(只是粗描淡写几笔)


(上篇文章简单的阐述过scanf返回类型和函参形式,这里不再介绍)

1,对于scanf函数的认识

 scanf是格式输入函数,它将读取的数据,根据其参数格式存储到相应的参数位置

可以看这段代码

#include<stdio.h>
int main()
{
	int a = 0;
	printf("请输入a的数值:");
	scanf("%d", &a);
	printf("a的值为:%d\n", a);
	return 0;
}

 可以如上图清晰可见,在scanf函数体内,指定的%d类型的数据,我们输入后就存储在了对应的a变量中,这是通常的scanf最简单的应用。

而再往下翻看时,我们会注意到

scanf函数将读取并忽略下一个非空格字符前遇到任何的空格字符,直到读取到一个非空格字符数据才会停止读取。这里的空格字符有:

1.空格        2.换行符        3.制表符

因此,在我们使用scanf函数输入数据时,空格在scanf里面是否添加都不会影响scanf输入数据

 如下两图:

 

我们只需在输入数据的时候自动键盘敲击空格即可,此时对于scanf,空格在不在函数体内,不会有影响。 

但这里有一个点需要注意:当空格在读取的数据之后放置时,我们需要再重新输入一个非空格字符的数据,也就是这个情况:

	scanf("%d %d ", &a, &b);

 我们可以注意到在第二个%d之后有一个空格存在,这时我们如果只输入两个数据时,我们发现函数将不会读取结束

即便是给如图的“2”后再跟上空格也不会停止读取,因为前面提到了scanf会 直到读取到一个非空格字符数据才会停止读取。所以我们需要在"2"后面接上空格键后随意输入一个非空格字符即可(数字,字母等)

 此时第三个输入的数据并不会存放到函数内,所以我们可以随意输入。

2,对于getchar函数认识(只是粗描淡写几笔)

getchar是键盘输入函数,其功能是从键盘上输入一个字符。

也就是说,getchar只能接收字符型数据。

int getchar ( void )

我们可以看到,getchar的参数是void,返回为int型

 

既然它是接受字符型数据的,可为什么返回的是整型呢?由上图可知

这是因为getchar返回的是字符的ASCII码值,也就是整型数值

而读取失败的时候,我们将会返回EOF(也就是-1)这跟scanf函数读取失败时返回的数值一样,只有读取的数据是字符型数据我们才会正确返回值,而它返回的也就是我们从键盘输入的字符。

 我们将getchar放入整型变量ch中,然后键盘输入,即可返回字符a。

当然,身为专门用来接收字符数据的函数,也得有它相对应的输出函数——putchar函数

即,我们可以将上面的getchar从键盘读入的字符放入ch变量后,用putchar输出,如下: 

也就是scanf和printf的关系一般,只需稍加类比即可轻松使用。

而类比一下scanf函数时,我们也可连续输入字符,只需要像scanf函数一样

#include<stdio.h>
int main()
{
	int ch = 0;
	while ((ch = getchar()) != EOF)
	{
		putchar(ch);
	}
	return 0;
}

而想要结束循环输入时,我们也只需要像scanf函数一样,从键盘敲入“Ctrl+z”即可退出程序。

 由于考虑到文章篇幅问题,我们先写到这里,这只是一个小小的认识,会有后续。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值