C++中cin输入问题
场景:cin输入一个整数,但是在console输入了其他如字符,字符串。当判断输入错误再重新输入时【 如while()内重复判断知道输入格式正确 】,可能进入死循环。
解释:console输入时所按的回车键也算是输入符并保存在输入缓冲区中,在进行下一次读取时读到“\n”【windows中按回车键("\r")会转换成(“\n”)换行符】
代码:
bool flag = false;//判断控制台正确输入
int op;
do
{
cin >> op;//cin在控制台按回车使会读入回车符到缓冲区,并在下一次输入时读取缓冲区内容到变量;
cin.clear();//条件状态的复位(goodbit Eofbit failbit badbit这几个状态标识符,cin输入错误时状态置为(3)或(4),可用clear()恢复到0即goodbit状态)
//cin.ignore();//精准清空缓冲区
cin.sync();//清空缓冲区
if (op == 1 || op == 2)
{
flag = true;
}
else
{
cout << "输入错误,重新输入:" << endl;
} } while (!flag);
C++中cin输入问题的更多相关文章
- C++中cin输入类型不匹配解决方法
#include <iostream> #include <set> using namespace std; int main() { int a; cin>>a ...
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法----细节决定成败 (sort用法)
C++中cin.cin.get().cin.getline().getline().gets()等函数的用法 学C++的时候,这几个输入函数弄的有点迷糊:这里做个小结,为了自己复习,也希望对后来者能有 ...
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
学C++的时候,这几个输入函数弄的有点迷糊:这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC 6.0运行) 1.cin 2.cin.get ...
- C++中的输入参考
1.输入输出 1)operator>> 参考:cplusplus.com Extracts characters from is and stores them in s as a c-s ...
- C++中cin的用法汇总
cin可以用于接收输入,最常见的是从控制台接收.在刚学习C++的时候经常会用cin来接收数据,这里想要系统的总结一下cin的用法,保证不灌水. C++中的cin是一个 istream对象,从标准输入中 ...
- [转]C++中cin、cin.get()、cin.getline()、getline()函数的简单总结
参考原文:http://www.cnblogs.com/flatfoosie/archive/2010/12/22/1914055.html,另外做了一些修改~ 1.cin 2.cin.get() 3 ...
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法(转)
学C++的时候,这几个输入函数弄的有点迷糊:这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC 6.0运行) 1.cin 2.cin.get ...
- 【转载】关于C++中cin的几点说明性总结
转载地址:http://www.07net01.com/program/289153.html 学C++的时候,这几个输入函数弄的有点迷糊:这里做个小结: 1.cin 2.cin.get() 3.ci ...
- C++中cin.get(),cin.getline(),cin>>,gets(),cin.clear()使用总结
1.cin.get() 实质:类istream所定义对象cin的重载成员函数 用于读取单字符 istream& get(char&) int get(void) 用于读取字符 ...
随机推荐
- Ubuntu下配置eclipse环境
一.安装JDK,配置Java环境变量 1.下载JDK,Java SE 8的官方网址是http://www.oracle.com/technetwork/java/javase/downloads/jd ...
- ubuntu linux常用指令(1)
序号 命令 说明 1 sudo su 从普通用户切换到root用户 2 su user 从root用户切换到普通用户 3 ls 列出当前目录的文件和目录,但是不包括隐藏文件和目录 4 ls -a 列出 ...
- js闭包的定义
通过函数字面量创建的函数对象包含一个连接到外部上下文的连接,这叫做闭包. 还有一种定义:函数可以访问它被创建时所处的上下文环境,叫做闭包.
- Nginx源码完全注释(5)core/ngx_cpuinfo.c
/* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. */ #include <ngx_config.h> #include ...
- 80. Remove Duplicates from Sorted Array II (Array)
Follow up for "Remove Duplicates": What if duplicates are allowed at most twice? For examp ...
- 如果习惯VisualStudio,可以如下实现.Shader文件的语法高亮。
如果习惯VisualStudio,可以如下实现.Shader文件的语法高亮. 下载作者donaldwu自己添加的关键词文件usertype.dat.其包括了Unity ShaderLab的部分关键字, ...
- Computer2
luo@luo-All-Series:~/MyFile/TensorflowProject$ conda create -n flappbird1 python=3.7Solving environm ...
- PHP获取当前文件路径
__FILE__ 是当前路径+文件名dirname(__FILE__)返回当前文件路径的路径部分 例如当前文件是 /home/data/demo/demo.php ,则 __FILE__ 得到的就是完 ...
- 275. H-Index II 递增排序后的论文引用量
[抄题]: Given an array of citations in ascending order (each citation is a non-negative integer) of a ...
- activeMQ集群搭建及高可用
三台服务器搭建如下的集群,达到了高可用.也同时达到了负载的目的: /****************************************************************** ...