相关疑难解决方法(0)

虽然在cin输入错误的情况下使用try catch循环失败

我似乎无法弄清楚为什么在获得非int输入后它会陷入循环.我已经尝试了cin.flush(),它似乎不存在,cin.clear(),它看起来应该可以工作,甚至cin.sync()在阅读其他人发布有关它工作后,但没有似乎很有意义.还尝试了cin.bad().

非常感谢您的帮助

请输入第一个数字:f对不起,我不认为这是一个数字?

请输入第一个号码:对不起,我不认为这是一个号码?

请输入第一个号码:对不起,我不认为这是一个号码?

请输入第一个号码:对不起,我不认为这是一个号码?

请输入第一个号码:对不起,我不认为这是一个号码?对不起,你再也没有尝试了.按任意键继续 ...

#include <iostream>
using namespace std;

int main(){
    int entry;
    int attempts = 1;
    int result;
    while(attempts <= 5) {
        try {
            cout << "\n\nPlease enter the first number: ";
            cin >> entry;
            if (cin.fail())
                throw "Sorry, I don't think that's a number?";
            if (entry < 0)
                throw "Sorry, no negative numbers. Try something else? ";
            cout << "\nNow the second number: ";
            cin >> entry;
            cin.clear();
            cin.get();
        }
        catch (char* error) { …
Run Code Online (Sandbox Code Playgroud)

c++ iostream try-catch while-loop

3
推荐指数
1
解决办法
2万
查看次数

当int =(不是整数的东西)时停止无限循环

所以这是我开始编程以来一直存在的问题(不久之前.我仍然不知道为什么我开始使用C++).当我有一些整数变量和用户的输入定义它们,如果用户输入一些其他的不是整数节目怪胎,并运行它被赋予了最后一个命令的无限循环.我不认为需要示例代码,但如果是,我可以很容易地做一个基本的例子.

c++ debugging infinite-loop

1
推荐指数
1
解决办法
454
查看次数

标签 统计

c++ ×2

debugging ×1

infinite-loop ×1

iostream ×1

try-catch ×1

while-loop ×1