有没有办法将一系列零作为int输入?

Tol*_*ASP 1 c++ string int cin

我正在重建70年代的老主脑视频游戏.

用户进行四位数猜测,然后将其记录为矢量.

我知道有一种方法可以将输入作为一个字符串接受,但是如果没有办法用一个单独的int输入来实现这一点,我会发现它很奇怪 - 我无法找到一个方法.

我当前设置它的方式,如果用户提供0003的输入,这将被记录为一个不足的数字错误,因为int的值被解释为简单3.不完全出乎意料,但是真的没办法使用int方法一次取所有四位数?

谢谢!

Ø

/ e考虑到游戏机制,输入3(数字错误不足)应与0003的输入区分开来;

R. *_*des 13

"三"."3"."Threeeeeeeeeeeeeeeeee"."03"."003"."0003"."00000000000000003"."III"."3"."11"."3"."三"."Γ'".

上述所有事情有什么共同之处?他们都是三号†的代表.表示不同吗?是.他们代表的数字是不同的吗?不,只有一个三号.

三号与三号无法区分,因为只有三号.然而,数字3的两个表示可以彼此不同,因为它们可以使用不同的符号或不同的规则来将符号组合在一起.

int使用C++(以及几乎所有具有类似数据类型的语言)来处理数字.因此,如果将数字3分配给这种类型的变量,则得到数字3.你没有得到它的任何特定表示.这是第三名.当你要求它时,你可以得到它的表示,就像你输出它一样.

那么,如果它们代表相同的数字,你如何区分"3"和"0003"之间的区别?简单:你不使用数字.

这里的根本问题是你认为你正在处理数字,但事实并非如此.您关心的是陈述,而不是数字本身.因此,您应该使用可以处理表示的数据类型,而不是可以处理数字的数据类型.我相信最简单的解决方案就是使用std::string.


†按顺序:英语,带有印度 - 阿拉伯数字的十进制英语,带有无关"e"的英语表示语音中较长的最终声音,C表示基数为8,C#表示基数为8,附加多余零,基数为八十七个印度 - 阿拉伯数字和三个冗余零,三十个印度 - 阿拉伯数字和十二个冗余零,罗马数字,东方阿拉伯数字,两个印度阿拉伯数字,天城数字,中国数字和希腊数字.

  • http://i.stack.imgur.com/ObXOq.png (2认同)