C++的前导0

前导0,就是在整数的面前添加的0;不过前导0在各种进制表示的数中有不同的含义。

在C++中定义一个整形int变量:

int a = 01;

输出结果:

可见,即使添加了前导0,a作为一个整形变量,输出a时并没有输出前导0。

改变一下:

int a = 08;

这时再输出a,结果是:

出现了错误。

invalid digit "“8” in  octal constant

octal就是八进制的意思。八进制就是:

C++在整数面前添加0表示八进制。八进制只有0~7八个数,是没有更大的数字8,9的。所以这样就出现了错误。

这个知识点可以用于特殊的解题:

比如

输入两个时间,并给出每秒猪八戒可以偷到的电脑数量。时间的表示可能会带有前导0,有的可能没有。

这时可以考虑直接使用整型变量接收有前导0的时间;然后直接做减法就可以了。

例如

输入:

00:01:12
00:03:14
10

用a,b,c三个整形变量接收00,01,12;

用x,y,z三个整型变量接收00,03,14;

冒号就用字符变量重复接收就可以。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章