【C语言】详解getchar函数该如何使用

2023-11-17

目录

getchar函数

getchar函数的声明:

getchar函数返回值问题

getchar函数的无法返回字符串的情况

输出通过getchar函数获得的一个字符:

getchar函数的进一步使用

 

最后这里给大家推荐一个库函数的网站:Reference - C++ Reference


在我们日常敲代码中,有时候需要输入一个字符来判定的需求。

例如:

在完成一个输入密码的需求时,如果需要用户是否确认密码正确,可以让客户选择按'Y' 或者 'N'来表示确定或者重新输入过。 

getchar函数

C函数库还是比较给力的,一般日常中会经常需要用到的函数都已经帮我们定义好了。

这里,就有个getchar函数可以让我们来实现上面的需求了。

下面,是getchar函数的定义:

 右上角可以看到它的头文件是<cstdio.h>,这是c++的头文件引用。

C语言引用为#include <stdio.h>

getchar函数的声明:

int     getchar    (void);

返回类型是int,函数名为getchar,参数为空。

接着,我们看到这一段话。

 这段话的意思大体上为:返回接下来你输入的一个字符。

getchar函数返回值问题

到这里,我当时是有点迷惑的。

为啥子你说getchar函数的返回值是int类型的,为啥返回的是你输入的一个字符。

*****后面就了解到了一个概念,ASCII码。

ascii码是基于拉丁字母的一套电脑编码系统;ascii码是“American Standard Code for Information Interchange”的简写,主要用于显示现代英语和其他西欧语言,是最通用的信息交换标准,使用指定的7位或8位二进制数组合来表示128或256种可能的字符。

噢,到这里我就明白了。

原来我们电脑键盘上的字符其实都是可以用二进制数组合来表示的了。

那也就是说每一个字符也就可以看成一个数字了。

getchar函数的无法返回字符串的情况

 

这段话讲的就是,当getchar函数获取到的字符是EOF(End Of File),也就是文件结束标志的时候,不会返回这个字符。

输出通过getchar函数获得的一个字符:

方法一:通过printf函数

#include <stdio.h>

int main() {

	int ret = 0;
	ret = getchar();
	printf("输入的这个字符为:%c", ret);


	return 0;
}

效果展示:

方法二:通过putchar函数

#include <stdio.h>

int main() {

	int ret = 0;
	ret = getchar();
	putchar(ret);


	return 0;
}

 

效果展示:

getchar函数的进一步使用

有时,我们可能不满足于只获得到一个字符,而需要返回一个字符串。这时,我们也可以来利用

getchar函数来实现了

具体例子我就直接借用库函数网站的的一个例子了:

#include <stdio.h>

int main()
{
    int c;
    puts("Enter text. Include a dot ('.') in a sentence to exit:");
//puts函数和printf函数作用差不多。
//这段话的大概意思是:你输入的字符串在不包括'.'这个字符时,可以一直输入
//但是当出现'.'这个符号的时候,就会打印你之前输入的字符串。
    do {
        c = getchar();
        putchar(c);
    } while (c != '.');
    return 0;
}

 

最后这里给大家推荐一个查询库函数的网站:Reference - C++ Reference

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【C语言】详解getchar函数该如何使用 的相关文章

