首页 > 其他分享 >cin与CTRL+z的问题

cin与CTRL+z的问题

时间:2023-04-15 20:22:31浏览次数:33  
标签:cout CTRL int cin 问题 num 输入

这个问题源自于之前调试AVL树时,要输入两次值,我在第一次cin时,用CTRL+Z结束输入,之后的cin 程序执行直接就跳过了,不能输入了;;;

解决方法: 在第一次输入后的程序加上以下两句时就可以了;

cin.clear();
//cin.sync();

 分析:CTRL + Z后;eof、fail 位都会true;clear()之后good位位true;

io标准库条件状态成员;

代码测试:

#include <bits/stdc++.h>
using namespace std;
int main(){
    int num;
    cout << "first num :" << endl;
    while(cin >> num) { }
    cout << "first num  is:" << num << endl;
    cout << "goodbit:" << cin.good() << endl;
    cout << "eofbit :" << cin.eof() << endl;
    cout << "failbit:" << cin.fail() << endl;
    cout << "badbit :" << cin.bad() << endl;
    
    cin.clear();
    cout << "after clear()" << endl;
    cout << "goodbit:" << cin.good() << endl;
    cout << "eofbit :" << cin.eof() << endl;
    cout << "failbit:" << cin.fail() << endl;
    cout << "badbit :" << cin.bad() << endl;

    int tmp;
    cin >> tmp;
    cout << "second num: " << tmp << endl;
    system("pause");
    return 0;
}
/*
没有cin.clear()的输出:
first num :
10
^Z
first num  is:10
goodbit:0
eofbit :1
failbit:1
badbit :0
second num: 6422400
请按任意键继续. . .
*/

/*
first num :
10
^Z
first num  is:10
goodbit:0
eofbit :1
failbit:1
badbit :0
after clear()
goodbit:1
eofbit :0
failbit:0
badbit :0
11
second num: 11
请按任意键继续. . .
*/

 

标签:cout,CTRL,int,cin,问题,num,输入
From: https://www.cnblogs.com/xuan01/p/17321634.html

相关文章

  • 通过nginx proxy manager解决https站点访问http接口资源报错问题
    浏览器控制台报MixedContent:Thepageat'<URL>'wasloadedoverHTTPS,butrequestedaninsecureXMLHttpRequestendpoint'<URL>'.Thisrequesthasbeenblocked;thecontentmustbeservedoverHTTPS.这说明你的网站部署上服务器已经启用了ssl证书默认......
  • SpringMVC中的字符编码问题
    字符编码问题目录字符编码问题一、背景二、排查思路2.1、查看idea默认编码方式2.2、查看接口代码2.3、查看linux编码三、解决思路3.1、修改远程调用编码四、SpringMVC对字符编码的配置4.1、字符编码自动配置类HttpEncodingAutoConfiguration4.2、配置类中属性说明4.3、过滤器中设......
  • vue自定义密码输入框解决浏览器自动填充密码的问题
    问题描述浏览器对于type="password"的输入框会自动填充密码,但有时出于安全或者其他原因,我们不希望浏览器记住并自动填充密码。通过网上查到的一些解决方案,可以总结出以下几种解决方案(主要用edge浏览器进行测试):通过autocomplete="off"/autocomplete="new-password"来关闭浏览......
  • arm gcc undefined reference编译问题
    armgcc编译的时候,出现下面的错误。经检查,是因为添加了stdio.h,且调用了printf()函数,去掉了stdio.h和printf函数之后,编译通过。 ......
  • 香,一套逻辑轻松且智能解决PyQt中控件数值验证的问题
    在PyQt开发中,时常需要对控件的值进行校验,如需要校验QCheckBox是否被选中,QLabel是否校验值是否为空等等。在复杂的业务场景下,这类控件如果数量很多,逐个校验就显得麻烦,需要一一获得控件名称,再调用对应的方法来判断是否被选中、是否为空等。而且开发过程中如果多控件做了增减,还需要增......
  • ubuntu系统grub修复(win+ubuntu双系统环境),修复无法启动问题 boot-repair
    相关:https://help.ubuntu.com/community/Boot-Repair  ====================================================   Grub修复:Boot-Repair:  sudoadd-apt-repositoryppa:yannubuntu/boot-repair&&sudoaptupdatesudoaptinstall-yboot-repair&&......
  • git 遇到的CApath: none问题解决
    在适应git时,遇到了如下问题。fatal:unabletoaccess'https://github.com/brunosimon/folio-2019.git/':errorsettingcertificateverifylocations: CAfile:D:/明月下/Git/mingw64/ssl/certs/ca-bundle.crtCApath:none第一反应是查找这个文件是什么,在不在。首先这......
  • 想,都是问题,做,才有答案
    大家好,我是小悟年前说,额,其实也就是一个月前而已,过了个年,感觉已经过了很久了。腾讯云给了个年度优秀创作者。它是依据文章发布数、阅读数、获赞数、影响力指数以及总榜排名。影响力指数是基于作者在腾讯云开发者社区的活跃、阅读数、官方推荐量以及点赞数、收藏数、评论数加权计算,总......
  • win10 2004更新后会导致蓝屏 微软确定有三个问题
    最近因为win102004版本系统的更新推送,很多用户们都选择的更新win102004版本系统,但一些用户们更新后,电脑设备等却出现了蓝屏,微软方面确定了一些问题,快来看看详细内容吧~win102004更新后会导致蓝屏微软确定有三个问题:今天微软推出了Windows10五月更新,不过一些用户升级新系统......
  • 第三天第一个问题
    问题描述:编写一个程序,读取键盘输入,直到遇到@符号为止,并回显输入(数字除外),同时将大写字符转化为小写,将小写字符转换为大写。解决思路:1.建立一个while循环体,在循环体中加一个读到@就跳出循环的语句2.在循环体中输入值存储进char变量中3.判断变量是否为字母数字,如果是,接着判断是大......