将两个磁盘文件A和B中的信息合并(按字母顺序排列),输出到一个新文件C中。
#include <stdio.h>
#include <stdlib.h>
void mergeFiles(FILE *fileA, FILE *fileB, FILE *fileC) {
char chA = fgetc(fileA);
char chB = fgetc(fileB);
while (chA != EOF && chB != EOF) {
if (chA < chB) {
fputc(chA, fileC);
chA = fgetc(fileA);
} else {
fputc(chB, fileC);
chB = fgetc(fileB);
}
}
while (chA != EOF) {
fputc(chA, fileC);
chA = fgetc(fileA);
}
while (chB != EOF) {
fputc(chB, fileC);
chB = fgetc(fileB);
}
}
int main() {
FILE *fileA, *fileB, *fileC;
fileA = fopen("A.txt", "r");
fileB = fopen("B.txt", "r");
fileC = fopen("C.txt", "w");
if (fileA == NULL || fileB == NULL || fileC == NULL) {
printf("无法打开文件!\n");
return 1;
}
mergeFiles(fileA, fileB, fileC);
fclose(fileA);
fclose(fileB);
fclose(fileC);
printf("文件已合并到C.txt中。\n");
return 0;
}