getchar()的用法

news2024/9/27 9:28:07

getchar的功能

它的作用是从stdin流中读入一个字符,也就是说,如果stdin有数据的话不用输入它就可以直接读取了,第一次getchar()时,确实需要人工的输入,但是如果你输了多个字符,以后的getchar()再执行时就会直接从缓冲区中读取了。

所以我们知道他的功能和scanf的功能差不多,都是从stdin上读取字符,区别就是getchar上我们读取一个字符。

例题判断字母

在这里插入图片描述

#include <stdio.h>
 
int main() {
    int a;
    while(scanf("%d",&a)!=EOF)
    {
 		if(a>='A'&&a<='z')
        {
            printf("YES");
        }
        else
        {
            printf("NO");
        }
    }    
    return 0;
}

我们发现用scanf过不去,因为是多组样例,进行当我们进行完一个字符后,我们会输入换行或者回车,其实这也相当于一个字符,而我们的scanf就将这个字符读取了,所以导致我们运行超时,所以我们要将这个换行或者更回车字符读取,我们才可以进行下一个判断,所以我们就可以用getchar将这个字符读取掉。

#include <stdio.h>
 
int main() {
    int a;
    while((a=getchar())!=EOF)
    {
        getchar();
        if(a>='A'&&a<='z')
        {
            printf("YES");
        }
        else
        {
            printf("NO");
        }
         
    }   
    return 0;
}

使用getchar()将其回车吸收掉就可以进行下一个字符的判断。
getchar()是在输入缓冲区顺序读入一个字符(包括空格、回车和Tab)

getchar()使用不方便,解决方法:
1.使用下面的语句清除回车: while(getchar()!='\n');
2.用 getche()getch()代替 getchar(),其作用是从键盘读入一个字符(不用按回车)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/340031.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python+django高校师生健康信息管理系统pycharm

管理员功能模块 4.1登录页面 管理员登录&#xff0c;通过填写注册时输入的用户名、密码、角色进行登录&#xff0c;如图所示。 4.2系统首页 管理员登录进入师生健康信息管理系统可以查看个人中心、学生管理、教师管理、数据收集管理、问卷分类管理、疫情问卷管理、问卷调查管理…

大数据框架之Hadoop:HDFS(一)HDFS概述

1.1HDFS产出背景及定义 HDFS 产生背景 随着数据量越来越大&#xff0c;在一个操作系统存不下所有的数据&#xff0c;那么就分配到更多的操作系统管理的磁盘中&#xff0c;但是不方便管理和维护&#xff0c;迫切需要一种系统来管理多台机器上的文件&#xff0c;这就是分布式文件…

查缺补漏三:事务隔离级别

什么是事务&#xff1f; 事务就是一组操作的集合&#xff0c;事务将整组操作作为一个整体&#xff0c;共同提交或者共同撤销 这些操作只能同时成功或者同时失败&#xff0c;成功即可提交事务&#xff0c;失败就执行事务回滚 MySQL的事务默认是自动提交的&#xff0c;一条语句执…

【LeetCode第 332 场周赛】

