c语言怎么把书籍信息写入二进制文件
时间: 2023-12-15 19:04:12 浏览: 188
可以使用 C 语言中的文件操作函数将书籍信息写入二进制文件。以下是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
struct book {
char title[50];
char author[50];
int year;
};
int main() {
struct book my_book;
strcpy(my_book.title, "The Great Gatsby");
strcpy(my_book.author, "F. Scott Fitzgerald");
my_book.year = 1925;
FILE *fp;
fp = fopen("books.dat", "wb"); // 打开二进制文件进行写操作
if (fp == NULL) {
printf("Error opening file\n");
return 1;
}
fwrite(&my_book, sizeof(struct book), 1, fp); // 将结构体写入文件
fclose(fp); // 关闭文件
return 0;
}
```
在上面的示例代码中,我们定义了一个结构体 `book` 来存储书籍信息,然后使用 `fwrite` 函数将结构体写入打开的二进制文件中。在写入完成后,我们使用 `fclose` 函数关闭文件。
相关问题
C语言如何读取和写入二进制文件?
在C语言中,读取和写入二进制文件通常需要使用标准库中的文件操作函数,包括`fopen()`、`fwrite()`、`fclose()`等。以下是一个简单的例子:
**读取二进制文件:**
```c
#include <stdio.h>
int main() {
FILE* file = fopen("binary_file.bin", "rb"); // rb 表示二进制模式读取
if (file == NULL) {
printf("Failed to open the file.\n");
return 1;
}
char buffer[100]; // 假设你想读取100字节的数据
size_t bytes_read = fread(buffer, sizeof(char), 100, file);
if (bytes_read != 100) {
printf("Error reading data from the file.\n");
} else {
printf("Data read successfully: %s\n", buffer); // 输出读取的内容
}
fclose(file);
return 0;
}
```
**写入二进制文件:**
```c
#include <stdio.h>
int main() {
FILE* file = fopen("binary_file.bin", "wb"); // wb 表示二进制模式写入
if (file == NULL) {
printf("Failed to open the file.\n");
return 1;
}
char data[] = {0x01, 0x02, 0x03, ...}; // 你要写入的二进制数据
size_t bytes_written = fwrite(data, sizeof(char), sizeof(data), file);
if (bytes_written != sizeof(data)) {
printf("Error writing to the file.\n");
} else {
printf("Data written successfully.\n");
}
fclose(file);
return 0;
}
```
记住在完成文件操作后关闭文件以释放资源。
c语言结构体数组写入二进制文件
你可以使用以下步骤将C语言结构体数组写入二进制文件:
1. 定义一个结构体,其中包含你想要保存的数据。例如:
```c
typedef struct {
int id;
char name[20];
float score;
} Student;
```
2. 创建一个结构体数组,并初始化数据。例如:
```c
Student students[3] = {
{1, "Alice", 95.5},
{2, "Bob", 87.0},
{3, "Charlie", 78.5}
};
```
3. 打开一个文件,以二进制写入模式打开。例如:
```c
FILE* file = fopen("students.bin", "wb");
if (file == NULL) {
printf("无法打开文件\n");
return -1;
}
```
4. 将结构体数组写入文件。例如:
```c
fwrite(students, sizeof(Student), 3, file);
```
这里的参数依次是:结构体数组的首地址、每个结构体的大小、结构体的个数、文件指针。
5. 关闭文件。例如:
```c
fclose(file);
```
现在,你的结构体数组已成功写入二进制文件 "students.bin" 中。
阅读全文