c++判断输入的是否为数字?

请给出详细的代码..
要求如下.
我要用户输入一个数字.
所以要判断用户输入的是否为数字.
输入的不是数字要给出响应..
谢谢了...
整数

可以参考下面的代码:

#include<iostream>

using namespace std;

int main()

{

double num;

if(cin>>num)

cout<<"Input correct!"<<endl;

else

cout<<"Input erroe!"<<endl;

return 0;

}

扩展资料:

C语言isupper()函数:判断一个字符是否是大写字母

C语言isspace()函数:判断一个字符是否是空白符

C语言isprint()函数:判断一个字符是否是可打印字符

C语言islower()函数:判断一个字符是否是小写字母

C语言ldexp()函数:返回x乘以2的exponent次方(次幂)的值

double log10(double x) 返回log10x的值

double pow(double x,double y) 返回x^y的值

参考资料来源:百度百科-C语言函数

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-05-28
你写的这个有太多的错误。至于定义数组的时候a[N]这种错误我就不讲了
还有在循环里面(i=1;i<N;i++)N没赋值就调用的错误我也不讲了
讲你的死循环问题你没有给循环加一个限制条件根据你continue的意思我暂时理解为如果输入的不是数字那么一直循环重新输入一直到你输入的是数字为止跳出循环对吗?
while(1){
printf("请输入要查的值\n");
ret=scanf("%d",&n);
printf("ret=%d\n",ret);
if(ret==0){
printf("输入错误,请重新输入\n");
continue;
}
break;
}
这样就可以如果输入的是数字scanf的返回值为1那么循环的第一次不会进入if(ret==0)也就是说如果输入的是数字直接执行break跳出循环
如果输入的不是数字循环的时候执行语句if(ret==0)然后执行continue
continue的意思是跳出当前循环继续下一次循环即执行到continue之后从新循环而不会执行到break以此类推只要你输入的不是数字则永远循环输入的如果是数字跳出循环执行完毕。
大哥如果小弟回答正常给点分吧多谢
=================================================================
另外对于一楼的同学我必须有好的提醒你scanf()的用法以及返回值的相关问题
我想你肯定不知道scanf("%d",&i)如果你输入的是int型则返回1否则返回0
换句话说即你输入的类型和scanf()里面预先定义的类型一致则返回1否则返回0
THANKYOU
第2个回答  推荐于2018-03-07
如果是判断0~9的数字,那么就用isdigit函数。
如果是判断输入是否为科学计数法里面的数据,那么如下:
#include <iostream>
using namespace std;

int main()
{
double in;
cin>>in;
if(cin.fail())
cout<<"非数字"<<endl;
return 0;
}本回答被网友采纳
第3个回答  推荐于2016-04-16
#include <iostream>
using namespace std;
int main()
{
char input[20];
cout<<"请输入数字:";
cin>>input;
for(int i = 0; i < strlen(input); i++)
{
if(!isdigit(input[i]))
{
cout<<"你输入了非法字符!"<<endl;
exit(0);
}
}
cout<<"你输入的是数字!"<<endl;
}
要多标准的呢?负数也行么?本回答被提问者采纳
第4个回答  2009-08-05
判断是数字的标准是什么?
浮点数?1.0121
整数?-12313,+132
相似回答