传送门 文章目录6354. 找出数组的串联值6355. 统计公平数对的数目6356. 子字符串异或查询6357. 最少得分子序列6354. 找出数组的串联值 题目 思路 前后指针 代码 class Solution { public:long long findTheArrayConcVal(vector<int>& nums) {long long res 0;i…

多线程相关面试题

讲解下你自己理解的 CAS 机制 ? 全称 Compare and swap, 即 “比较并交换”. 相当于通过一个原子的操作, 同时完成 “读取内存, 比较是否相等, 修改内存” 这三个步骤. 本质上需要 CPU 指令的支撑. ABA问题怎么解决&#xff1f; 给要修改的数据引入版本号. 在 CAS 比较数据…

微搭低代码从入门到精通06-代码编辑器

有初学的同学一直有个疑问&#xff0c;什么叫低代码。低代码的特点是提供了大量的前端组件&#xff0c;我们在开发小程序的时候可以直接拖拽就完成了界面的开发。 但是一款APP的开发只有界面是不够的&#xff0c;还需要有交互逻辑&#xff0c;比如我们在会员小程序里充值的时候…

Linux服务器部署xxl-job

Linux服务器部署xxl-job Linux服务器部署xxl-jobLinux服务器部署xxl-jobxxl-job文档文档中要求的环境Maven下载&#xff1a;JDK下载&#xff1a;MySQL下载&#xff1a;部署MySQL上传MySQL安装包到服务器解压&#xff0c;安装配置文件启动MySQL查看初始密码使用初始密码登录MySQ…

分享一个可用的ChatGPT网页及备选方案

本文本来是在咱公众号分享&#xff0c;被一些跳蚤、苍蝇、蚊子和老鼠给搞臭了&#xff0c;故在此重新分享&#xff0c;欢迎那些跳蚤、苍蝇、蚊子和老鼠继续来战&#xff01; 近来ChatGPT可谓是火得不可开交&#xff01;各路牛鬼蛇神不管懂与不懂都借这阵ChatGPT风勇占流量高地…

c++11 标准模板(STL)(std::multimap)(四)

定义于头文件 <map> template< class Key, class T, class Compare std::less<Key>, class Allocator std::allocator<std::pair<const Key, T> > > class multimap;(1)namespace pmr { template <class Key, class T…

【JVM】7种经典的垃圾收集器

文章目录1. 垃圾收集器概述2. Serial 收集器3. ParNew 收集器4. Paraller Scavenge 收集器5. Serial Old收集器6. Parller Old收集器7. CMS 收集器8. Garbage First 收集器本文参考&#xff1a;深入理解Java虚拟机&#xff1a;JVM高级特性与最佳实践&#xff08;第3版&#xff…

Ubuntu安装配置Cuda和Pytorch gpu

前言 在Ubuntu中操作系统中,通过Anconda安装对应的虚拟环境以及软件包,一般都需要适配Cuda、Pytorch版本等 以下安装配置都是在Ubuntu操作系统下 1. 安装Cuda 通过Ubuntu操作系统查看cuda适配的版本:nvidia-smi 截图如下: 查看Ubuntu版本可如下方式 (1)cat /proc/ver…

QT QOpenGLWidget使用说明(一)OpenGL 类的添加

文章目录一.Qt项目中添加OpenGL库二.添加OpenGL类Qt官网关于 QOpenGLWidget的说明: https://doc.qt.io/qt-6.2/qopenglwidget.html一.Qt项目中添加OpenGL库 cmakeList.txt中添加OpenGL库 find_package(Qt6 COMPONENTS OpenGLWidgets REQUIRED) target_link_libraries(mytarget …

Shader(向量)

单位向量向量加法向量的模向量点乘&#xff08;夹角>0则在前方&#xff0c;反之后方&#xff09;5.向量的投影6.向量的减法7.向量的叉乘&#xff08;可以判断点是否在三角形内&#xff09;满足AB*AP,BC*BP,CA*CP都大于0或者都小于0则P点在三角形内

STM32单片机蓝牙APP可烘干升降晾衣架带照明灯

实践制作DIY- GC0123-蓝牙APP可烘干升降晾衣架 一、功能说明&#xff1a; 基于STM32单片机设计-蓝牙APP可烘干升降晾衣架 功能介绍&#xff1a; 硬件组成&#xff1a; STM32F103C系列最小系统单片机1个uln2003步进电机&#xff08;模拟升降&#xff09;1个uln2003步进电机&a…

刘润:五维思考,让你站得更高、看得更远

原标题&#xff1a;刘润&#xff1a;五维思考&#xff0c;让你站得更高、看得更远 前言&#xff1a;遇到问题时&#xff0c;有的人很快就能想明白&#xff0c;有的人需要很久才能想明白&#xff0c;还有的人始终都想不明白。 而且&#xff0c;那些很快就能想明白的人&#xff0…

大数据之Hadoop

文章目录一、大数据概论1、大数据概念2、大数据的特点3、大数据应用场景4、大数据部门的业务流程分析5、大数据部门组织结构&#xff08;重点&#xff09;二、从Hadoop框架讨论大数据生态1、什么是Hadoop2、Hadoop发展历史3、Hadoop三大发行版本1.Apache Hadoop2.Cloudera Hado…

Rust学习入门--【6】Rust 基础语法

Rust 基础语法 变量&#xff0c;数据类型&#xff0c;注释&#xff0c;函数和控制流&#xff0c;这些是大部分编程语言都具有的编程概念。 本节将学习理解这些概念。 变量 Rust 是强类型语言&#xff0c;但具有自动判断变量类型的能力。这很容易让人与弱类型语言产生混淆。…

Sentinel源码解析-ProcessorSlot具体

前言 上篇文章中我们已经讲到了构造完处理链&#xff0c;然后会调用对应slot的entry方法&#xff0c;我们根据配置文件中Slot的具体顺序来逐一讲解Slot的具体实现。 一、NodeSelectorSlot 这个 slot 主要负责收集资源的路径&#xff0c;并将这些资源的调用路径&#xff0c;以…

ssm学生在线选课成绩教案管理系统java

基于JSP技术、SSM框架、B/S机构、Mysql数据库设计并实现了教案管理系统。系统主要包括个人中心、学生管理、教师管理、公告信息管理、科目管理、课程信息管理、选课记录管理、学生成绩管理、系统管理等功能模块。结合实际项日的功能需求&#xff0c;从研究背景、国内发展的现状…

C++ 基础

命名空间 在 C/C 中&#xff0c;变量、函数和类都是大量存在的&#xff0c;这些变量、函数和类的名称将都存在全局作用域中&#xff0c;可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化&#xff0c;以避免命名冲突或名字污染&#xff0c;namespace 关键字的…