Problem mit "scanf" in C

bademantel

mal wieder da...
ID: 218075
L
23 April 2006
1.548
59
Hallo Leute,

ich bin gerade dabei die Programmiersprache C zu lernen. Und ich habe jetzt ein wenig rumgebastelt und wollte mir einen kleinen Rechner schreiben, aber leider habe ich das Problem, dass wenn ich das Programm ausführe, dass es sofort schliesst.

Der Code:
Code:
#include <stdio.h>
#define MWST 1.19
int main()
{
    float netto, brutto;
    printf("Geben Sie einen Nettobetrag ein:\n");
    scanf("%f" ,&netto);
    
    brutto = netto * MWST;
    
    printf("Der Bruttobetrag beträgt: %4.2f\n" ,brutto);
    
    getchar();
    return 0;
    
}

Wenn ich nun eine Zahl eingebe und auf ENTER drücke, dann schliesst das Fenster, ohne mir ein Ergebnis anzuzeigen.
Kann mir jemand helfen?

Gruß
 
Starte es mal direkt von der Konsole.

Windows schließt das Konsolenfenster sofort nach Ende der Ausführung und ich tippe mal, dass der getchar() noch irgendwie den Enter-Knopf von deiner Eingabe kriegt und einfach drüberrauscht.

Kannst ja probeweise testen, indem du ne
PHP:
while(42);
ans Ende einbaust. Dann läuft das Programm ewig, dürfte nicht schließen und du solltest die Ausgabe lesen können.
 
ahja...naja das ist ja optimal für die Jahreszeit.
Haust den PC und den Laptop an, schreibst nen kleines Programm, in das du ne Schleife einfügst...sparst dir die Heizoksten... ;)

Wobei, Strom ist auch nicht wirklich billig :ugly:
 
du kannst am Ende auch system ("PAUSE");
eingeben dann schließt es sich nich
(sieht dann so aus)

#include <stdio.h>
#define MWST 1.19
int main()
{
float netto, brutto;
printf("Geben Sie einen Nettobetrag ein:\n");
scanf("%f" ,&netto);

brutto = netto * MWST;

printf("Der Bruttobetrag beträgt: %4.2f\n" ,brutto);

getchar();
system ("PAUSE");
return 0;

}
:D:mrgreen:
 
wieso sols das nich geben ???
aso bei allen pc (selbst beim schul-pc) ging´s warum solls dann nich auch
da gehen
Wenn auf allen Schul-PCs die Programme in einer Windows-Shell ausgeführt werden, logisch :LOL:
Tipp mal pause auf einer Bash unter Linux ein und guck mal, was du als Ausgabe kriegst. Darauf will ich hinaus.
 
Schreib am ende einfach noch ein getchar() damit das erste das schon getippte Enter holt und das 2. auf die nächste Eingabe wartet.