【初阶C语言】学会使用库函数getchar和putchar

这篇具有很好参考价值的文章主要介绍了【初阶C语言】学会使用库函数getchar和putchar。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、getchar函数

1.作用:

2.认识函数

3.运用

二、putchar函数

1.作用

2.定义

3.运用

三、getchar与putchar的运用

四、getchar的应用


一、getchar函数

1.作用:

     该函数的作用是接收一个字符,然后把该字符转化对应的ASCII值

2.认识函数
int getchar(void)//getchar函数原型

【初阶C语言】学会使用库函数getchar和putchar,初阶C语言,c语言,开发语言

 参数类型:括号里面的void意思是不接受参数,就是括号里面不需要写任何东西

 函数作用:该函数的作用是接收一个字符,然后把该字符转化对应的ASCII值

返回值类型:因为接受一个字符后会把该字符转化成对应ASCII码值,所以返回值的ASCII码值,所以返回值的类型是整形(int)。如果getchar函数接受字符失败或者遇到文件末尾,那么他就会返回一个EOF的值,EOF的值默认为-1

3.运用

我们现在要输入大写的A,然后输出A和对应的ASCII码值

#include<stdio.h>
int main()
{
	//int ch=getchar();//这样子定义也是可以的
	int ch = 0;
	ch = getchar();//第一步,getchar会接受你冲键盘输入的值
	printf("%c\n", ch);//第二步,直接打印该字符
	printf("%d\n",ch);//打印该字符对应的ASCII码值
	return 0;
}

【初阶C语言】学会使用库函数getchar和putchar,初阶C语言,c语言,开发语言

 接下来我们类比一下两种不同接收字符的方式

【初阶C语言】学会使用库函数getchar和putchar,初阶C语言,c语言,开发语言

 相同点:都可以用来输入(接收)一个字符。

 不同点:getchar函数只能用来接收字符,而接收字符只是scanf函数的一种形似。

 优点   :getchar函数可以不需要变量来接收,(需要打印该字符的时候)也可以拿一个变量来接收它的返回值;但是,sacnf函数必须要有一个变量来接收,无论你要不要打印。


二、putchar函数

1.作用

在屏幕上输出(打印出)一个字符

2.定义
int putcahr(int charatcer)//putchar函数原型

【初阶C语言】学会使用库函数getchar和putchar,初阶C语言,c语言,开发语言

 函数的参数类型:这里需要的参数是一个整形字符,就是括号里面需要写的值。

函数的作用:把参数打印在屏幕上,putchar本质就是输出函数

注意:每次只可以输出一个字符

返回值类型:其返回值是输出的字符的ASCII码(即整数),若输出失败则返回EOF(常量,一般定义为-1)。

3.运用

输出的字符的方式有两种:第一种是用变量来输出,第二种是直接输出字符

//第一种输出方式
#include<stdio.h>
int main()
{
	int ch1=getchar();
    int ch2=getchar();
    putchar(ch1);//将字符存在变量中
    putcahr(ch2);//依靠变量来输出字符
	return 0;
}
//第二种输出方式
#include<stdio.h>
int main()
{
	putchar('A');//不需要变量,直接输出字符
	putchar('B');
	return 0;
}

三、getchar与putchar的运用

一般是与getchar函数配合使用。

我们要在屏幕上面输出:AB

#include<stdio.h>
int main()
{
	int ch1 = getchar();
	int ch2 = getchar();//接受字符
	putchar(ch1);
	putchar(ch2);//打印字符
	return 0;
}

四、getchar的应用

应用:清空缓冲区

题目:用代码实现密码输入并确认的场景

#include<stdio.h>
int main()
{
	char arr[20] = {0};
	printf("请输入密码\n");
	scanf("%s",arr);//这里我们先从键盘输入密码,然后回车

	printf("请确认(Y/N):");//这里我们需要再次确认我们输入的密码
	int ch = getchar();//getchar负责接受Y或N
	if ('Y' == ch)
		printf("确认成功\n");
	else
		printf("确认失败\n");

	return 0;
}
我们把上述代码运行起来

