主题:vc++新手的一个问题
wlqwlq
[专家分:0] 发布于 2008-04-09 20:20:00
我想问一下如何才能判断所输入数据的类型,就是如何所输入的数据是否为整型还是字符型,然后根据判断后再进行后面程序的运行。希望高手们能帮我解答,这个问题我想了好几天了,上次去问老师,他也没有想出办法。(最好把程序的代码也写下)多谢了![em2]
回复列表 (共7个回复)
沙发
mrlzalex [专家分:260] 发布于 2008-04-10 12:57:00
你可以把问题描述的清楚一点吗?一般来讲你读入到什么类型的数据里,就是什么类型的!
板凳
wlqwlq [专家分:0] 发布于 2008-04-10 15:51:00
例如在这个简单的程序里:
#include<iostream>
using namespace std;
void main()
{
int m,n;
cout<<"请输入一个整数"<<endl;
cin>>m;
n=m+2;
cout<<'n='<<n<<endl;
}
我想添加一个语句判断所输入的是否是整数。如果不是,就输出错误,然后再重新输入。不知道这个语句该怎么写?
3 楼
aizibion [专家分:4780] 发布于 2008-04-11 07:47:00
对于你需要判断得条件如果只有整形和字符型得话,sizeof函数可以帮助你,因为整形和字符型在 内存中得大小不一样,一个站1字节,一个站4字节,所以如果要判断的话:
cout<<"请输入一个整数"<<endl;
cin>>m;
if (sizeof(m) == 4)
{
......
}
else if (sizeof(m) == 1)
{
......
}
4 楼
wlqwlq [专家分:0] 发布于 2008-04-11 12:35:00
好像还是不行啊!这下面是我修改后的程序:
#include<iostream>
using namespace std;
void main()
{
int m,n;
cout<<"请输入一个整数"<<endl;
cin>>m;
if(sizeof(m)==4)
{
n=m+2;
cout<<'n='<<n<<endl;
}
else if(sizeof(m)==1)
cout<<"输入错误"<<endl;
}
我随便输入一个数,例如2,结果程序返回的是:282214。这是怎么回事啊?
5 楼
dqt05 [专家分:0] 发布于 2008-04-12 11:29:00
语句:cout<<'n='<<n<<endl;
的'应改为"
6 楼
山大拓荒者 [专家分:0] 发布于 2008-04-13 10:31:00
你将cout<<"n="<<n<<endl;
应为双引号!!!
7 楼
miaoyong [专家分:760] 发布于 2008-04-13 20:57:00
把基础学好,相信你就不会问这样的问题了,
if (sizeof(m) == 4) // 它也可能是4个字节的CHAR型!
{
......
}
小于255的整型数,也可当作unsigned char型,
基础很重要,也可以考虑学学好ASM!
我来回复