这是下面的问题。
我正在执行无限循环,而不是在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);
}
尽管使用RTTI,但in
的类型在编译时是固定的。另外,在这里您不能直接比较变量和临时对象的typeid
。他们不会一样。因此,这样的设计是胡说八道。检查输入是否满足整数输入的要求。基本上,您有两种方法:
[typeid(in) == typeid(int())
等效于typeid(in) == typeid(int())
,因为in
是int
。