【初阶C语言】学会使用库函数getchar和putchar,初阶C语言,c语言,开发语言

 为什么呢?听完缓缓道来!原因是getchar接收的是回车这个字符,回车这个键一般相当于\n,所以这个时候ch里面存放的数据是'\n',所以'Y'!=ch,直接就显示确认失败了。

 我们先了解一个东西:scanf函数和getchar函数接收数据是借助缓冲区,而缓冲区上面的数据依靠键盘来输入,我们看一个图

【初阶C语言】学会使用库函数getchar和putchar,初阶C语言,c语言,开发语言

 什么意思呢?我用上面代码演示一下:

第一步:运行程序

【初阶C语言】学会使用库函数getchar和putchar,初阶C语言,c语言,开发语言

 因为程序刚刚运行起来,我们没有从键盘上面输入数据,所以缓冲区上面是没有东西的,就是为空的,所以光标在闪,在等待我们输入。

第二步:输入数据(密码)并回车让scanf函数接收密码

【初阶C语言】学会使用库函数getchar和putchar,初阶C语言,c语言,开发语言

 【初阶C语言】学会使用库函数getchar和putchar,初阶C语言,c语言,开发语言

 这里回车键相当于\n。所以sacnf函数从缓冲区里面拿走的是abcdf,缓冲区上面还剩\n。当getchar函数接收字符的时候只能拿走\n,所以为什么没有输入Y或N屏幕上就显示确认失败了

补救方法:再用一个getchar函数接收掉\n

改进代码:

#include<stdio.h>
int main()
{
	char arr[20] = {0};
	printf("请输入密码\n");
	scanf("%s",&arr);
	getchar();//这个getchar用于接收\0
	printf("请确认(Y/N):");
	int ch = getchar();
	if ('Y' == ch)
		printf("确认成功\n");
	else
		printf("确认失败\n");

	return 0;
}

我们运行并实现看看:【初阶C语言】学会使用库函数getchar和putchar,初阶C语言,c语言,开发语言

 我们可以看到,已经可以起到我们预期的结果了。

但是呢!还是会有bug,因为scanf函数在读取字符串的时候,遇到空格就不会再读取。我们运行起来一看便知道

运行结果:【初阶C语言】学会使用库函数getchar和putchar,初阶C语言,c语言,开发语言

因为一个getchar只能处理一个空格,后面的内容无法处理。那为什么不多加几个getchar呢?这样的后果你又怎么知道用户会输入多少个空格呢? 所以我们需要用循环进行改造

第二次改造的代码:完整代码展示

#include<stdio.h>
int main()
{
	char arr[20] = {0};
	printf("请输入密码\n");
	scanf("%s",&arr);
	int ch = 0;
	while ((ch=getchar())!='\n')//新改进代码,用循环接收字符
	{                           //直到接收完\n才结束循环
		;//我们循环getchar函数,所以循环体不需要执行任务语句,只需要一句空语句就可以
	}
	printf("请确认(Y/N):");
	ch = getchar();
	if ('Y' == ch)
		printf("确认成功\n");
	else
		printf("确认失败\n");

	return 0;
}

两次改造后,无论你怎么输入密码,都不会出现问题,都可以稳稳让你输入Y或N来确认密码

清空缓冲区的关键代码:

int ch = 0;
	while ((ch=getchar())!='\n')
	{                           
		;
	}

五、总结

1.getchar是一个接收字符的函数,接收成功返回字符的ASCII值,失败返回EOF(-1)

2.putchar是一个打印字符的函数,会在屏幕上面打印出该字符

3.合理运用getcharh函数可以达成清空缓冲区的效果


本节到这里就结束啦!后续会补充更加完整详细的内容!文章来源地址https://www.toymoban.com/news/detail-605446.html

