我只是搞不懂EOF不是判断文本文件的结尾吗,
再说一次“不是!!!”
EOF 是 fgetc 的一种可能的返回值。
当 fgetc 返回 EOF,说明文件读取
出错或
无内容可读,判断是“错误”还是“无内容可读”可以用ferror或feof来判断。
我随便举个例子,假设 a.txt 就1个字节,内容是 char(0xFF),那么
FILE* src = fopen( "a.txt", "rb" );
int a = feof(src); // a 应当是 0
int b = fgetc( src ); // b 应当不是 EOF,(char)b 应当是 0xFF ----------
注意,这就是为什么C标准要将 fgetc 的返回类型定为 int 的原因,用于区分是 正常返回了一个char,还是出错了。
int c = feof(src); // c 应当是 0 ----------
注意,feof 并不判断是否尚有文件内容可读,它标示的是读文件出错是因为无内容可读了吗。
int d = fgetc( src ); // d 应当是 EOF
int e = feof(src); // c 应当不是 0
可我要的不是文本文件的复制粘贴啊
听不懂