2012-04-04 23 views
0

Ich versuche ein Array zu erstellen, das die Stunden an einem Tag hält, damit ich es für eine Uhr durchlaufen kann.Gibt es eine Arbeit für ungültige Oktalziffer in einem Array?

ich habe:

int hourArray[24] = {12, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 01, 02, 
        03, 04, 05, 06, 07, 08, 09, 10, 11}; 

ich auf den folgenden Zahlen um 08, 09, 08, 09 die Störung erhalten.

Es sagt mir:

Error: invalid octal digit

Ich habe in dem noch nie laufen und ich frage mich, ob es um es irgendeinen Weg gibt?

+0

Literale, die mit "0" beginnen, werden vom Compiler als oktal betrachtet, richten sie stattdessen mit Leerzeichen aus. –

Antwort

7

Sicher: Benutzen Sie nicht 0s führt, wenn Sie Oktal bedeuten nicht:

int hourArray[24] = {12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 
    1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; 

Vergessen Sie nicht, dass Sie nur die Zahlen im Array angibt - keine bestimmte Textdarstellung der Nummer. (Wenn Sie also 012 schreiben, entspricht das Schreiben 10 - werden Sie mit der gleichen Nummer enden.) Wenn Sie diese Zahlen mit einer führenden 0 später formatieren möchten, ist das ein ganz anderer Aspekt des Codes.

+0

Was, wenn Sie die Zahl Null wollen, aber Sie nicht oktal bedeuten? –

+1

@KerrekSB: '(1 - 1)'? –

+0

@KerrekSB: nur 0 wäre in Ordnung anstelle von 00 – keety

Verwandte Themen