C++中getchar()的使用方法「建议收藏」

C++中getchar()的使用方法「建议收藏」1getchar()简介getchar()是C语言中的函数,C++中也包含了该函数。getchar()函数的作用是从标准的输入stdin中读取字符。也就是说,getchar()函数以字符为单位对输入的数据进行读取。2getchar()读取缓冲区方式在控制台中通过键盘输入数据时,以回车键作为结束标志。当输入结束后,键盘输入的数据连同回车键一起被输入到输入缓冲区中。在程序中第一次调用getchar…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

1 getchar()简介

getchar()C语言中的函数,C++中也包含了该函数。getchar()函数的作用是从标准的输入stdin中读取字符。也就是说,getchar()函数以字符为单位对输入的数据进行读取。

2 getchar()读取缓冲区方式

在控制台中通过键盘输入数据时,以回车键作为结束标志。当输入结束后,键盘输入的数据连同回车键一起被输入到输入缓冲区中。在程序中第一次调用getchar()函数从输入缓冲区中读取一个字节的数据。需要注意的是,如果此时在程序中第二次调用getchar()函数,因为此时输入缓冲区中还有回车键的数据没有被读出,第二个getchar()函数读出的是回车符。

例如如下代码

char test1 = getchar();

char test2 = getchar();

此时在控制台中输入字符a”并且按下回车键,test1的值是字符“a”,而test2的值是“\n”,如图1所示。

 C++中getchar()的使用方法「建议收藏」

1 test1test2的值

3 解决方法

可以使用rewind()函数来清理输入缓冲区中的数据。该函数的格式为

void rewind( FILE* stream );

其中,参数stream表示指向FILE结构的指针,即为指定的流。该函数的作用是将文件指针移动到文件的起始位置处。rewind()函数清理指定流中的错误指示符以及文件结束指示符。将“2 getchar()读取缓冲区方式”中提到的代码修改为

char test1 = getchar();

rewind(stdin);

char test2 = getchar();

rewind(stdin);

在控制台中,首先输入字符a”然后按下回车键。getchar()函数从输入缓冲区中读取字符“a”,之后调用rewind()函数清理输入缓冲区中的数据,stdin表示输入缓冲区的指针;之后再在控制台中输入字符“b”,然后按下回车键,getchar()函数从输入缓冲区中读取字符“b”,最后再次调用rewind()函数清理输入缓冲区中的数据。此时,test1test2的值如图2所示。

C++中getchar()的使用方法「建议收藏」 

2 test1test2的值

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/180468.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java.lang.String cannot be cast to java.lang.Integer错误解决

    java.lang.String cannot be cast to java.lang.Integer错误解决java.lang.Stringcannotbecasttojava.lang.Integer错误解决当遇到t.service()forservlet[springmvc]incontextwithpath[]threwexception…java.lang.Stringcannotbecasttojava.lang.Integer上面是原来的代码,但是这里出现错与不能将object类型的数据库转成integer类型,可以使用Integer.valueOf(S

    2022年7月16日
    31
  • 更换好用conda源「建议收藏」

    更换好用conda源「建议收藏」window是更换conda源windows在用户目录中的.condarc文件中替换以下源(如果没有这文件则需要自己创建)channels:-https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/-https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/-https://mirrors.tuna.tsinghua.edu.cn/anaconda/

    2022年10月1日
    2
  • android组件安全检测工具(内存检测工具memtest)

    Android应用安全检测工具简介1、测试工具集Appie–轻量级的软件包,可以用来进行基于Android的渗透测试,不想使用VM的时候可以尝试一下.AndroidTamer–可以实时监控的虚拟环境,可以用来进行一系列的安全测试,恶意软件检测,渗透测试和逆向分析等.AppUse–AppSecLabs开发的Android的虚拟环境.Mobisec–移…

    2022年4月17日
    206
  • HDU 4836 The Query on the Tree lca || 欧拉序列 || 动态树

    HDU 4836 The Query on the Tree lca || 欧拉序列 || 动态树

    2022年1月25日
    42
  • 以《简单易懂》的语言带你搞懂有监督学习算法【附Python代码详解】机器学习系列之KNN篇[通俗易懂]

    以《简单易懂》的语言带你搞懂有监督学习算法【附Python代码详解】机器学习系列之KNN篇[通俗易懂]机器学习系列往期回顾❤️开始学习机器学习之前你必须要了解的知识有哪些?机器学习系列入门篇在上篇文章中,我们介绍了机器学习的一些理论知识,包括什么是监督学习、无监督学习、过拟合欠拟合等等,那在本篇文章中,我们会以KNN来正式介绍什么是有监督学习,让大家在了解KNN的同时完全掌握什么是有监督学习,以帮助大家更好的理解机器学习。注:本篇文章非常详细,附带简单易懂的文字说明和实现代码,欢迎收藏后慢慢阅读。监督学习算法本文主要介绍的有监督学习算法是KNN,后续会接着介绍决策树、线性回归等算法。

    2022年5月28日
    44
  • window 下 win10 jdk8安装与环境变量的配置(超级详细)[通俗易懂]

    window 下 win10 jdk8安装与环境变量的配置(超级详细)[通俗易懂]1、jdk的下载1.1官网下载地址https://www.oracle.com/java/technologies/javase-downloads.html这里以为下载需要登录所以我准备了百度网盘1.2百度网盘下载链接:https://pan.baidu.com/s/1uBm0XqBtbdafWgn_YUSWLA提取码:2mqh2、新建文件夹2.1、新建Java文件夹我这里选择的是安装的文件夹我在H盘里面新建了个java文件夹,这里盘符可以改的CDE啥都无所谓

    2022年6月18日
    54

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号