由于直接利用标准C库和字符串,所以头文件只需要两个即可
#include <stdio.h>
#include <string.h>
在编写代码之前,我们先引入几个标准C库中的函数
FILE *fopen(const char *path, const char *mode);(文件路径,打开模式)
打开模式又分为以下几种模式:
r 只读方式打开一个文本文件
rb 只读方式打开一个二进制文件
w 只写方式打开一个文本文件
wb 只写方式打开一个二进制文件
a 追加方式打开一个文本文件
ab 追加方式打开一个二进制文件
r+ 可读可写方式打开一个文本文件
rb+ 可读可写方式打开一个二进制文件
w+ 可读可写方式创建一个文本文件
wb+ 可读可写方式生成一个二进制文件
a+ 可读可写追加方式打开一个文本文件
ab+ 可读可写方式追加一个二进制文件
其中,open和fopen的区别:
前者属于低级IO,后者是高级IO。
前者返回一个文件描述符,后者返回一个文件指针。
前者无缓冲,后者有缓冲。
前者与 read, write 等配合使用, 后者与 fread, fwrite等配合使用。
后者是在前者的基础上扩充而来的,在大多数情况下,用后者。
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);(内容缓冲区,单个字符大小,字符个数,哪个文件(指针));
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);(与2一致)
int fseek(FILE *stream, long offset, int whence);(文件指针,偏移值,所处位置)
===========================================================
现要求,通过指令创建一个文本文档,并通过代码实现文件的读写
代码奉上:
![](https://i-blog.csdnimg.cn/blog_migrate/ec31ec63a23dfd70ce06a45748ec84b9.png)
fopen的打开模式命令符是一个指针,写入时需要用“”括起来
运行指令及结果如下:
![](https://i-blog.csdnimg.cn/blog_migrate/021432ac1dde7b20cc924d39e1f0efcd.png)
============================================================
同样的,用标准C库写入结构体到文件,操作也大差不差了,上代码:
![](https://i-blog.csdnimg.cn/blog_migrate/0ba5fdc7c0263b8527b199027599f40b.png)
运行结果如下:
![](https://i-blog.csdnimg.cn/blog_migrate/7a8102f42a982ba7f8848e8b43962c33.png)