2014-09-12 146 views
4

我有這塊代碼,它應該會觸發一個消息,當用戶打在Ctrl + D並輸入它,但沒有消息出現。有人可以向我解釋爲什麼這樣嗎?爲什麼這個「if」語句在它應該被觸發時不會觸發?

#include <stdio.h> 

int main() 
{ 
    int i=0; 
    int result = scanf("%d", &i); 
    if(result == EOF) 
    { 
     printf("End of file detected\n"); 
    } 
} 

它只是似乎想打印我的消息時,我在按Ctrl +d衝鍵盤和輸入結果^D上沒有。

+0

我應該如何修改語法以便讀取^ D? – user152573 2014-09-12 21:05:41

+1

如果您輸入任何非空白文本然後按Ctrl D,它將不會打印「檢測到文件結尾\ n」。 – chux 2014-09-12 21:08:50

+0

請注意,在獲得您認爲正確的答案時,正確的程序是*將答案標記爲已接受*。特別是,不要編輯您的帖子來說「解決:...」(您可能需要一段時間[Welcome To Stack Overflow Tour](http://stackoverflow.com/tour))。 – usr2564301 2014-09-12 21:53:47

回答

7

Ctrl - D是EOF的Linux快捷方式。在Windows上按F6Ctrl - Z輸入

+0

耶穌基督。 ..我不知道這是不同的窗口 – user152573 2014-09-12 21:07:35

+0

我會給你複選標記8分鐘後,當它讓我這樣做。 – user152573 2014-09-12 21:10:17

+2

@ user152573它已經超過了你提到的8分鐘;如果這個答案對你有幫助,那麼請使用複選標記接受它。 – hexafraction 2014-09-12 21:51:38