在c++中我想只限定使用者只输入int的数字。。。如果不是系统输出错误信息并让其重新输入

在c++中我想只限定使用者只输入int的数字。。。如果不是系统输出错误信息并让其重新输入。。。怎么写代码。。还有写一个不限定位数也能将这个数字逆序的代码怎么写啊。。。我是... 在c++中我想只限定使用者只输入int的数字。。。如果不是系统输出错误信息并让其重新输入。。。怎么写代码。。
还有写一个不限定位数也能将这个数字逆序的代码怎么写啊。。。
我是C++初学者。。。希望代码能够简单点。。。
谢谢啦。。。。
展开
 我来答
sx_liang
2010-11-16 · TA获得超过214个赞
知道小有建树答主
回答量:233
采纳率:0%
帮助的人:195万
展开全部
我写了两个方法,第二种不是很符合要求,但是比你想要的结果能好一些。。
你可以参考一下;
呵呵。。。希望对你有用。。。祝:咱们一起进步!
#include <iostream>
#include <algorithm> //这个是通用库头文件;以后你会用到的。
#include <string>

using namespace std;

//你可以删除 while 循环,然后看看注释里边的代码运行的结果,相信你会更感兴趣的。。。
int main()
{
string str;
int flag=1;

while(flag) //方法一:
{
cout<<"input number:"<<endl;
cin>>str;
for(int i=0;i<str.size();i++)
{
if (str[i]>'0' && str[i]<'9')
{}
else
{
cout<<"error number! input again: "<<endl;
break;
}
}
if( i==str.size()) flag=0;

}
/*
cout<<"input number:"<<endl;
cin>>str;
if (str=="0") //如果输入的是 字符 “0”的话,就没必要判断了;
{
cout<<"the number is 0 "<<endl;
return 0;
}
*/
int value=atoi(str.c_str());
//这个函数: atoi,就是你想要的接口,将字符串转换成数字串;呵呵。。。
/*
while(value==0) //atoi 将字符串转换成int型数字串,如果有其他字符,那么转换失败,返回值是 0;
//这就是我为什么要判断输入的字符是否为“0”的原因;
{
cout<<"error number! input again:"<<endl;
cin>>str;
value=atoi(str.c_str());
}
*/
cout<<"the number is "<<value<<endl;
reverse(str.begin(),str.end()); //调用通用库函数,将字符串str反转;
cout<<"the reverse number is "<<str<<endl;

return 0;

}
sai_84
2010-11-16 · TA获得超过531个赞
知道小有建树答主
回答量:264
采纳率:100%
帮助的人:414万
展开全部
如下:
#include <iostream>
#include <string> // string头文件
using namespace std;

void main()
{
string str;
int i, len;

while (1)
{
// 用字符串存储用户输入的数据
cout<<"Please input an integer value:";
cin>>str;

// 判断输入的是否都是int数据
len = str.length();
for (i = 0; i < len; i++)
{
if (str[i] < '0' || str[i] > '9')
break;
}

// 如果不是则重试,是则结束输入
if (i < len)
{

cout<<"input error: try again!"<<endl;
continue;
}
break;
}

// 把字符串反转
for (i = 0; i < (len / 2); i++)
{
char temp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = temp;
}

// 整形数据逆序输出
cout<<"Reversed number is:"<<str<<endl;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mingfengm
2010-11-16 · 超过19用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:44.5万
展开全部
#include "stdio.h"

void main()
{
int nData;
for(;;)
{
printf("请输入一个整数:\n");
scanf("%d",&nData);
if((unsigned int)nData > 0xFFFF)
{
fflush(stdin);
continue;
}
else
{
break;
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式