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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 计算机网络 — HTTP协议 和 HTTPS[通俗易懂]

    计算机网络 — HTTP协议 和 HTTPS[通俗易懂]1.了解HTTP协议1.1HTTP是什么HTTP(HyperTextTransferProtocol,超文本传输协议)是一种应用非常广泛的应用层协议.所谓“超文本”的含义,就是传输的内容不仅仅是文本(比如html,css这个就是文本),还可以是一些其他的资源,比如图片,视频,音频等二进制的数据1.2抓包工具的使用1.Fiddler的下载①可以直接在官网下载Fiddler官网地址②也可以直接进入fiddler搜索页2.Fiddl

    2022年10月16日
    5
  • [随笔] IE8Beta2 的标准是不是太高了!

    [随笔] IE8Beta2 的标准是不是太高了!昨天安装了ie8beta2,发现网上支付都无法操作。支付宝无法使用。切换兼容模式也没有效果。各位高手有知道怎么回事的吗?请指教!!!!!转载于:https://www.cnblogs.com/zangdalei/archive/2008/08/29/1279160.html…

    2025年7月18日
    4
  • linux用命令dpkg,Linux中的dpkg命令介绍

    linux用命令dpkg,Linux中的dpkg命令介绍导读dpkg是一个安装、构建、删除和管理Debian包的工具。所有源自“Debian”的linux的发行版都可使用dpkg命令,比如Ubuntu。语法:dpkg(选项)(参数)选项:-i:安装软件包-r:删除软件包-P:删除软件包的同时删除其配置文件-L:显示于软件包关联的文件–unpack:解开软件包-c:显示软件包内文件列表-configure:配置软件包参数:deb软件包列出deb软件包的…

    2022年5月20日
    32
  • hdu 4964 Emmet()模拟

    hdu 4964 Emmet()模拟

    2022年1月12日
    45
  • java 正则表达式 替换 html,java 正则表达式 替换 html「建议收藏」

    java 正则表达式 替换 html,java 正则表达式 替换 html「建议收藏」java正则表达式替换html[2021-01-2922:37:07]简介:java正则表达式用法:1、使用Pattern类进行字符串的拆分,使用的方法是【String[]split(CharSequenceinput)】;2、使用Matcher类进行字符串的验证和替换。相关免费学习推荐:javaphp正则表达式替换图片地址的方法:首先PHP正则提取图片img标记中的任意属性;然后…

    2022年5月16日
    48
  • flag activity new task_android startactivityforresult

    flag activity new task_android startactivityforresult刚刚在一个服务中监听广播,接收广播后希望startActivity,结果报错。错误如下,红色部分是主要内容,其中一个关键词是FLAG_ACTIVITY_NEW_TASK。 10-0117:08:02.412:E/AndroidRuntime(15737):FATALEXCEPTION:main10-0117:08:02.412:E/AndroidRuntime(15737):

    2022年10月5日
    3

发表回复

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

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