Eurorechner Fehler

  • Hi,
    das ist mein "Skript":::
    /* Eurorechner */
    #include <conio.h>
    #include <iostream>
    main() {
    int wahl;
    float betrag;
    printf("\n\tE u r o r e c h n e r\n");
    printf("\n1 DM - -> Euro\n2 Euro --> DM");
    printf("\n\nIhre Wahl: ");
    scanf("%i",&wahl);
    if (wahl == 1) { /*(1)*/
    printf("Bitte DM-Betrag eingeben: ");
    scanf("%f",betrag);
    printf("\n%.2f DM sind %.2f Euro",betrag,
    betrag*0.51129);
    } /*(2)*/
    if (wahl == 2) { /*(3)*/
    printf("Bitte Euro-Betrag eingeben: ");
    scanf("%f",betrag);
    printf("\n%.2f Euro sind %.2f DM",betrag,
    betrag*1.195583);
    getch();
    return 0;
    }
    }

    :::Ich kann es starten eine Wahl auswählen und den Betrag
    auswählen aber wenn ich auf Enter drücke nachdem ich den Betrag ausgewählt habe
    sagt Win Vista das programm muss wegen einem Fehler beendet werden! Warum?

    MfG Ferdi

  • #include <iostream>
    using namespace std;

    Statt printf("Hallo"); cout << "Hallo";
    Und statt scanf cin >> betrag;

    Das ist Standard für die Konsole und läuft auch problemlos unter Linux, während conio nur so ein spezielles borland-ding ist.

    Viele liebe Grüße
    The User

  • HÖ wie das muss doch da im Block enthalten sein??
    Und was meinste mit Zitat:Versuch das mal (mit &):
    scanf("%f",&betrag);??


    EDIT:Egal was ich mache er zeigt immer an .... hat ein problem und muss beendet werden ....

  • Für den ersten Fall wahl == 1 hast Du kein getch und kein return.
    Entweder schreibst Du es in den ersten IF-Block auch rein, was aber unsinnig wäre, weil Du dann auch beide Befehle, die in beiden Blöcken vorkommen, hinter die Blöcke schreiben kannst.
    Und beim scanf MUSS man eine Adresse (&betrag) übergeben und nicht die Variable (betrag).
    Also musst Du vor Betrag ein & schreiben.
    Probier es doch einfach mal aus, dann wirst Du es schon sehen.

    You're welcome,
    Johnny

  • ICQ habe ich nicht mehr, deshalb poste ich hier mal mein Programm.
    Mit dem MS Visual C++2008 Express geht es:

    /* Eurorechner */
    #include <conio.h>
    #include <iostream>

    int main()
    {
    int wahl;
    float betrag;

    printf("\n\tE u r o r e c h n e r\n");
    printf("\n1 DM - -> Euro\n2 Euro --> DM");
    printf("\n\nIhre Wahl: ");
    scanf("%i",&wahl);
    if (wahl == 1) { /*(1)*/
    printf("Bitte DM-Betrag eingeben: ");
    scanf("%f",&betrag);
    printf("\n%.2f DM sind %.2f Euro",betrag,
    betrag*0.51129);
    } /*(2)*/
    if (wahl == 2)
    { /*(3)*/
    printf("Bitte Euro-Betrag eingeben: ");
    scanf("%f",&betrag);
    printf("\n%.2f Euro sind %.2f DM",betrag,
    betrag*1.95583);
    }
    getch();
    return 0;
    }

    You're welcome,
    Johnny