用C语言编写一个程序,完成题目要求并保证其在devc++上正常运行。题目要求:、文件合并:有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中。
时间: 2024-04-12 09:26:54 浏览: 110
以下是一个使用C语言编写的程序,可以完成题目要求并在DevC++上正常运行:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SIZE 100
void mergeFiles(FILE *fileA, FILE *fileB, FILE *fileC) {
char lineA[MAX_SIZE], lineB[MAX_SIZE];
fgets(lineA, MAX_SIZE, fileA);
fgets(lineB, MAX_SIZE, fileB);
while (!feof(fileA) || !feof(fileB)) {
if (feof(fileA)) {
fputs(lineB, fileC);
fgets(lineB, MAX_SIZE, fileB);
} else if (feof(fileB)) {
fputs(lineA, fileC);
fgets(lineA, MAX_SIZE, fileA);
} else {
if (strcmp(lineA, lineB) < 0) {
fputs(lineA, fileC);
fgets(lineA, MAX_SIZE, fileA);
} else {
fputs(lineB, fileC);
fgets(lineB, MAX_SIZE, fileB);
}
}
}
}
int main() {
FILE *fileA, *fileB, *fileC;
fileA = fopen("fileA.txt", "r");
fileB = fopen("fileB.txt", "r");
fileC = fopen("fileC.txt", "w");
if (fileA == NULL || fileB == NULL || fileC == NULL) {
printf("Failed to open files.\n");
return 1;
}
mergeFiles(fileA, fileB, fileC);
printf("Files merged successfully.\n");
fclose(fileA);
fclose(fileB);
fclose(fileC);
return 0;
}
```
请注意,此程序假设文件A和文件B已经存在,并且每个文件只包含一行字母。程序将按字母顺序合并两个文件,并将结果输出到fileC.txt中。
在运行程序之前,请确保在与程序相同的目录下创建名为fileA.txt和fileB.txt的文件,并在每个文件中分别写入一行字母。程序将生成一个名为fileC.txt的新文件,其中包含合并后的结果。
希望这个程序能够满足你的需求!如果有任何问题,请随时向我提问。
阅读全文