2014-09-12 110 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