C++ 如果输入不是整数,则连续提示用户输入

C++ 如果输入不是整数,则连续提示用户输入,c++,C++,没有C++11最简单的方法是什么,它会提示用户输入一个整数,如果用户不输入整数,它会给用户一条错误消息并重新提示用户 这就是我尝试过的: int number; cin >> number; while(!cin){ cin.clear(); cin >> number; } 这里有一个方法,我从底部的链接复制了它。有多种方法可以做到这一点,包括将数字作为字符读入,如果您选择的话。但这一个应该可以解决你的困境 #include <iostream&g

没有C++11最简单的方法是什么,它会提示用户输入一个整数,如果用户不输入整数,它会给用户一条错误消息并重新提示用户

这就是我尝试过的:

int number;
cin >> number;

while(!cin){
   cin.clear();
   cin >> number;
}

这里有一个方法,我从底部的链接复制了它。有多种方法可以做到这一点,包括将数字作为字符读入,如果您选择的话。但这一个应该可以解决你的困境

#include <iostream>
#include <cmath>

int main()
{
    double teger;
    int teger2;
    do
    {
        std::cout << "enter an int" << std::endl;
        std::cin >> teger;
        std::cin.ignore();
        std::cin.clear();
        std::cout << "you entered: " << teger << std::endl;
        teger2 = teger;
        std::cout << "the int of that is: " << teger2 << std::endl;
        std::cout << std::endl;
        if (teger != teger2) std::cout << "Sorry, that isn't an int, try again." << std::endl;
        std::cout << std::endl;
    } while (teger != teger2);
std::cout << "congrats, you passed the int test" << std::endl;
return 0;
}

有关更多示例,请阅读以下讨论:


让我们看看你试过什么。你可以复制粘贴每天贴在这里的40多个问题中的一个尝试,就是这个机械师。好吧,现在,你的尝试有什么问题吗?我不知道,这就是我为什么要问的原因。它进入了一个无限循环。你没有在你的问题中告诉我们。如果你不能回答我的问题,那没关系,事先告诉我。-1与其引导OP去看另一个网站,你应该把几行相关代码复制到你的答案中。如果需要,您可以引用原始站点作为答案的来源。“如果这样做,我将颠倒我的-1。”RemyLebeau该链接有一个相当长的描述,并根据他的知识水平提供了多种解决问题的方法。我不知道为什么你会降低我的评价,因为我对这一点还不熟悉,而且没有其他人提供任何东西。答案应该是独立的,这样人们就可以搜索它们并按原样阅读它们。此外,外部链接可以而且确实会随着时间的推移而改变。我已经相应地编辑了你的答案。至于没有人提供任何东西,OP的问题在1小时前才被问到。你必须给人们时间回答。如果不是一天,也要等几个小时,然后再开始批评别人不回答。我们不是全天候生活和呼吸的。好的,谢谢。我按照您的建议添加了一些代码。我从这个网站的小小使用中受益匪浅,我很高兴能回馈,我发现我从b/c信息的跳跃中学到了最多每种情况都是不同的。谢谢