问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C++,用cin获取一个数字,存入一个int型变量。当输入字母符号等非数字时...

发布网友 发布时间:2024-04-04 05:52

我来回答

2个回答

热心网友 时间:2024-04-11 01:18

你好。你的要求是把输入的字母等非数字字符排除掉,然后只保存数字对吗?

比如输入:3df55d,然后排出掉dfd,只保存355,以保证输入的正确性。


#include <iostream>
#include <math.h>
using namespace std;
/*
功能:把一个用字符串表示的整数转换为
int类型的整数。如有字符创char* chrPt = "213";
转换后为int num = 213;
算法:(3 * 10的0次方) + (1 * 10的1次方)+ (2 * 10的2次方)
这个算法要求chrPt指向"213"字符串的尾部,即指向"3"。
注意:这个函数会把用户输入的非数字字符排除掉,这是重点!
*/
int InputInt(char* chrPtNumber)
{
   char* chrPt;
   int number = 0;
   int x = 0; //幂初始化为0,x范围从0到4。因为int类型整数最大只有五位数
   cout<<"请输入一个小于等于5位数的int整数: ";
   cin>>chrPtNumber;
   //功能和strlen()一样,求字符长度,即让指针跑到尾部
   for (chrPt = chrPtNumber; *chrPt; chrPt ++)
   { } //空循环体
   /* 如果输入264,那么先把4加进去,然后再60,再200,即需要倒序
      所以前面让指针chrPt指向尾部,以便倒序保存每一位数字
   */
   for (-- chrPt; chrPt > chrPtNumber; chrPt --)
   {
     //如果是数字就保存下来
     if (*chrPt >= '0' && *chrPt <= '9')
     {
       number += (*chrPt - '0') * int(pow(10, x ++));
     }
   }
   /* chrPt不能和chrPtNumber相等,因为相等后,chrPt便是首地址了;
      chrPt--:首地址再往前跑一个便超出范围了。
      所以第一个数组元素不能放在循环里面,要拿出来单独处理
   */
   if (*chrPt >= '0' && *chrPt <= '9')
   {
     number += (*chrPt - '0') * int(pow(10, x));
   }
   return number;
}
int main()
{
   char chr1Number[20];
   int num = InputInt(chr1Number);
   cout<<"你输入的整数是: "<<num<<endl;
   return 1;
}

热心网友 时间:2024-04-11 01:20

#include <iostream>
using namespace std;
void main()
{
int n;
char ch;

cout << "输入一个整数: ";
cin >> n;
while (!cin)
{
while ((ch = getchar ()) != '\n')
continue;
cout << "输入的不是数字,重新输入: ";
cin.clear ();
cin >> n;
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ipad mini2怎么看小说 关于ipadmini的几点疑惑 苹果平板图书阅读软件推荐推荐一个苹果可以用的免费看小说app 风冷无霜为什么噪音大 华为matepad11多大尺寸的 applewatch可以发微信语音吗? 人类基因组组成 仅从染色体照片(黑白非显带的)能否区别X染色体和C组染色体? ...车子加速不上来是什么原因,节气门清洗过了也不行? 换了变数箱油洗了节气门 提速慢了 停下来起步根本没力气 ...cin输入范围为1~10^9的整数,应该选什么类型的变量?而范围为1~10^6... 大白菜怎么留种子大白菜如何留种子 邬思道不让弘历吃饭是哪一集 珊瑚花园在哪个区域 s7200 cpu224xp哪些引脚是高输入输出 哪些引脚是低输入输出 跪谢了... 可以吃炎可宁片吗 大便不行的呢 生产单位的主要负责人对本单位的安全生产全面负责,还应该多长时间听取安 ... 选择题 关于单位现金库存限额,下列说法正确的有( )。 A. 单位现金库存... 库存现金限额一般每年核定一次 用大连的商通卡的紫卡消费有积分吗?怎么查询?积分能兑换什么商品吗... 高州市恒和新材料有限公司怎么样? 松子仁煮鸡蛋能治过敏性鼻炎吗? 泰康药关怀特药医疗险提供哪些保障 三星Yp-55的mp3开机出现please reformat 怎么办 特急~~~我的三星Mp3开机后出现Please Reformat~!! 三星yp55驱动 WIN7 富时罗素指数有什么意义富时罗素指数是什么意思 日本的九品佛是什么? 图卢兹大学的研究生好还是工程师好 有知道《三万英尺》王菲版(是一首粤语歌)的名字吗? C++中有三个整型变量:X,Y,Z,使用cin&gt;&gt;X&gt;&gt;Y&gt;&gt;Z,进行赋值,当输入5.4 3.... 请问什么是三角眼矫正术? 大学毕业室友离别句子大全(精选50句) 贵州省现高校在校学生人数是多少? 董字开头的成语或俗语 小学教师对儿童心理发展有哪些作用? 请问一下,从中国寄快递刀美国,收件人的手机号码是要留美国号码,还是中 ... 田里的庄稼填写什么词语 手机和柜台存款利息一样吗 手机存款利率和柜台存款利率一样吗 求助:word中如何批量修改数字?文档中有很多参考文献,是用上标“[数字... 陶瓷纤维模块安装步骤有哪些 有谁知道哪款电脑与‘联想 万全t280 g2 s5405 1g/25’差不多?_百度知... 爱达康炒锅是哪里品牌 爱达康是品牌吗 浙江爱达康厨具有限公司电话是多少? 来安汊河中学是公立学校吗 邮政信用卡注销以后还需要注意哪些事情吗 顶了五年社保失业金领完每年还会往医保卡打医保钱吗 北京回民中学初中部多少人