invalid digit "9" in octal constant [gelöst]



  • diese Meldung bekomme ich wenn ich ne Schleife schreibe, in der festgestellt werden soll ob der Monat 30 oder 31 Tage hat.
    Da April, Juni, September und November 30 Tage haben, wollte ich das so machen...

    int wievieleTageHatMonat(int monat,int jahr)
     {
        if(monat==02)
           if(!istSchaltjahr(jahr))
              return 28;
           else
              return 29;
        else if(monat==04||monat==06||monat==||monat==09||monat==11)
           return 30;
        else 
           return 31;
     };
    

    funzt auch soweit, ausser für den September, weil dann sagt der Compiler:

    invalid digit "9" in octal constant
    

    Wie komm ich dem bei? In der Suche hab ich leider nüx gefunden...

    Danke, Tom



  • Hi,

    die Fehlermeldung sagt doch schon alles:

    Du gibst oktale Zahlen an (sicherlich nicht absichtlich):

    Also:
    x = 1 ist dezimal
    x = 01 ist oktal
    x = 0x1 ist hexadezimal

    Jockel



  • Oder wie Volkard schon meinte: fein oktal lernen, sons wird er mal schwule kinder bekommen. 😎

    Bye, TGGC (Der Held ist zurück)



  • keine Sorge, die oktalen Zahlen kenn ich, also klappts auch mit den Kindern 😉

    aber mit dem Eingabeformat wollt ich das so haben: dd.mm.yyyy
    heisst also, dass ich jeden monat zweizahlig darstellen möchte. nur möchte ich den monat dann als normale integer-zahl weiter verarbeiten, aber wie?

    gibts da noch ne bessere möglichkeit wie diese hier: ? (welche übrigens wieder das gleiche problem verursacht...)

    if(monat==0x)
    
    monat=x;
    

    sonst funzt alles...

    tom



  • else if(monat==04||monat==06||monat==||monat==09||monat==11)
    

    Wie wäre es, du lässt die 0 einfach weg? Macht doch nix, ist ja ein Int.
    Außerdem darf da nicht monat==|| stehen 😃



  • Gäst schrieb:

    else if(monat==04||monat==06||monat==||monat==09||monat==11)
    

    Wie wäre es, du lässt die 0 einfach weg? Macht doch nix, ist ja ein Int.
    Außerdem darf da nicht monat==|| stehen 😃

    stimmt, mit weglassen isses einfacher und funzt auch! dachte nur dass ich dann das datum nicht in dem gewünschten format (dd.mm.yyyy) eingeben kann, geht aber! das andere mit dem || war nur ein tippfehler.

    thx, tom


Anmelden zum Antworten