getchar函数详解看这一篇就够了-C语言(函数功能、使用、返回值)
首先要明确getchar的功能是:从计算机终端(一般是键盘)输入一个字符,其值就是输入得到的字符。
目录
getchar函数简介
getchar函数执行过程详解(配图)
getchar用法示例
解释一下:while ((ch=getchar()) != 'EOF')
getchar函数简介
函数原型:int getchar(void); 返回类型为int,参数为void
头 文 件:#include<stdio.h>
返 回 值: 1、getchar返回的是字符的ASCII码值(整数)。
2、getchar在读取结束或者失败的时候,会返回EOF。(EOF意思是end of file,本质上是-1)
读取方式:只能输入字符型,输入时遇到回车键才从缓冲区依次提取字符。
结束输入的方式:以Enter结束输入(空格不结束),接受空格符。
舍弃回车符的方法:以Enter结束输入时,接受空格,会舍弃最后的回车符。
getchar函数执行过程详解(配图)
程序执行到getchar()函数时,自动从输入缓冲区中去找字符,如果输入缓冲区中没有字符的话,那么就等待用户输入字符,此时用户使用键盘输入的字符,被输入到输入缓冲区中,键盘输入字符的时候首先进入输入缓冲区,然后getchar()函数获得的字符是从输入缓冲区中提取的且每次只能提取一个字符。
getchar用法示例
#include<stdio.h>
int main()
{char ch = getchar();//输入字符putchar(ch);return 0;
}
它的简单意思就是从键盘读入一个字符,然后输出到屏幕。理所当然,我们输入A,输出就是A,输入B,输出就是B。
那么我们如果输出的是ABC呢?答案是A。
解释如下:当我们从键盘输入字符‘A’,‘B’, 'C',并按下回车后,我们的输入被放入了输入缓冲区,这个时候getchar()会从缓冲区中读取我们刚才的输入,一次只读一个字符,所以字符A就被拿出来了,赋值给了ch,然后putchar()又将ch放在了标准输出,也就是这里的屏幕,所以我们看见了最终的显示结果A。同时字符‘A’也被缓冲区释放了,而字符‘B’,'C'仍然被留在了缓冲区。而这样是很不安全的,有可能下次使用的时候,我们的缓冲区会读到一些垃圾,但是当程序结束的时候,它会自动刷新。
解释一下:while ((ch=getchar()) != 'EOF')
#include<stdio.h>
int main()
{char ch ;while ((ch=getchar()) != 'EOF'){putchar(ch);}return 0;
}
getchar先读取一个字符放到ch里面去,如果这个字符不等于EOF,就进入循环,打印这个字符。当getchar读到文件末尾或者结束时,它会返回一个EOF,此时结束循环。
注意:如果上面的代码不用while循环的话,输入ABC,putchar()只会输出A。因为一个getchar一次只能读取一个字符。
以上就是关于getchar的解析啦。如果对你有帮助,记得点赞
getchar函数详解看这一篇就够了-C语言(函数功能、使用、返回值)相关推荐
- strstr函数详解 看这一篇就够了-C语言(函数讲解、函数实现、使用用法举例、作用、自己实现函数 )
strstr()函数用于:查找子字符串 目录 函数介绍 用法示例 函数讲解 实现函数 事例展示 函数介绍 函数声明:char *strstr(const char *str1, const char ...
- strtok函数详解 看这一篇就够了-C语言(函数讲解、函数实现、使用用法举例、作用)
strtok()函数用于: 将字符串拆分为标记 函数介绍 函数声明:char * strtok ( char * str, const char * delimiters ); 头 文 件:#in ...
- memmove函数详解 看这一篇就够了-C语言(函数讲解、函数实现、使用用法举例、作用、自己实现函数 )
memmove()函数用于:移动内存块 函数介绍 函数声明:void * memmove ( void * destination, const void * source, size_t num ) ...
- strncpy函数详解看这一篇就够了-C语言(函数实现、使用用法举例、与strcpy的区别)
首先要明确strncpy的功能是:拷贝src字符串的前n个字符至dest 目录 函数介绍 与strcpy的区别 函数实现: 用法示例: 结果展示: 函数介绍 函数原型: char *strncpy(c ...
- strerror函数详解 看这一篇就够了-C语言(函数讲解、 使用用法举例、作用)
strerror()函数用于:获取指向错误消息字符串的指针 函数介绍 函数声明: char * strerror ( int errnum ); 头 文 件:#include <string ...
- strncmp函数详解看这一篇就够了-C语言(函数实现、使用用法举例、作用、与strcmp的区别)
首先要明确strncmp的功能是:用来比较指定长度两个字符串的大小 目录 函数介绍 与strcmp的区别 ACSII表 函数实现: 用法示例: 结果展示: 函数介绍 函数原型:int strncmp( ...
- strcat函数详解看这一篇就够了-C语言(函数实现、使用用法举例、作用、与strncat的区别)
首先要明确strcat的功能是:将参数dest字符串和参数src字符串拼接起来 目录 函数介绍 与strncat的区别 函数实现: 用法示例: 结果展示: 函数介绍 函数原型:char* strcat ...
- memcpy函数详解 看这一篇就够了-C语言(函数讲解、 使用用法举例、作用)
memcpy()函数用于:复制内存块 函数介绍 函数声明:void * memcpy ( void * destination, const void * source, size_t num ); ...
- strncat函数详解看这一篇就够了-C语言(函数实现、使用用法举例、作用、与strcat的区别)
首先要明确strncat的功能是:从字符串src的开头拷贝n个字符到dest字符串尾部 目录 函数介绍: 与strcat的区别 函数实现: 用法示例: 结果展示: 函数介绍: 函数原型:char* s ...
- 代理后台中间件_Golang Gin 实战(十三)| 中间件详解看这一篇就够了
6000字大章带你死磕Golang Gin中间件 在Gin的整个实现中,中间件可谓是Gin的精髓.一个个中间件组成一条中间件链,对HTTP Request请求进行拦截处理,实现了代码的解耦和分离,并且 ...
最新文章
- 解决opacity属性在低版本IE浏览器下失效的方法
- 项目上传github步骤
- linux tao环境 安装_Linux安装jdk8及环境变量配置
- 什么不是预防计算机病毒的方法,预防计算机病毒的方法是什么
- python如何下载库_python中如何下载库
- python __new__中单例的作用
- 基于差分整合移动平均自回归模型(ARIMA)的时序数据滚动预测建模与网格调参优化实战
- 你缺的不是时间而是专注力
- 深入理解JVM虚拟机(总结篇)
- 阮一峰ES6学习笔记(1)
- MATLAB 符号运算
- c# oracle 中文列名,sql中中文列名
- No All Pattern Found!File Already Patched?
- multienant oracle_OraCleen智能牙刷:您牙齿的高颜值智慧伙伴
- linux增加swap空间的方法
- 通过阿里云API 身份证图片或拍身份证 读取身份证正反面信息
- Ubuntu Linux 查看、编辑、比较二进制文件
- 秒表计时器怎么读_秒表使用说明书
- vue使用参数直接取到data数据
- 法雷奥:进军L4市场,带来比航空标准更加安全的自动驾驶车 | CES 2019
热门文章
- React hook必须要知道的知识: useEffect的cleanup
- 停止SHA1算法签名证书及时间戳服务尤其是代码签名证书,补丁介绍
- android 删除垃圾文件夹,Android手机里的垃圾文件和文件夹清理
- 基于Python完成云知声平台的语音合成接口
- python scapy 抓包_python+scapy 抓包与解析
- 震惊:爱测未来技术嘉年华竟然这些免费送
- springboot配置文件密文解密
- 一句话道破X64和X86的区别
- windows11系统 “任务管理器已被管理员禁用”怎么解决
- linux 使用shell/python编写钉钉自动监控报警脚本