---
title: 文件的读写
date: 2024-06-06T23:51:38Z
tags: []
---

​`scanf`​ 是针对标准输入的格式化语句  
​`printf`​ 是针对标准输出的格式化语句

​`fscanf`​ 是针对所有输入流的格式化语句  
​`fprintf`​ 是针对所有输出流的格式化语句

​`sscanf`​ 字符串转为格式化语句  
​`sprintf`​ 格式化语句转为字符串

​`EOF`​ 检查文件是否到尾部

1. 写入文件

   ```c
   size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)
   ```

2. 读取文件

   ```c
   size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)
   ```

   > ptr -- 这是指向要被写入的元素数组的指针。  
   > size -- 这是要被写入的每个元素的大小，以字节为单位。  
   > nmemb -- 这是元素的个数，每个元素的大小为 size 字节。  
   > stream -- 这是指向 FILE 对象的指针，该 FILE 对象指定了一个输出流。

3. 打开的文件中定位

```c
int fseek(FILE *stream, long int offset, int whence)
```

- 参数

  > stream -- 这是指向 FILE 对象的指针，该 FILE 对象标识了流。  
  > offset -- 这是相对 whence 的偏移量，以字节为单位。  
  > whence -- 这是表示开始添加偏移 offset 的位置。它一般指定为下列常量之一：

- 常量 描述

  ```c
  SEEK_SET 文件的开头
  SEEK_CUR 文件指针的当前位置
  SEEK_END 文件的末尾
  ```
