如何判断一个文件是否结束?
2011-08-16 16:57
661 查看
EOF 是 End Of File 的缩写。
在 C 语言中,它是在标准库中定义的一个宏。人们经常误认为 EOF 是从文件中读取的一个字符。其实,EOF 不是一个字符,它被定义为是 int 类型的一个负数(比如 -1)。EOF 也不是文件中实际存在的内容。EOF 也不是只表示读文件到了结尾这一状态(这种状态可以用 feof() 来检测),它还能表示 I/O 操作中的读、写错误(通常可以用 ferror() 来检测)以及其它一些关联操作的错误状态。
在 C 语言中,它是在标准库中定义的一个宏。人们经常误认为 EOF 是从文件中读取的一个字符。其实,EOF 不是一个字符,它被定义为是 int 类型的一个负数(比如 -1)。EOF 也不是文件中实际存在的内容。EOF 也不是只表示读文件到了结尾这一状态(这种状态可以用 feof() 来检测),它还能表示 I/O 操作中的读、写错误(通常可以用 ferror() 来检测)以及其它一些关联操作的错误状态。
int main() { // getline的测试 FILE* in_wr = fopen("testff.dat", "w"); fprintf(in_wr, "%s", "\x61\x09\x62\x09\x63\x0a\xff\x64\x09\x65\x09\x66"); fclose(in_wr); FILE* wr = fopen("out.dat", "w"); FILE* rd1 = fopen("testff.dat", "r"); size_t length = 0; char* raw_line = NULL; while (getline(&raw_line, &length, rd1) != -1) { printf("%s", raw_line); fprintf(wr, "%s", raw_line); } fclose(rd1); // fgetc 和 EOF的测试 printf("%s", "\n\n\n"); fprintf(wr, "%s", "\n\n\n"); FILE* rd2 = fopen("testff.dat", "r"); char ch = fgetc(rd2); while (ch != EOF) { printf("%c", ch); fprintf(wr, "%c", ch); ch = fgetc(rd2); } fclose(rd2); // fget int 和 feof()的测试 printf("%s", "\n\n\n"); fprintf(wr, "%s", "\n\n\n"); FILE* rd3 = fopen("testff.dat", "r"); int nCh = fgetc(rd3); while (!feof(rd3)) { printf("%c", nCh); fprintf(wr, "%c", nCh); nCh = fgetc(rd3); } printf("%s", "\n\n\n"); fprintf(wr, "%s", "\n\n\n"); fclose(rd2); fclose(wr); return 0; }
相关文章推荐
- makefile中如何判断一个文件是否存在
- 如何判断一个文件或目录是否存在
- bash如何判断一个文件是否存在
- 如何用JS判断一个网页中的图片是否下载结束
- nodejs如何判断一个文件、文件夹是否存在
- 如何判断一个文件是否是win32可执行文件
- 如何判断一个文件是否为病毒
- 如何在shell中判断一个文件是否为空
- C语言判断一个文件是否存在,以及如何删除
- 如何判断一个文件是否正在被使用
- 如何判断一个文件是否被关闭?
- makefile中如何判断一个文件是否存在
- 【转载】如何在shell中判断一个文件是否为空
- java如何判断一个linux下的文件是否为链接文件。
- C#中如何判断一个文件是否存在
- 如何判断一个文件是否存在
- 如何在shell中判断一个文件是否为空
- 如何快速判断一个文件是否为病毒
- 如何列出某个目录下的所有子目录? 3)如何判断一个文件或目录是否存在? 4)如何读写文件?
- windows10UWP:如何判断一个文件或者文件夹是否存在?