EOF和foef的一个差别

早上起来做川大的某年复试题目,合并2个文件。。两个文件都是字符型的

我用feof来判断文件结尾,但是发现合并的文件出现了FF的字符。

 

百思不得其解。后来知道读取字符判断结束的话用EOF

如果读取2进制文件则用feof来判断结尾。。

 

附上川大计算机硕士复试的某道题目的答案吧。

 

 

#include <stdio.h> #include <stdlib.h> int main() { FILE *fileA, *fileB, *fileC; char a, b, c; fileA = fopen("c:/a.txt", "r+"); fileB = fopen("c:/b.txt", "r"); fileC = fopen("c:/c.txt", "w+"); if(fileA == NULL || fileB == NULL || fileC == NULL) return 0; a = fgetc(fileA); b = fgetc(fileB); while(a != EOF && b != EOF) { fputc(a, fileC); fputc(b, fileC); a = fgetc(fileA); b = fgetc(fileB); } while(a != EOF) { fputc(a, fileC); a = fgetc(fileA); } while(b != EOF) { fputc(b, fileC); b = fgetc(fileB); } rewind(fileA); rewind(fileC); c = fgetc(fileC); while(c != EOF) { fputc(c, fileA); c = fgetc(fileC); } fclose(fileA); fclose(fileB); fclose(fileC); system("pause"); return 0; }

你可能感兴趣的:(c,File,null,System)