Bug in Dev-C++ 4.9.8.0?



  • Ich hab folgenden Code

    #include <stdio.h>
    
    short foo ( void )
    {
        short Column = 0;
        short fooo = 3;
    
        do
        {
            fprintf(stdout,"\n\t\tWelche Reihe: ");
            fscanf(stdin,"%d",&Column);
            if ( Column >= fooo )
            {
                fprintf(stdout,"\n\t\tFalsche Eingabe. Bitte wiederholen.");
            }
        /*  Wenn Column < fooo, dann Absturz??? */
        }while ( Column >= fooo );
    
        return Column;
    }
    
    int main ( int argc, char** argv )
    {
        short foobar = 0;
    
        foobar = foo();
    
        return 0;
    }
    

    Ich gebe für Colummn einen Wert kleiner fooo ein und das Programm beendet sich mit einer "Programmfehler"-MessageBox. Durch Austesten konnte ich jetzt die Bedingung in der while-Schleife als Fehlerquelle ausmachen, aber warum?
    Habe ich evtl was übersehen (schlaflose Nacht 🙄 ) oder kann jemand den Fehler reproduzieren oder weiß Hilfe? Wenn ich Column und fooo als int deklariere, klappt das Programm einwandfrei... 😞



  • Mit dem Formatstring in fscanf liest du ints ein, und keine shorts. Entweder du änderst den Typ dahingehend oder du änderst den Formatstring.



  • thx.

    mit %hd klappt nun alles einwandfrei 🙂


Anmelden zum Antworten