首先要明确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语言(函数功能、使用、返回值)相关推荐

  1. strstr函数详解 看这一篇就够了-C语言(函数讲解、函数实现、使用用法举例、作用、自己实现函数 )

    strstr()函数用于:查找子字符串 目录 函数介绍 用法示例 函数讲解 实现函数 事例展示 函数介绍 函数声明:char *strstr(const char *str1, const char ...

  2. strtok函数详解 看这一篇就够了-C语言(函数讲解、函数实现、使用用法举例、作用)

    strtok()函数用于: 将字符串拆分为标记 函数介绍 函数声明:char * strtok ( char * str, const char * delimiters ); 头  文  件:#in ...

  3. memmove函数详解 看这一篇就够了-C语言(函数讲解、函数实现、使用用法举例、作用、自己实现函数 )

    memmove()函数用于:移动内存块 函数介绍 函数声明:void * memmove ( void * destination, const void * source, size_t num ) ...

  4. strncpy函数详解看这一篇就够了-C语言(函数实现、使用用法举例、与strcpy的区别)

    首先要明确strncpy的功能是:拷贝src字符串的前n个字符至dest 目录 函数介绍 与strcpy的区别 函数实现: 用法示例: 结果展示: 函数介绍 函数原型: char *strncpy(c ...

  5. strerror函数详解 看这一篇就够了-C语言(函数讲解、 使用用法举例、作用)

    strerror()函数用于:获取指向错误消息字符串的指针 函数介绍 函数声明: char * strerror ( int errnum ); 头  文  件:#include <string ...

  6. strncmp函数详解看这一篇就够了-C语言(函数实现、使用用法举例、作用、与strcmp的区别)

    首先要明确strncmp的功能是:用来比较指定长度两个字符串的大小 目录 函数介绍 与strcmp的区别 ACSII表 函数实现: 用法示例: 结果展示: 函数介绍 函数原型:int strncmp( ...

  7. strcat函数详解看这一篇就够了-C语言(函数实现、使用用法举例、作用、与strncat的区别)

    首先要明确strcat的功能是:将参数dest字符串和参数src字符串拼接起来 目录 函数介绍 与strncat的区别 函数实现: 用法示例: 结果展示: 函数介绍 函数原型:char* strcat ...

  8. memcpy函数详解 看这一篇就够了-C语言(函数讲解、 使用用法举例、作用)

    memcpy()函数用于:复制内存块 函数介绍 函数声明:void * memcpy ( void * destination, const void * source, size_t num ); ...

  9. strncat函数详解看这一篇就够了-C语言(函数实现、使用用法举例、作用、与strcat的区别)

    首先要明确strncat的功能是:从字符串src的开头拷贝n个字符到dest字符串尾部 目录 函数介绍: 与strcat的区别 函数实现: 用法示例: 结果展示: 函数介绍: 函数原型:char* s ...

  10. 代理后台中间件_Golang Gin 实战(十三)| 中间件详解看这一篇就够了

    6000字大章带你死磕Golang Gin中间件 在Gin的整个实现中,中间件可谓是Gin的精髓.一个个中间件组成一条中间件链,对HTTP Request请求进行拦截处理,实现了代码的解耦和分离,并且 ...

最新文章

  1. 解决opacity属性在低版本IE浏览器下失效的方法
  2. 项目上传github步骤
  3. linux tao环境 安装_Linux安装jdk8及环境变量配置
  4. 什么不是预防计算机病毒的方法,预防计算机病毒的方法是什么
  5. python如何下载库_python中如何下载库
  6. python __new__中单例的作用
  7. 基于差分整合移动平均自回归模型(ARIMA)的时序数据滚动预测建模与网格调参优化实战
  8. 你缺的不是时间而是专注力
  9. 深入理解JVM虚拟机(总结篇)
  10. 阮一峰ES6学习笔记(1)
  11. MATLAB 符号运算
  12. c# oracle 中文列名,sql中中文列名
  13. No All Pattern Found!File Already Patched?
  14. multienant oracle_OraCleen智能牙刷:您牙齿的高颜值智慧伙伴
  15. linux增加swap空间的方法
  16. 通过阿里云API 身份证图片或拍身份证 读取身份证正反面信息
  17. Ubuntu Linux 查看、编辑、比较二进制文件
  18. 秒表计时器怎么读_秒表使用说明书
  19. vue使用参数直接取到data数据
  20. 法雷奥:进军L4市场,带来比航空标准更加安全的自动驾驶车 | CES 2019

热门文章

  1. React hook必须要知道的知识: useEffect的cleanup
  2. 停止SHA1算法签名证书及时间戳服务尤其是代码签名证书,补丁介绍
  3. android 删除垃圾文件夹,Android手机里的垃圾文件和文件夹清理
  4. 基于Python完成云知声平台的语音合成接口
  5. python scapy 抓包_python+scapy 抓包与解析
  6. 震惊:爱测未来技术嘉年华竟然这些免费送
  7. springboot配置文件密文解密
  8. 一句话道破X64和X86的区别
  9. windows11系统 “任务管理器已被管理员禁用”怎么解决
  10. linux 使用shell/python编写钉钉自动监控报警脚本