cin不能输入说明cin这个对象的状态出现问题了。
cin这个对象里边有个缓冲区结构(也就是流,流的意思可以想象成一个管子,数据从一头持续输入,从另一头持续流出,像水流一样),专门获取键盘输入。然后cout可以从这个缓冲区里边获取存在的数据.当然使用getline()方法和getch()方法也可以。
cin这个对象还有状态位标志,一共有四个,包括正常和错误(错误类型有三个)。
简单点理解就相似于平时你创建person对象,里边有一个数组数据(相当于cin对象的流),还有一个枚举结构,这个枚举结构有四个标志(相当于cin对象的状态位标志)。
cin对象的缓冲区不给你输入了就说明cin对象的状态出现了问题,即不是正常状态,这种情况发生的可能是因为你想往里边输入一个数字,但是你键盘上输入了一个字符,它的状态位标志就变为错误类型的了。
解决的办法也很简单,把状态位标志改成正常的就行了,cin就给你输入了,该状态位标志很简单,调用cin对象的clear()方法就行了,即cin.clear() 。
但是这样有一个问题,就是cin对象的缓冲区里边还有东西(你之前输入的),如果你要获取你最近键盘输入的数据,你得先把它取出来才能获取最近输入的数据(毕竟是流结构)。所以一般情况下你还得把这个流给清空了,使用的函数为:cin.sync() , 清除缓冲区。

c++ cin不能输入的问题相关推荐

  1. cin指定输入截止符

    C++ cin用法 cin指定输入截止符 例如有时间格式12:00:13,要求提取小时,分钟和秒数. 输入 12:00:13 输出 12 00 13 /* *输入回车后,还需要手动输入EOF,即输入截 ...

  2. C++ cin.putback()输入【已知行数】但【未知每行数字个数】的思路

    PAT没有好好读题,把这题做麻烦了,这个思路有两个测试点没有通过,因为把数据的含义弄错了呗,肯定不能全对啊,但是用错误的数据能通过这么多测试点,也是让我很吃惊. 虽然题做错了,但是想出并实现了一个有用 ...

  3. cin.tie() 输入加速器

    sync_with_stdio 这个函数是一个"是否兼容stdio"的开关,C++为了兼容C,保证程序在使用了std::printf和std::cout的时候不发生混乱,将输出流绑 ...

  4. xcode 不能读取键盘输入的汉字_C++:cin从控制台读取数据时的结束符

    cin 可以用来从键盘输入数据:将标准输入重定向为文件后,cin 也可以用来从文件中读入数据.在输入数据的多少不确定,且没有结束标志的情况下,该如何判断输入数据已经读完了呢? 从文件中读取数据很好办, ...

  5. PAT1054 求平均值 (20 分)【从非法输入字符串中获取合法输入 cin.putback()】

    吐槽 题目描述的太不清晰了吧,自己写了一些测试用例,从已知中并不能看出这些输入是否合法- 我的测试用例 21 007 000.01 12. .9 -007 -000.01 -12. -.9 .9. - ...

  6. C++输入cin,cin.get(),cin.getline()详细比较及例子

    C++输入过程中,是把输入加载到缓冲区中,然后对缓冲区中的字符进行读取.cin,cin,get(),cin.getline()三个函数虽然都能进行数据读取,但是它们对缓冲区内数据的处理方法是不同的(如 ...

  7. 对C++中使用cin输入非法字符(数据格式不匹配)的说明

    在C语言中,使用格式化输入函数scanf("%d",&i)(i为int)时,如果输入了字符,则会将字符转化为对应的ASCII码并赋给i. 但在C++中使用cin时输入非法字 ...

  8. c++ 总结之 cin输入

    目录 cin最简单的使用 cin检查输入 流状态 istream类方法 输入单字符 输入字符串 对流状态的影响 其他istream类方法 cin最简单的使用 使用cin从输入流(一般是键盘生成的)中读 ...

  9. C++中cin输入空格

    我们往往在cin中输入的都是连续的字符串或者整数,比如: 在上面的代码中我们输入用户名字并输出名字,可以发现我们输入的是连续的字符串然后按回车进行输出名字.但是如果我们的名字改为wang xiaomi ...

最新文章

  1. 10 迭代器与生成器
  2. Boost:bind绑定和数据成员以及高级用途的测试程序
  3. 多线程与单核cpu,多核cpu概念
  4. java 中negate()_Java BigInteger negate()用法及代码示例
  5. MySQL(四)InnoDB中一棵B+树能存多少行数据
  6. spring学习笔记(六)
  7. oracle精度说明符1~38_数据库显示精度说明符过多
  8. 【解决】Git:hint:Pulling without specifying how to reconclie divergent branches is...
  9. Golang项目:客户信息管理系统(附源码) (Golang经典编程案例)
  10. 基于springboot宠物医院管理系统java源码
  11. [杂记]注册电气工程师考试复习及考试杂谈
  12. English trip M1 - AC11 I Dreamed a Dream? 我做了一个梦 Teacher:Lamb
  13. Pytorch forward方法调用原理
  14. 斗破苍穹-牛仔版美杜莎
  15. Neural Collaborative Filtering复现
  16. CityMaker学习教程13 osg模型的移动
  17. 简单的电源隔离和信号地,电源地的处理
  18. python day003_int/str/bool/for循环
  19. 五分钟教你屏蔽百度广告
  20. 农作物病虫害AI智能监测预警系统

热门文章

  1. 【css】怎么让Chrome支持小于12px 的文字
  2. iOS UI基础-6.0 UIActionSheet的使用
  3. ScrollView中的LinearLayout不能使用android:layout_heig...
  4. VLC播放器web插件接口(Part2)
  5. 用VLC读取摄像头产生RTSP流,DSS侦听并转发(二)
  6. 黄金点游戏之客户端(homework-05)
  7. Java性能优化(12):最小化类和成员可访问能力
  8. 织梦cms系统如何code 财付通接口
  9. Java阻塞队列(BlockingQueue)实现 生产者/消费者 示例
  10. linux中如何查找文件中内容