文件操作
文章目录
1文件操作 - 创建与写入数据
文件是什么
文件用于持久地存储数据。
何为持久:断电后,数据不消失。下次加电,可以读取。
文件的属性:
- 文件名 main.cpp
- 路径 D:\Cpp\Hello
- 长度, 以字节计算
- 内容
- 只读 / 读写
文件是什么
新建一个文本文件 hello.txt
写入
“hello”
(1)观察文件属性 | 大小
(2)用UltraEdit查看 , 文本方式 | 十六进制方式
结论:文件中的存储内容和内存一样,也是数字。
使用标准C函数操作文件
ANSI C中定义了文件操作的库函数:
#include <stdio.h>
fopen: 打开一个文件
fclose: 关闭文件
fwrite: 写入数据
fread: 读出数据
保存数据到文件
保存数据到文件的步骤:
(1) fopen: 打开文件
(2) fwrite: 写入数据
(3) fclose: 关闭文件
保存数据到文件
(1) fopen: 打开文件
FILE* fopen(const char filename, const char mode);
mode: 使用"wb" (w表示write, b表示binary)
c:\abc.txt : 全路径
c:\0\abc.txt
返回值: 文件指针 FILE
其中,不用关心FILE的具体类型,只需要知道它是一个指 针就行了。
保存数据到文件
(1) fopen: 打开文件
示例:
const char* filename = "c:/aaa.txt";
FILE* fp = fopen(filename, "wb" );
if(fp == NULL)
{
printf("failed to open file!\n");
return -1;
}
保存数据到文件
(2) fclose: 关闭文件
int fclose(FILE* stream);
参数: stream就是前面fopen的返回值
示例:
fclose(fp);
保存数据到文件
(3) fwrite: 写入数据
size_t fwrite(const void *buf,
size_t size, size_t count,
FILE *stream);
参数:
stream就是前面fopen的返回值
buf, 要写入的数据
size,总是传1
count, 字节数
返回值 :字节数
示例:
char buf[] = "hello";
fwrite(buf, 1, 5, fp