用c语言把两个分开的文件的内容,内容为结构体,复制给另一个文件
时间: 2024-04-14 22:30:31 浏览: 95
c语言复制文件
当您说“内容为结构体”,您是指每个文件中的每行内容都表示一个结构体对象吗?如果是这样,您可以使用C语言中的文件操作函数来实现将两个文件的内容复制到另一个文件中。下面是一个简单的例子,演示如何实现这一目标:
```c
#include <stdio.h>
// 定义学生结构体
typedef struct {
int ID;
char name[50];
int score;
char email[50];
} Student;
int main() {
FILE *file1, *file2, *outputFile;
Student student;
// 打开两个输入文件和一个输出文件
file1 = fopen("1001.txt", "r");
file2 = fopen("1002.txt", "r");
outputFile = fopen("output.txt", "w");
// 从第一个文件读取内容并写入输出文件
while (fscanf(file1, "%d, %[^,], %d, %[^\n]", &student.ID, student.name, &student.score, student.email) != EOF) {
fprintf(outputFile, "%d, %s, %d, %s\n", student.ID, student.name, student.score, student.email);
}
// 从第二个文件读取内容并写入输出文件
while (fscanf(file2, "%d, %[^,], %d, %[^\n]", &student.ID, student.name, &student.score, student.email) != EOF) {
fprintf(outputFile, "%d, %s, %d, %s\n", student.ID, student.name, student.score, student.email);
}
// 关闭文件
fclose(file1);
fclose(file2);
fclose(outputFile);
return 0;
}
```
在此示例中,我们首先定义了一个学生结构体,其中包含了ID、姓名、分数和电子邮件。然后,我们使用`fopen`函数打开两个输入文件(`1001.txt`和`1002.txt`)和一个输出文件(`output.txt`)。我们使用`fscanf`函数从每个输入文件中逐行读取内容,并使用`fprintf`函数将内容写入输出文件。最后,我们使用`fclose`函数关闭所有文件。
请注意,为了简化示例,我们假设输入文件中的每行内容都符合指定的结构体格式,并且输出文件的名称是`output.txt`。您可以根据实际需要进行修改。此外,还要确保您已经在程序运行之前创建了输入文件。
阅读全文