2016-04-09 4 views
-1

ich dieses Stück Code haben, die Zahlen liest float und es sollte nach dem Empfang EOF einzelne CtrlD zu stoppen, aber es reagiert einfach nicht.scanf in Schleife EOF-Signal reagieren sollte, aber es funktioniert nicht

Irgendwelche Hilfe bitte?

(Ich weiß, es sieht seltsam, aber die -1 Kontrolle ist es für einen Grund.)

do { 
    f++; 
    scanf("%f",&paid[f]); 
} while(paid[f-1] != 0 && paid[f] != EOF); 
+3

Den Rückgabewert von 'scanf' testen, der' 1' sein sollte (Anzahl der Elemente konvertiert). 'EOF' ist kein Wert, der in Ihrem Array 'float paid []' erscheint. –

+0

@ WeatherVane Danke für schnelle Reaktionen. Es reagiert aber wie 4th press ... – Erik

+2

Bitte postet das [Minimal, Complete und Verifable Beispiel] (http://stackoverflow.com/help/mcve) welches zeigt, was du versucht hast, mit den eigentlichen Inputs, Outputs und erwartete Ausgaben, die das Problem zeigt. Sonst können wir den ganzen Tag Fragen stellen, wie zum Beispiel "did you' #include '" –

Antwort

0

EOF ist der Rückgabewert von scanf(), nicht der Wert geschrieben geben Speicheradresse.

do { 
    f++; 
} while(scanf("%f", &paid[f]) != EOF && paid[f - 1] != 0); 
Verwandte Themen