Soo ...我看到一個人聲稱此代碼正在處理另一個問題。scanf(...)的有用上下文!= EOF
while(scanf("%X", &hex) != EOF) {
//perform a task with the hex value.
}
那麼,在什麼情況下EOF標誌被拋出?我雖然會繼續無限期地詢問一個數字。我添加了另一行代碼來測試它,它也正是我所期望的......
這不是一個文件,這似乎是標準輸入。那麼...... WHEN這段代碼有用嗎?
即,在什麼情況下EOF返回拋出?
我想如果你按ctrl-D你可能會得到EOF ... – Floris 2013-02-15 04:22:52
請參閱[此更早的問題](http://stackoverflow.com/questions/11944314/ctrl-d-didnt-stop-the-whilegetchar -eof-loop) – Floris 2013-02-15 04:23:44
'EOF'不是一個拋出的標誌。它是一個擴展爲'int'類型的常量表達式的宏,通常是'(-1)'。當scanf被標準定義時,它返回'EOF'的值。 – 2013-02-15 05:57:49