获取无限循环而不是值

问题描述 投票:1回答:2

这是下面的问题。

我正在执行无限循环,而不是在do-while循环中使用int类型的日期

#include <iostream>
#include <typeinfo>
int main()

{
    int in; // variable in;

    do //loop for check if variable get valid data
    {

        std::cout << "enter : ";

        std::cin >> in;

        if (typeid(in) == typeid(int()))
            break;
        else
            std::cout << "invalid input !! " << std::endl;
    } while (true);
}
c++ infinite-loop do-while typeid typeinfo
2个回答
1
投票

尽管使用RTTI,但in的类型在编译时是固定的。另外,在这里您不能直接比较变量和临时对象的typeid。他们不会一样。因此,这样的设计是胡说八道。检查输入是否满足整数输入的要求。基本上,您有两种方法:


0
投票

[typeid(in) == typeid(int())等效于typeid(in) == typeid(int()),因为inint

© www.soinside.com 2019 - 2024. All rights reserved.