c语言文件读取并写入结构体
时间: 2023-11-08 11:57:40 浏览: 144
以下是一个简单的C语言程序,演示如何从文件中读取数据并将其写入结构体:
```
#include <stdio.h>
typedef struct {
int id;
char name[50];
float salary;
} Employee;
int main() {
FILE *fp;
Employee e;
fp = fopen("employees.txt", "r");
if (fp == NULL) {
printf("Error: cannot open file.\n");
return -1;
}
while (fscanf(fp, "%d %s %f", &e.id, e.name, &e.salary) != EOF) {
printf("ID: %d, Name: %s, Salary: %.2f\n", e.id, e.name, e.salary);
}
fclose(fp);
return 0;
}
```
这个程序假设有一个名为“employees.txt”的文本文件,包含员工的ID、姓名和薪水,每行一个员工。程序打开文件,然后使用一个循环从文件中读取一行数据,并将其存储在一个Employee结构体中。最后,程序打印出每个Employee的信息。
相关问题
C语言文件写入读出结构体
以下是一个简单的例子,演示了如何在C语言中将结构体写入文件,并从文件中读取结构体。假设我们有一个结构体Person,包含姓名和年龄两个成员变量。
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct {
char name[20];
int age;
} Person;
int main() {
FILE *fp;
Person p1 = {"Alice", 25};
Person p2;
// 打开文件,以二进制方式写入
if ((fp = fopen("person.dat", "wb")) == NULL) {
printf("Cannot open file.\n");
exit(1);
}
// 将结构体写入文件
fwrite(&p1, sizeof(Person), 1, fp);
// 关闭文件
fclose(fp);
// 打开文件,以二进制方式读取
if ((fp = fopen("person.dat", "rb")) == NULL) {
printf("Cannot open file.\n");
exit(1);
}
// 从文件中读取结构体
fread(&p2, sizeof(Person), 1, fp);
// 输出读取到的结构体
printf("Name: %s\nAge: %d\n", p2.name, p2.age);
// 关闭文件
fclose(fp);
return 0;
}
```
在这个例子中,我们使用了fopen()函数来打开文件,并使用了fwrite()函数将结构体写入文件。要从文件中读取结构体,我们使用了fread()函数。最后,我们使用fclose()函数关闭文件。注意,我们在打开文件时使用了"wb"和"rb"来指定以二进制方式写入和读取文件。
用c语言将结构体写入文件
以下是使用C语言将结构体写入文件的示例:
```c
#include <stdio.h>
// 定义结构体
struct Student {
char name[20];
int age;
float score;
};
int main() {
// 创建结构体对象
struct Student stu;
// 打开文件
FILE *file = fopen("student.txt", "wb");
// 写入结构体数据
strcpy(stu.name, "John");
stu.age = 18;
stu.score = 90.5;
fwrite(&stu, sizeof(struct Student), 1, file);
// 关闭文件
fclose(file);
return 0;
}
```
这个示例中,我们首先定义了一个名为`Student`的结构体,包含了姓名、年龄和分数三个成员变量。然后在`main`函数中创建了一个`Student`类型的结构体对象`stu`。接着使用`fopen`函数打开一个名为`student.txt`的文件,并以二进制写入模式打开。然后使用`fwrite`函数将`stu`结构体对象的内存映像作为字节流写入文件中。最后使用`fclose`函数关闭文件。
请注意,这只是一个简单的示例,实际应用中可能需要更复杂的结构体和更多的数据操作。另外,在读取结构体数据时,需要使用`fread`函数进行读取操作。
阅读全文