当用户输入字符串而不是 int 时,C++ 中的异常处理

独行侠17

我有一个程序需要用户输入一个整数,然后必须满足几个条件。当我运行程序时,如果我输入一个int数字它可以工作,但如果我输入一个字符,程序只会发送错误消息。我认为异常处理可能在这里工作,但我不知道该怎么做。帮帮伙计们!

这是我编的一部分:

#include <iostream.h>
#include <conio.h>
int i, j, data;
void main()
{
 int tempdata;
 retry:
 cout<<"\n\n Enter the row and coloumn where you want to enter data"   <<endl;
 cin>>i>>j;
 if (i>=1 && i<=9 && j>=1 && j<=9)
 {
   cout<<"\n Enter your desired value to put in that place"<<endl;
   cin>>tempdata;
    if(tempdata>=1 && tempdata<=9)
    {
      data=tempdata;
    }
    else
    {
      cout<<"\n Soduku contains numbers from 1 to 9 only.Please try again"<<endl;
      goto retry;
    }
 }
 else
 {
    cout<<"\nEntered row or coloumn is not valid"<<endl;
    cout<<"Please try again"<<endl;
    goto retry;
 }
  getch();
 } 
大卫卢克

您确实应该使用异常处理而不是 cout。

if(tempdata>=1 && tempdata<=9)
{
  data=tempdata;
}
else
{
  throw std::runtime_error("Soduku contains numbers from 1 to 9 only.Please try again");
}

通过将所有这些放入一个函数中,而不是你的主函数中,然后你可以在 try/catch 块中调用这个函数,并正确处理异常:如果你有一个 GUI,则显示一个弹出消息,忽略输入等. 重要的是,如果你忽略它,它实际上并没有被忽略。它被处理。这使您的代码更清洁和可维护。例子:

try
{
    input();
}
catch(std::runtime_error& e)
{
    // deal with your invalid input here
}

此外,goto 语句被认为是不好的做法。它们可以很容易地用 if/else 或 while 语句替换,或者用函数中的返回码替换。并且使用它们往往会使代码不可读,难以遵循。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

输入字符串而不是int时如何显示消息?

来自分类Dev

输入字符串而不是int时引发错误

来自分类Dev

当用户输入数字而不是字符串时显示错误

来自分类Dev

在C中从字符串更改为int时溢出

来自分类Dev

输入字符串而不是整数时创建Java异常

来自分类Dev

Python从int(input())异常中检索字符串输入

来自分类Dev

当用户输入字符或字符串时,如何让代码显示“无效输入”(验证)

来自分类Dev

文件输入int字符串c

来自分类Dev

在Web api .net core 3.1中传递int而不是字符串时出现400 badrequest

来自分类Dev

在字符串变量中输入int

来自分类Dev

计算C中用户输入字符串中的单词

来自分类Dev

将用户输入的字符串写入C中的文件

来自分类Dev

计算C中用户输入字符串中的单词

来自分类Dev

C中的用户输入字符串变量

来自分类Dev

用户字符串输入到 c 中的 \0

来自分类Dev

异常处理解析int和空字符串

来自分类Dev

C#-类型为System.FormatException的未处理异常-列出要列出int的字符串

来自分类Dev

如何使用单词“ int”,但将其用作字符串而不是C中的数据类型?

来自分类Dev

当用户不是字符串时如何修复 {user.username}?

来自分类Dev

输入字符串在c#net int.parse中的格式不正确

来自分类Dev

C-将字符串输入到int变量中?

来自分类Dev

当用户输入某个字符串时,如何使while循环退出?

来自分类Dev

当用户输入特定的字符串时,将调用事件

来自分类Dev

更多pythonic在处理urllib响应而不是chr(int(x))时将字节转换为字符串

来自分类Dev

当用户选择表单中的字符串时,我需要十六进制代码作为颜色

来自分类Dev

TypeError:int()参数必须是字符串,类似字节的对象或数字,而不是在Django中创建令牌时的“ dict”

来自分类Dev

转换为int C#时输入字符串格式不正确

来自分类Dev

当用户在C中输入Ctrl + d时退出程序

来自分类Dev

如何处理C中的字符串输入?

Related 相关文章

  1. 1

    输入字符串而不是int时如何显示消息?

  2. 2

    输入字符串而不是int时引发错误

  3. 3

    当用户输入数字而不是字符串时显示错误

  4. 4

    在C中从字符串更改为int时溢出

  5. 5

    输入字符串而不是整数时创建Java异常

  6. 6

    Python从int(input())异常中检索字符串输入

  7. 7

    当用户输入字符或字符串时,如何让代码显示“无效输入”(验证)

  8. 8

    文件输入int字符串c

  9. 9

    在Web api .net core 3.1中传递int而不是字符串时出现400 badrequest

  10. 10

    在字符串变量中输入int

  11. 11

    计算C中用户输入字符串中的单词

  12. 12

    将用户输入的字符串写入C中的文件

  13. 13

    计算C中用户输入字符串中的单词

  14. 14

    C中的用户输入字符串变量

  15. 15

    用户字符串输入到 c 中的 \0

  16. 16

    异常处理解析int和空字符串

  17. 17

    C#-类型为System.FormatException的未处理异常-列出要列出int的字符串

  18. 18

    如何使用单词“ int”,但将其用作字符串而不是C中的数据类型?

  19. 19

    当用户不是字符串时如何修复 {user.username}?

  20. 20

    输入字符串在c#net int.parse中的格式不正确

  21. 21

    C-将字符串输入到int变量中?

  22. 22

    当用户输入某个字符串时,如何使while循环退出?

  23. 23

    当用户输入特定的字符串时,将调用事件

  24. 24

    更多pythonic在处理urllib响应而不是chr(int(x))时将字节转换为字符串

  25. 25

    当用户选择表单中的字符串时,我需要十六进制代码作为颜色

  26. 26

    TypeError:int()参数必须是字符串,类似字节的对象或数字,而不是在Django中创建令牌时的“ dict”

  27. 27

    转换为int C#时输入字符串格式不正确

  28. 28

    当用户在C中输入Ctrl + d时退出程序

  29. 29

    如何处理C中的字符串输入?

热门标签

归档