“文件结尾”在C中意味着什么?

时间:2010-12-18 23:32:25

标签: c getchar

#include <stdio.h>
main()
{
    int c;
    while ((c = getchar()) != EOF)
    putchar(c);
}

在上面的代码中,哪个字符会打破循环?
我是C的新手,请帮帮我 此外,这个错误是什么意思:
codec5.c:8:2: warning: no newline at end of file

3 个答案:

答案 0 :(得分:1)

警告只是意味着您需要在源代码的末尾添加一个新行。将光标放在}末尾的文件中的最后一个main(),然后按Enter键。

如果您没有从文件加载,则需要检查特定字符以结束程序。如果将(|)(Windows中为<)文件传输到程序中,则程序应该结束。如果您的程序名为test.exe且输入文件为foo.txt,请尝试运行test.exe < foo.txt(确保它们位于同一目录中)。

答案 1 :(得分:0)

这是stdio.h中定义的特殊常量,表示文件末尾

  

codec5.c:8:2:警告:文件末尾没有换行符

听起来你的文件末尾没有\n:)

答案 2 :(得分:0)

通过在文件末尾添加换行符来解决错误(将光标放在}后面并按回车键。)

我认为循环被Ctrl + Z打破了,但我不确定。