Ausnahme Fehler



  • #include <stdio.h>
    
    int main()
    {
    float celsius;
    printf("\nBitte Grad Celcius eingeben : ");
    scanf("%f",celsius);
    printf("\n%f Celsius",celsius);
    printf("\n%f Farenheit\a",celsius*9/5+32);
    
    }
    

    Wenn ich

    printf("\n%f Farenheit\a",celsius*9/5+32);
    

    benutze, bekomme ich einen ausnahme fehler

    Bitte Grad Celcius eingeben : 8
    
    Unbehandelte Ausnahme: System.AccessViolationException: Es wurde versucht, im ge
    schützten Speicher zu lesen oder zu schreiben. Dies ist häufig ein Hinweis darau
    f, dass anderer Speicher beschädigt ist.
       bei scanf(SByte* )
       bei main() in c:\dokumente und einstellungen\jan\eigene dateien\programmieren
     c\projekte\übungs_cpp\übungs_cpp\übung.cpp:Zeile 7.
    Drücken Sie eine beliebige Taste . . .
    

    Was mache ich Falsch?



  • 1. scanf erwartet Zeiger
    2. Fahrenheit wird mit "h" geschrieben



  • Das Problem liegt in Zeile 7. scanf() erwartet hier als zweites Argument einen Zeiger auf float.

    Edit: Und zu langsam.



  • ok und wie integrier ich so ein zeiger ? ^^



  • scanf("%f", &celsius);
    ...
    printf("\n%f Farenheit\a", (celsius*9)/5+32);
    

    so funktioniert es bei mir



  • PimmelHoden schrieb:

    ok und wie integrier ich so ein zeiger ? ^^

    08mmarte's Beispiel ist korrekt. Du musst die Adresse von celsius übergeben, Herr Hoden. Das macht man mit dem Adress-Operator (&). Google mal nach Pointern...


Anmelden zum Antworten