社区
C++ 语言
帖子详情
急救,这个判断变量类型的代码哪里错了。
rossi789
2006-01-24 10:20:06
我输入5,它居然说有错,我输入字符型数据它却滚屏提示有错,而不返回到cin>>a等待我重新输入。不知道错在哪里
#include <iostream.h>
#include <typeinfo>
main()
{
int a;
for(;;)
{
cin>>a;
if(typeid(a).name()=="int")
{
cout<<"输入正确"<<endl;
break;
}
else cout<<"输入有误,请重新输入"<<endl;
}
}
...全文
261
13
打赏
收藏
急救,这个判断变量类型的代码哪里错了。
我输入5,它居然说有错,我输入字符型数据它却滚屏提示有错,而不返回到cin>>a等待我重新输入。不知道错在哪里 #include #include main() { int a; for(;;) { cin>>a; if(typeid(a).name()=="int") { cout<<"输入正确"<<endl; break; } else cout<<"输入有误,请重新输入"<<endl; } }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
feeboby
2006-01-25
打赏
举报
回复
dev c++ 4.9.8.0
#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <typeinfo>
using namespace std;
int main(int argc, char *argv[])
{
float a;
for(;;)
{
cin>>a;
if(typeid(a) == typeid(int))
{
cout<<"输入正确"<<endl;
break;
}
else cout<<"输入有误,请重新输入"<<endl;
}
system("PAUSE");
return 0;
}
rossi789
2006-01-25
打赏
举报
回复
到底该怎么搞阿
rossi789
2006-01-25
打赏
举报
回复
算了..
kikikind
2006-01-25
打赏
举报
回复
楼上说得对呀~~~
rossi789
2006-01-25
打赏
举报
回复
还是不行,运行结果不对。我输入一个字符它滚屏出错了。http://img235.photo.163.com/13957176484/29127375/755226585.jpg
我想是不是由于这个方法行不通。typeid是测试变量类型的,a开始已经定义成int的话,后面不管再输入其他类型的数据,typeid是不判断输入的值的类型的,依旧判断的是变量本身的类型。
rossi789
2006-01-24
打赏
举报
回复
那怎么在你的VC里面可以的阿,dev就是不行.我把void去了,加了就通不过编译.运行结果还是不行.看我截的图
http://img235.photo.163.com/13957176484/29127375/753872153.jpg
feeboby
2006-01-24
打赏
举报
回复
不用包含这个头文件
rossi789
2006-01-24
打赏
举报
回复
dev里面怎么没有stdafx.h这个头文件?
rossi789
2006-01-24
打赏
举报
回复
奇怪,我在DEV-C++里连编译都通不过
guoxiaoli
2006-01-24
打赏
举报
回复
typeid(a).name()=="int"
字符串比较函数:strcmp(typeid(a).name() , "int") == 0
typeid(a)
The result of a typeid expression is a const type_info&. The value is a reference to a type_info object that represents either the type-id or the type of the expression, depending on which form of typeid is used.
name()
const char* name() const;这是函数原形。他的返回只是一个长字符串指针。
所在和"int"比较时会报错!
这是MSDN的内容
把报错的信息拿出来看看
feeboby
2006-01-24
打赏
举报
回复
我的行
vc6
#include "stdafx.h"
#include <string.h>
#include <iostream.h>
#include <typeinfo>
void main()
{
int a;
for(;;)
{
cin>>a;
if(strcmp(typeid(a).name() , "int") == 0)
{
cout<<"输入正确"<<endl;
break;
}
else cout<<"输入有误,请重新输入"<<endl;
}
}
rossi789
2006-01-24
打赏
举报
回复
试过了不行阿
feeboby
2006-01-24
打赏
举报
回复
把if(typeid(a).name()=="int")改成
if(strcmp(typeid(a).name() , "int") == 0)
网管教程 从入门到精通软件篇.txt
小编的确一直都想把这方面的命令做个总结,这次辛苦老范给我们整理了这份实用的秘笈。 Bootcfg bootcfg 命令启动配置和故障恢复(对于大多数计算机,即 boot.ini 文件)。 含有下列参数的 bootcfg 命令仅在...
数据
类型
和
变量
数据
类型
和
变量
数据
类型
计算机顾名思义
急救
室可以做数学计算的机器,因此,计算机程序理所应当地可以处理各种数值。但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,...
5.python之条件
判断
if
在生活中,经常会用到条件
判断
。比如登录网站账号时,系统会
判断
输入的账号密码是否正确,如果正确,就登录成功。这里的【如果...就...】就是系统遵循的条件
判断
,其作用在于让计算机明白在什么条件下该去做什么。 ...
Basics_03 条件
判断
条件
判断
在Python宇宙,条件
判断
语句总共有三种表现形式,我们先从最简单的单向
判断
:if开始说起 ...那么,这段
代码
是如何实现的呢? 首先,第一行
代码
,用赋值运算符=对当前情况进行赋值:将60赋值给Fract...
C++ 语言
64,637
社区成员
250,559
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章