前導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;
冒號就用字符變量重複接收就可以。