如果我想将“001”之类的数字视为3位数字,如何检查输入是否为整数变量“a”的3位数字?

编程入门 行业动态 更新时间:2024-10-14 12:24:51
本文介绍了如果我想将“001”之类的数字视为3位数字,如何检查输入是否为整数变量“a”的3位数字?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

好的,我正在制作一个C ++文件处理项目。它中有这个变量:int roll。 它应该有3位数。我想过使用像if(roll> 99 || roll< 1000)这样的方法,但它没用。它显然是091作为2位数字,003作为1位数字。那么,如果我想将像'001'这样的数字视为3位数字,如何检查输入是否是整数变量'a'的3位数字? 我尝试过: 我想过使用像if这样的方法(roll> 99 || roll< 1000 )但它没用。它显然需要091作为2位数字,003作为1位数字。

Okay, so I am making a C++ file handling project. There's this variable in it: int roll. It should have 3 digits. I thought of using methods like, if(roll>99||roll<1000) but it's not useful. It takes 091 as a 2 digit number, 003 as 1-digit, obviously. So, How do I check if the input is a 3-digit number for an integer variable 'a', if I want to consider numbers like '001' as 3 digit numbers too? What I have tried: I thought of using methods like, if(roll>99||roll<1000) but it's not useful. It takes 091 as a 2 digit number, 003 as 1-digit, obviously.

推荐答案

这取决于:如果你正在读取文件中的值,那么你会需要做你显示的if测试,几乎。 如果你生成一个随机数(名称 roll 暗示你是),那么生成0到899之间的随机数,然后加100。这样,你可以保证一个非零最重要数字的值。 如果没有相关的代码片段,我们可以说 - 有太多不同你可以做的事情! It depends: if you are reading a value from a file, then you would need to do the if test you show, pretty much. If you are generating a random number (and the name roll implies you are) then generate a random number between 0 and 899 inclusive, then add 100 to it. That way, you are guaranteed a value with a non-zero most significant digit. Without the relevant code fragments, that's all we can say - there are too many different things you could be doing!

如果它是一个整数变量,检查< 1000 并且根据您的要求不是负数或零是足够的。 编程语言中的数字类型没有前导零。但字符串表示可能有。如果您有一个表示数字的字符串且必须包含前导零,则可以使用 strtol - C ++参考 [ ^ ]功能: If it is an integer variable, checking for < 1000 and for not being negative or zero depending on your requirements is enough . Numeric types in programming languages do not have leading zeroes. But string representations might have. If you have a string representing a number and that must contain leading zeroes, you can use the strtol - C++ Reference[^] function: // Skip any non-digits because strtol will skip leading white spaces // and accept signs. This won't work for negative numbers. while (*szInput && !isdigit(*szInput)) ++szInput; char *stop; long num = strtol(szInput, &stop, 10); if (stop - szInput == 3) { // Has three digits }

更多推荐

如果我想将“001”之类的数字视为3位数字,如何检查输入是否为整数变量“a”的3位数字?

本文发布于:2023-11-29 16:05:39,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1646889.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数字   整数   变量   想将

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!