#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;
bool is_number(string str)
{
if(str.c_str()[0]!=45)
{
for(int i = 0; i < str.length(); i++)
{
if( str.c_str()[i] < '0' || str.c_str()[i] > '9' )
{ return false;}
}
return true;
}
else
{
for(int i = 1; i < str.length(); i++)
{
if( str.c_str()[i] < '0' || str.c_str()[i] > '9' )
{ return false;}
}
return true;
}
}
void main()
{ int a=0;
const char *s;
cout<<"请输入数据a:";
string str;
cin>>str;
if(is_number(str))
{
cout<<"你输入的是数字!"<<endl;
s=str.c_str();
a=atoi(s);
a=a+1;
cout<<"a+1="<<a<<endl;
}
else cout<<"你输入的不是数字!";
}
一次性获取用户当前输入(他输入的可能是1位数也可能是2位数或者字母等)并判断是否为严格意义上的数字,主要是为了区分数字和字母。如果不是数字则返回重输,如果是,使用该int 型数据做其他操作。
主要思路是采用string类的成员函数c_str()实现。对于成功判断是数字以后如果要使用该数字可以再调用atoi(const char*s)