随机推荐

  • python格式化dict输出

    python格式化dict输出 如果dict里有unicode or utf 8编码的字符串 缺省是 In 75 dd name u 功夫熊猫 In 76 dd Out 76 name u u529f u592b u718a u732b I
  • Springboot整合Swagger2后访问swagger-ui.html 404报错

    在spring boot项目中配置Swagger2 配置好了但是访问确实404 SwaggerConfig中的注入方法也执行了还是访问不到页面 究其原因是MVC没有找到swagger ui包中的swagger ui html文件和css样式
  • 记一次解决挖矿病毒的过程(sysupdate、networkservice)

    对于挖矿病毒 我们如何发现它呢 其实有个很显然的问题 挖矿病毒会超级占用cpu 当你发现你的服务器变的很卡的时候 这时候 可能就是挖矿病毒或者其他病毒正在攻击你的服务器 我也是有一段时间服务器变的很卡 那时我还以为是我自己的软件装太多导致的
  • sqlserver数据库 id主键自增

    CREATE TABLE Ce id INT IDENTITY ff id INT NOT NULL a VARCHAR 40 NOT NULL b VARCHAR 40 NOT NULL b VARCHAR 40 NOT NULL d V
  • 致远oa系统unix 服务器,致远oa手机客户端服务器

    致远oa手机客户端服务器 内容精选 换一换 华为云帮助中心 为用户提供产品简介 价格说明 购买指南 用户指南 API参考 最佳实践 常见问题 视频帮助等技术文档 帮助您快速上手使用华为云服务 BoostKit ARM 嵥 致远oa手机客户端
  • 三张图搞定TCP 握手、HTTPS、TLS加密过程

    1 抓包内容 WireShark 2 搞定握手 挥手 SSL加密过程 3 消息内容 Charles 之前看到写的比较好的文章 有文字详细叙述 TLS版本差异 https zhuanlan zhihu com p 27524995 utm s
  • 3dmax森林树木植物插件 Forest Pack Pro 6.3.1

    名称 Itoo Forest Pack Pro 中文名为专业森林制作 散布工具 版本 6 3 1 支持的版本 3dmax 2014 2015 2016 2017 2018 2019 2020 2021 V Ray 1 5 SP3 SP6 V
  • (10)stata的基本使用--短面板数据处理

    面板数据处理 数据描述 数据预览 告诉计算机这是面板数据 描述变量 查看其他变量 绘图 混合回归 聚类稳健标准误 cluster后的变量表示聚类标准 表示使用以state变量聚类的聚类稳健标准误 普通稳健标准误 对比普通稳健标准误与聚类稳健
  • 树05--二叉搜索树的后序遍历序列

    树05 二叉搜索树的后序遍历序列 jz23 题目概述 解析 参考答案 注意事项 说明 题目概述 算法说明 输入一个整数数组 判断该数组是不是某二叉搜索树的后序遍历的结果 如果是则返回true 否则返回false 假设输入的数组的任意两个数字
  • 数字钟实训经历

    第一次写博客 多多关照 先说一点自己的感悟吧 我是电气工程及其自动化专业的大三学生 大一时加入了学校的电子技术协会 转眼一晃两年就这样过去了 这不暑假了还在学校准备今年的全国电子设计竞赛 在这自学单片机的两年时间里 遇到了许多疑难困惑 通过
  • linux下MMC/SD/SDIO驱动系列之四 ---- SDIO的识别与操作

    从上篇文章的最后 我们知道host在扫描卡的过程中 其识别的顺序为SDIO SD MMC 并且从它的注释可以看出 这个顺序是很重要的 那这篇文章 我们就看看SDIO的识别过程 它对应的函数就是mmc attach sdio host 函数位
  • C++笔记一(C语言基础)

    1 变量命名规则 1 1 标识符可由三类字符 字母 下划线 数字组成 标识符只能由字母或下划线开头 标识符不能具有二义性 标识符有长度要求 在起定的名字中 超出长度规定的部分将被截掉 2 部分基础数据类型 2 1 常用数据类型长度 bool
  • EXE文件打不开的解决方法

    EXE文件打不开 打开 我的电脑 或随便一个文件夹 点击菜单 工具 选择 文件夹选项 选择 文件类型 中的 新建 新建扩展名 EXE 单击 高级 关联的文件类型 中选择 应用程序 在命令提示符 cmd 在 开始 菜单 所有程序 的 附件 中
  • C和C++打印指针值和地址

    1 C 中指针变量的地址和指针变量的值是两个不同的概念 指针变量的地址 这是指针变量这个变量在内存中的存储地址 如图所示0x1211 指针的值 里面存放的是一个地址 此地址即为指向的内存单元的地址 如图所示0x1101 2 假如要输出指针变
  • IntelliJ IDEA安装教程,三分钟手把手教会,非常简单!

    使用IntelliJ IDEA写java程序需要配置jdk 链接 JDK安装教程 一 IntelliJ IDEA下载 1 进入官网 官网地址 https www jetbrains com 2 点击 Developer Tools 开发者工
  • jQuery遍历之next()、nextAll()方法使用实例

    jquery遍历 next 和nextAll 方法 实例如下 复制代码 代码如下
  • element踩坑之el-select中的placeholder属性不显示

    直接上图 咱想要这种效果 但现实却给了这种效果 明明ui代码一模一样
  • 编译freeRTOS “error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token”错误解决

    今日编译ESP8266 RTOS SDK的时候有个头文件声明了extern 结构体 结果一旦加入这个头文件编译就各种报错 提示error expected asm or attribute before token 一通搜索之后并未解决我的
  • IDEA的好用小工具Test RESTful web Service

    Test RESTful web Service 一 2021版IDEA界面 二 2019版 我安了个插件叫Old REST Client来还原这个样子 三 代码demo示例 补充 好处 可以减少postman的使用 简单的可以用这个 脚本
  • 【C语言】详解getchar函数该如何使用

    目录 getchar函数 getchar函数的声明 getchar函数返回值问题 getchar函数的无法返回字符串的情况 输出通过getchar函数获得的一个字符 getchar函数的进一步使用 最后这里给大家推荐一个库函数的网站 Ref