zoukankan      html  css  js  c++  java
  • 基础

    场景:cin输入一个整数,但是在console输入了其他如字符,字符串。当判断输入错误再重新输入时【 如while()内重复判断知道输入格式正确 】,可能进入死循环。

    解释:console输入时所按的回车键也算是输入符并保存在输入缓冲区中,在进行下一次读取时读到“ ”【windows中按回车键(" ")会转换成(“ ”)换行符】

    代码:

       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);
    ...................................................
  • 相关阅读:
    Linux GNOME桌面使用技巧大全
    联想旭日 C465A 开机白屏
    基础知识:编程的工作机制
    JavaCC 学习笔记
    笨办法学R编程(1)
    一些学习方法总结
    使用变量表示字、数字和值
    栈溢出2017doubly_dangerous
    栈溢出warmup_csaw_2016
    基础学习ret2text
  • 原文地址:https://www.cnblogs.com/floakss/p/10726334.html
Copyright © 2011-2022 走看看