2016-04-09 2 views
-1

ありませんのscanfはEOF信号に反応しなければならないが、それは私は数字<code>float</code>を読み取り、それがCtrlキー</kbd><kbd>D</kbd>を<code>EOF</code>単一<kbd>を受信した後に停止する必要がありますが、それだけでは反応しない。コードのこの部分を持ってい

お願いします。

(私はそれが奇妙に見えますが-1制御は理由があることを知っている。)

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

'scanf'からの戻り値が' 1'(変換された項目の数)であることをテストします。 'EOF'はあなたの配列' float paid [] 'に現れる値ではありません。 –

+0

@WeatherVane素早く反応してくれてありがとう。しかし、第4プレスのように反応します。 – Erik

+2

あなたが試したことを示す[最小限で完全で検証可能な例](http://stackoverflow.com/help/mcve)を投稿してください。実際の入力、出力、期待されるアウトプットは問題を示している。さもなければ、 "did you #include ' " –

答えて

0

EOFscanf()の戻り値ではなく、渡されたメモリアドレスに書き込まれた値です。

do { 
    f++; 
} while(scanf("%f", &paid[f]) != EOF && paid[f - 1] != 0); 
関連する問題

 関連する問題