到了这里,关于【初阶C语言】学会使用库函数getchar和putchar的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C getchar & putchar函数

    目录 前言 1.getchar()函数 2.putchar()函数 3.清空缓冲区 3.1   缓冲区 3.2   场景 3.3   问题分析  3.4   改进(即清空缓冲区) C语言的字符输入函数getchar和输出函数putchar功能介绍,以及缓冲区的简单认识。 1. int getchar(void)  函数从屏幕读取下一个可用的字符,并把它返回为一个

    2024年02月12日
    浏览(27)
  • getchar与putchar在C语言中的作用

    代替了scanf 和 printf 的输入输出 字符 的功能 代码并没有写入  n  ,但是结果出现了自动换行的结果,这是为什么呢? 代码可以运行,但是无法确认,getchar无法正常工作,原因是什么呢? 1.原因分析    scanf不会取 n,一旦有空格,scanf的工作就立即停止了 3.情景分析 此时说

    2024年02月08日
    浏览(27)
  • getchar函数详解看这一篇就够了-C语言(函数功能、使用、返回值)

    首先要明确getchar的功能是:从计算机终端(一般是键盘)输入一个字符,其值就是输入得到的字符。 目录 getchar函数简介 getchar函数执行过程详解(配图)  getchar用法示例 解释一下:while ((ch=getchar()) != \\\'EOF\\\') 函数原型:int getchar(void);                                 返回

    2024年02月07日
    浏览(47)
  • 【C语言初阶篇】scanf和getchar中缓存区的概念!

    🎬 鸽芷咕 :个人主页  🔥 个人专栏 :《C语言初阶篇》 《C语言进阶篇》 ⛺️生活的理想,就是为了理想的生活!    🌈 hello! 各位宝子们大家好啊,相信大家都多多少少了用过scanf和getchar()语句吧,但是关于缓存区的概念,我相信大多数人都没有听说过吧。    ⛳️ 写

    2024年02月14日
    浏览(37)
  • C语言如何使⽤ getchar()函数?

            字符数据输⼊使⽤的是 getchar()函数,那么该如何使⽤该函数呢?         getchar()函数的作⽤是从终端(输⼊设备)输⼊⼀个字符。该函数与 putchar() 函数不同之处是它没有参数。 该函数的定义如下。 使⽤ getchar()函数时也要添加头⽂件 stdio.h,函数的值就是从

    2024年02月20日
    浏览(21)
  • C语言中getchar()函数的详解

    getchar() 函数顾名思义就是获取一个字符,那么他从何处获取,返回值类型又是什么让我们在MSDN中找寻答案 我们可以看到 getchar() 函数的作用是从stdin(标准输入——键盘)获取字符,他的返回值类型是 int ,那我们不禁要问了,为什么 getchar() 读取的是一个字符而返回的却是

    2024年02月08日
    浏览(23)
  • 【初阶C语言】学会结构体

    1.结构体类型的声明 2.结构体初始化 3.结构体成员访问 4.结构体传参   前言:结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。 1.结构的声明 结构体声明的模板:     这是一个模板的声明,得出来的结构体只是一种类型,与int char一样。

    2024年02月14日
    浏览(24)
  • 【初阶C语言】认识和使用函数

    1. 函数是什么 2. 库函数 3. 自定义函数 4. 函数参数 5. 函数调用 6. 函数的嵌套调用和链式访问 7. 函数的声明和定义 8. 函数递归 在数学中有函数,在C语言中也有函数,我们直接先给出一个定义: 在基维百科中函数被定义为子程序:          在计算机科学中, 子程序 (英语

    2024年02月15日
    浏览(32)
  • C语言--getchar()函数超详细解析(多维度分析,小白一看就懂!!!)

    目录 一、前言 二、什么是getchar()函数 三、getchar()函数的返回类型与机制  四、连续单个字符串 (代码演示)  五、getchar()函数其他用法,实战演练(重点) (1)按照题目写出理想代码,but  出现了不理想的效果  (2)原因分析(原理详解) (3)解决方法  (4)再次练手

    2024年02月06日
    浏览(39)
  • 一篇博客学会系列(1) —— C语言中所有字符串函数以及内存函数的使用和注意事项

    目录 1、求字符串长度函数 1.1、strlen 2、字符串拷贝(cpy)、拼接(cat)、比较(cmp)函数 2.1、长度不受限制的字符串函数 2.1.1、strcpy 2.1.2、strcat 2.1.3、strcmp 2.2、长度受限制的字符串函数 2.2.1、strncpy 2.2.2、strncat 2.2.3、strncmp 3、字符串查找函数 3.1、strstr 3.2、strtok 4、错误信息报告函数

    2024年02月08日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包