如果在cpp中输入了错误的数据类型,如何允许多个输入?

科特·科本

我有一个程序会生成随机数,并要求用户不断猜测它,直到他/她正确为止。我希望它继续接受新值,即使我通过处理错误情况错误地输入了任何其他数据类型也是如此。

我的问题是,当我尝试运行以下程序时,一旦我输入一个字符并按Enter键,它将进入无限循环。我尝试使用cin.ignore()和cin.clear(),但这只是使程序在第一次输入后停止。

谁能帮我了解最新情况以及如何实现所需的输出?提前致谢。

#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;

int main()
{
  int secret_num, guess;
  srand(time(NULL));
  secret_num=rand() %  101 + 0;
  cout<<"Enter your guess between 0 and 100: ";

do
 {
  if(!(cin>>guess))
  {
    cout<<" The entered value is not an integer"<<endl;
  }
  else if( isnumber(guess))
    {
      if(guess>secret_num)
        cout<<"Too high";
      else if(guess<secret_num)
        cout<<"too low";
    cout<<endl;
    }
 }
  while(secret_num!=guess);


  if((guess==secret_num)| (isnumber(guess)))
  {
    cout<<"yes the correct number is "<<secret_num<<endl;
  }

  return 0;
}

编辑:这是我的代码中cin.clear()和cin.ignore(1000,'\ n')输出的屏幕截图,当我输入两次字符后输入数字时。 在此处输入图片说明

ts
    if (!(cin >> guess))
    {           
        cout << " The entered value is not an integer" << endl;
        cin.clear(); // clear must go before ignore

        // Otherwise ignore will fail (because the stream is still in a bad state)
        cin.ignore(std::numeric_limits<int>::max(), '\n'); 
    }

默认情况下,cin.ignore将忽略单个字符。如果他们输入的字符数超过1个,那将是不够的,这就是为什么我对其进行了一些修改。

if ((guess == secret_num) | (isnumber(guess)))

| 是按位运算符[OR]

|| 是逻辑运算符[OR]

但我认为您真正想要的是&&(AND)

if ((guess == secret_num) && (isnumber(guess)))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果在Django中输入了任何无效数据,则会在输入字段下方引发表格错误

来自分类Dev

如果用户不小心输入了错误的数据类型,cin如何工作?

来自分类Dev

如果在数组中输入的数据小于零,我正在尝试创建错误消息,请输入验证

来自分类Dev

PHP(如果在表单输入中)

来自分类Dev

如果在数据库中插入了新行,如何警告用户

来自分类Dev

如果在文本框中输入数字,如何将标签更改为红色

来自分类Dev

如果在此代码中输入为空,如何添加?

来自分类Dev

如果在插入批处理 CodeIgniter 中输入不为空,如何发送值

来自分类Dev

警报,如果在输入jquery或js中两次写入相同的单词,则不允许

来自分类Dev

如何处理在文本框中输入的多个数据类型值以进行搜索

来自分类Dev

如果在输入语句上选择

来自分类Dev

如果在可变链接输入上

来自分类Dev

当用户在scanf()中输入错误的数据类型时,如何解决无限循环?

来自分类Dev

如何从python中的输入检查每种数据类型?

来自分类Dev

如果在文本框中输入错误,如何在短对话框后立即清除第一次按键

来自分类Dev

如果在用户输入中找到键,则从字典对象中打印多个键和值

来自分类Dev

如果在jQuery中更改了多个输入元素的值,则会在change事件上触发

来自分类Dev

如果在input [type ='number']中插入了字母,如何停止光标移动?

来自分类Dev

如何确定用户输入的数据类型?

来自分类Dev

确定输入文件中的数据类型

来自分类Dev

如果输入了错误的路由,如何在Node.js中显示“ 404 not found”?

来自分类Dev

如果在Typescript中输入另一个类属性,则如何将其声明为必选类?

来自分类Dev

如果在TextFormField中未输入任何值,如何将字段另存为Firebase

来自分类Dev

如果在树中找不到输入,如何使此递归二叉树遍历返回null?

来自分类Dev

如果在声明类型之前引用了该类型,如何在Xtext IDE中显示错误

来自分类Dev

如何通过输入重定向输入不同的数据类型?

来自分类Dev

如果在 R 中使用 strptime,则输入字符串太长错误

来自分类Dev

如果用户输入不是 Java 中的正确数据类型,则给出错误消息并重新启动循环,如果是,则继续?

来自分类Dev

嗨,我想知道Python中是否有只允许输入字母而不允许数字的数据类型

Related 相关文章

  1. 1

    如果在Django中输入了任何无效数据,则会在输入字段下方引发表格错误

  2. 2

    如果用户不小心输入了错误的数据类型,cin如何工作?

  3. 3

    如果在数组中输入的数据小于零,我正在尝试创建错误消息,请输入验证

  4. 4

    PHP(如果在表单输入中)

  5. 5

    如果在数据库中插入了新行,如何警告用户

  6. 6

    如果在文本框中输入数字,如何将标签更改为红色

  7. 7

    如果在此代码中输入为空,如何添加?

  8. 8

    如果在插入批处理 CodeIgniter 中输入不为空,如何发送值

  9. 9

    警报,如果在输入jquery或js中两次写入相同的单词,则不允许

  10. 10

    如何处理在文本框中输入的多个数据类型值以进行搜索

  11. 11

    如果在输入语句上选择

  12. 12

    如果在可变链接输入上

  13. 13

    当用户在scanf()中输入错误的数据类型时,如何解决无限循环?

  14. 14

    如何从python中的输入检查每种数据类型?

  15. 15

    如果在文本框中输入错误,如何在短对话框后立即清除第一次按键

  16. 16

    如果在用户输入中找到键,则从字典对象中打印多个键和值

  17. 17

    如果在jQuery中更改了多个输入元素的值,则会在change事件上触发

  18. 18

    如果在input [type ='number']中插入了字母,如何停止光标移动?

  19. 19

    如何确定用户输入的数据类型?

  20. 20

    确定输入文件中的数据类型

  21. 21

    如果输入了错误的路由,如何在Node.js中显示“ 404 not found”?

  22. 22

    如果在Typescript中输入另一个类属性,则如何将其声明为必选类?

  23. 23

    如果在TextFormField中未输入任何值,如何将字段另存为Firebase

  24. 24

    如果在树中找不到输入,如何使此递归二叉树遍历返回null?

  25. 25

    如果在声明类型之前引用了该类型,如何在Xtext IDE中显示错误

  26. 26

    如何通过输入重定向输入不同的数据类型?

  27. 27

    如果在 R 中使用 strptime,则输入字符串太长错误

  28. 28

    如果用户输入不是 Java 中的正确数据类型,则给出错误消息并重新启动循环,如果是,则继续?

  29. 29

    嗨,我想知道Python中是否有只允许输入字母而不允许数字的数据类型

热门标签

归档