读取数字循环

el/2024/2/25 22:31:18
int n ;
cin >> n;

总所周知,这段代码为输入一个整数,假设我输入了字符'q'那么结果又会如何呢?这种类型不匹配的情况将发生4种情况(同时发生):

  • n的值保持不变;
  • 不匹配的输入将被留住输入队列中
  • cin对象中的错误标志点将被置位
  • 对cin的调用将返回false(这为cin放在判断语句中设立了条件)

cin返回False意味着可以使用非数字输入来结束数字输入循环。非数字输入将导致cin置位错误标志点意味着必须重置错误标志位才能继续读取输入。接下来看一段程序例子,对上面四个点具有很好的阐述。这段程序的目的是输入5个高尔夫球得分,当我输入了字符的时候,程序会提示使用者输入数字,并重置相应的错误位,接受输入队列的所存的字符。之后进行新的输入,直至满足5次输入为止。

    using namespace std;// 程序清单6.14int total = 0;int golf[Max];cout << "请输入五轮高尔夫球的得分:\n";for (int i = 0; i < Max; i++){cout << "第" << i + 1 << "局的得分:\n";// cin 需要放在判断条件里边,若输入不成功则跳转到while循环中while (!(cin >> golf[i])){cout << "请输入数字!\n";// 清除错误信号cin.clear(); // 若输入不是回车,则一直进行cin.get的循环while (cin.get() != '\n');// 出了回车循环之后在进行重新输入cout << "请重新输入第" << i + 1 << "局的得分:\n";}}for (int j = 0; j < Max; j++){// 总和total += golf[j];}cout << "平均重量为:" << total / Max << endl;


http://www.ngui.cc/el/3574161.html

相关文章

函数递归(浅)

函数递归即函数自己调用自己&#xff0c;注意在C中不允许&#xff0c;main()进行递归。 那有同学就会问&#xff0c;函数的递归这不就陷入了死循环嘛&#xff1f;答案是对的&#xff01;因此我们需要给定一个判定条件&#xff0c;迫使调用链断裂&#xff0c;例如void类型的递归…

成员函数的内联方法

定义于类声明中的成员函数都将自动成为内联函数&#xff0c;类声明中常将短小的函数作为内联函数&#xff0c;也就是说在下面代码中set_tot()函数为内联函数。 class A {private:int a;int b ;public :int set_tot() {return a*b;} } 这段代码同理于下段代码&#xff1a; cl…

类作用域常量

在创建类作用域内的常量时&#xff0c;你可能以为这样可行&#xff1a; class A { private: const int Months 12 ; double consts[Months] ; } 其实这是个错误用法&#xff0c;因为类只是提供对象的创建方式&#xff0c;并不能创建对象&#xff0c;因此在A对象没有被…

作用域内枚举

传统的枚举&#xff0c;其中两个枚举中定义的枚举量可能会发生冲突。假设有一个处理鸡蛋和T恤的项目&#xff0c;其中包含类似的代码。 enum egg {small,medium,large,jumbo} enum t_shirt{small,medium,large,jumbo} 这将无法通过编译&#xff0c;因为egg中的small 和 t_shi…

自建类的赋值问题

潜复制和深复制以及复制构造函数_努力的小带土的博客-CSDN博客续潜复制及复制构造函数。 关于自建类的赋值问题假设存在类Tperson&#xff0c;如下所示&#xff1a;(主要用到的成员变量为_name 和address&#xff09; class Tperson { private: char* _name ; char* address …

抽象类(简单描述)

使用一个通俗且易理解的方法来讲纯虚类&#xff0c;假设有鸟类&#xff0c;该类有个属性是鸟会飞&#xff0c;企鹅也属于鸟类&#xff0c;但企鹅不会飞&#xff0c;那我们不想在企鹅内部继承与飞相关的属性。在比如圆和椭圆&#xff0c;在数学定义中圆是属于特殊的椭圆&#xf…

使用using重新定义访问权限

在使用保护派生和私有派生时&#xff0c;基类的公有成员函数&#xff0c;将成为保护成员或私有成员。假设要让基类方法在派生类外可用&#xff0c;则此时就用到了using重新定义访问权限&#xff0c;假设存在以下类&#xff1a; class Student : private string, private valar…

matlab实现二阶锁相环参数设计

锁相环数学模型 图1 锁相环的复频域模型 锁相环是由鉴相器、环路滤波器、压控振荡器组成的&#xff0c;其中系统传递函数可以表示成 H ( s ) H(s) H(s)&#xff0c;误差传递函数可以表示成 H e ( s ) H_e(s) He​(s)。其中参考公式可以参考《锁相环技术原理FPGA实现》。在此只给…

ffmpeg安装遇到的问题

关于ffmpeg安装遇到的问题&#xff1a; 在ffmpeg官网下载&#xff0c;有release和git两个版本&#xff0c;这两个是发行版&#xff0c;也就是直接可以运行的版本&#xff0c;当时下的这两个版本&#xff0c;老师运行出错&#xff0c;显示没有av_register_all()没有定义。到现在…

知识图谱环境搭建

借由学习模型预测和深度学习第一次接触知识图谱&#xff0c;发现有点意思&#xff0c;写个博客纪念一下。 知识图谱简介 百度百科定义&#xff1a; 知识图谱&#xff08;Knowledge Graph&#xff09;&#xff0c;在图书 情报 界称为 知识域 可视化或知识领 域 映射地图&#xf…