c语言,将两个文件的数字按顺序合并到第三个文件中
时间: 2024-05-07 18:23:11 浏览: 78
假设你有两个文件 `file1.txt` 和 `file2.txt`,它们都包含一些数字,每个数字占用一行。你想将这些数字按顺序合并到第三个文件 `output.txt` 中。
你可以使用以下代码来实现:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *file1, *file2, *output;
int num1, num2;
// 打开文件
file1 = fopen("file1.txt", "r");
file2 = fopen("file2.txt", "r");
output = fopen("output.txt", "w");
// 读取并合并数字
while (fscanf(file1, "%d", &num1) == 1 && fscanf(file2, "%d", &num2) == 1) {
if (num1 < num2) {
fprintf(output, "%d\n%d\n", num1, num2);
} else {
fprintf(output, "%d\n%d\n", num2, num1);
}
}
// 将剩余的数字写入输出文件
while (fscanf(file1, "%d", &num1) == 1) {
fprintf(output, "%d\n", num1);
}
while (fscanf(file2, "%d", &num2) == 1) {
fprintf(output, "%d\n", num2);
}
// 关闭文件
fclose(file1);
fclose(file2);
fclose(output);
return 0;
}
```
在这个程序中,我们首先打开三个文件:`file1.txt`,`file2.txt` 和 `output.txt`。然后,我们使用 `fscanf()` 函数从两个输入文件中读取数字,并将它们合并到输出文件中。具体来说,我们比较两个数字,将它们按顺序写入输出文件中。如果一个输入文件中的数字已经读取完,则将另一个文件中剩余的数字写入输出文件。最后,我们关闭所有文件并结束程序。
需要注意的是,在使用 `fscanf()` 函数时,我们需要检查它的返回值是否为 1,以确保成功读取了一个数字。如果返回值不是 1,说明已经读取到文件末尾或者读取发生了错误。
阅读全文