用c语言写一段代码,要求实现将文件逐行写入另一个文件
时间: 2024-05-15 21:17:23 浏览: 94
Sure! 以下是 C 语言代码示例:
```c
#include <stdio.h>
int main() {
FILE* input_file;
FILE* output_file;
char line[100];
input_file = fopen("input.txt", "r"); // 以只读方式打开输入文件
output_file = fopen("output.txt", "w"); // 以写入方式打开输出文件
// 逐行读取输入文件,并将每一行写入输出文件
while (fgets(line, sizeof(line), input_file) != NULL) {
fputs(line, output_file);
}
// 关闭输入文件和输出文件
fclose(input_file);
fclose(output_file);
return 0;
}
```
以上代码将 `input.txt` 文件的内容逐行写入 `output.txt` 文件。请按照自己的需求修改文件名和路径。
相关问题
写一段c语言代码实现职工管理系统中的职工信息数据录入的同时以文件保存
以下是一个简单的职工信息数据录入程序示例,它将职工信息保存到文件中:
```c
#include <stdio.h>
#include <stdlib.h>
struct employee {
char name[20];
int age;
char department[20];
};
int main() {
struct employee emp;
FILE *fp;
fp = fopen("employee.txt", "a");
if (fp == NULL) {
printf("Unable to open file!");
exit(1);
}
printf("Enter name: ");
scanf("%s", emp.name);
printf("Enter age: ");
scanf("%d", &emp.age);
printf("Enter department: ");
scanf("%s", emp.department);
fprintf(fp, "%s %d %s\n", emp.name, emp.age, emp.department);
fclose(fp);
return 0;
}
```
在上面的代码中,我们定义了一个结构体 `employee` 表示职工信息,包含了姓名、年龄和部门三个字段。打开文件 `employee.txt` 并将职工信息写入文件中。每次录入新的职工信息时,都将信息追加到文件末尾。
如果需要从文件中读取职工信息,可以使用 `fscanf()` 函数逐行读取文件内容并解析为 `employee` 结构体。
已知数据文件student.txt中存放了五个学生的信息 姓名 数学 英语 计算机成绩(要求通过写方式打开创建该文件);读文件,计算每个学生成绩的平均值,最后将学生数据写入out.txt文件中去。用C语言写
很高兴为您解答这个问题!
下面是代码实现:
```
#include <stdio.h>
#include <stdlib.h>
#define MAX_NAME_LEN 20 // 最大姓名长度
#define FILENAME_LEN 20 // 文件名长度
// 定义学生结构体
typedef struct {
char name[MAX_NAME_LEN]; // 姓名
float math; // 数学
float english; // 英语
float computer; // 计算机
float average_score; // 平均分
} Student;
// 创建学生数据文件
void createStudentsFile(char* fileName) {
FILE* fp = fopen(fileName, "w");
if (fp == NULL) {
printf("Error: failed to create file %s.\n", fileName);
return;
}
// 写入五个学生的信息
fprintf(fp, "张三 85.0 75.0 90.0\n");
fprintf(fp, "李四 75.0 80.0 65.0\n");
fprintf(fp, "王五 90.0 95.0 80.0\n");
fprintf(fp, "赵六 65.0 70.0 75.0\n");
fprintf(fp, "钱七 80.0 85.0 95.0\n");
printf("Successfully created file %s.\n", fileName);
fclose(fp);
}
// 读取学生数据文件并计算平均分
void calculateAverageScore(char* fileName, Student* students, int num) {
FILE* fp = fopen(fileName, "r");
if (fp == NULL) {
printf("Error: failed to open file %s.\n", fileName);
return;
}
// 逐行读取文件内容,并计算平均分
char line[100];
int i = 0;
while (fgets(line, sizeof(line), fp)) {
sscanf(line, "%s %f %f %f", students[i].name,
&students[i].math, &students[i].english,
&students[i].computer);
students[i].average_score = (students[i].math +
students[i].english +
students[i].computer) / 3.0;
i++;
}
fclose(fp);
}
// 将学生数据写入文件
void writeStudentsToFile(char* fileName, const Student* students, int num) {
FILE* fp = fopen(fileName, "w");
if (fp == NULL) {
printf("Error: failed to create file %s.\n", fileName);
return;
}
// 写入每个学生的信息
for (int i = 0; i < num; i++) {
fprintf(fp, "%s %.1f %.1f %.1f %.1f\n", students[i].name,
students[i].math, students[i].english,
students[i].computer, students[i].average_score);
}
printf("Successfully wrote data to %s.\n", fileName);
fclose(fp);
}
int main() {
char fileName[FILENAME_LEN] = "student.txt";
int numStudents = 5;
// 创建学生数据文件
createStudentsFile(fileName);
// 读取学生数据文件并计算平均分
Student students[numStudents];
calculateAverageScore(fileName, students, numStudents);
// 将学生数据写入文件
writeStudentsToFile("out.txt", students, numStudents);
return 0;
}
```
这段代码会先创建一个名为 `student.txt` 的文件,用来存放五个学生的信息。接着,它会读取这个文件中的学生数据,并计算每个学生的平均分。最后,它将学生数据写入一个名为 `out.txt` 的文件中。
阅读全文