表6-1 CRT文件操作函数 | |
函数 |
含义 |
fopen |
打开指定文件名的文件 |
fread |
从文件中读取指定长度的数据 |
fwrite |
向文件中写入指定的数据 |
fclose |
关闭文件 |
feof |
判断是否达到文件结尾 |
fgetc |
从文本文件中读取一个字符 |
fgets |
从文本文件中读取一个字符串 |
fputc |
向文本文件中写入一个字符 |
fputs |
向文本文件中写入一个字符串 |
- FILE *fopen(
- const char *filename,
- const char *mode
- );
表6-2 fopen文件操作方式 | |
标志 |
含义 |
r |
读模式,如果文件不存在则会失败 |
w |
写模式,如果文件已存在则会清空其内容 |
a |
追加模式,写入的内容追加在原有内容之后,
如果文件不存在则会自动创建 |
r+ |
读写模式(文件必须存在) |
w+ |
读写模式,如果文件已存在则会清空其内容 |
a+ |
读+追加模式 |
t |
文本方式 |
b |
二进制方式 |
ccs=ENCODING |
文件编码方式,可指定ENCODING 为
UTF-8、UTF-16LE、UNICODE |
- fopen("newfile.txt", "rw, ccs=UNICODE");
- size_t fread(
- void *buffer,
- size_t size,
- size_t count,
- FILE *stream
- );
- size_t fwrite(
- const void *buffer,
- size_t size,
- size_t count,
- FILE *stream
- );
(点击查看大图)图6-2 文件输入/输出流 |
- ofstream out("test.out");
- out << "hello, world!";
(点击查看大图)图6-3 fstream与iostream |
表6-3 fstream文件操作函数 | |
函数 |
含义 |
open |
打开文件 |
close |
关闭文件 |
is_open |
判断当前文件是否已打开 |
- void open(
- const char *_Filename,
- ios_base::openmode _Mode = ios_base::in | ios_base::out,
- int _Prot = (int)ios_base::_Openprot
- );
- void open(
- const char *_Filename,
- ios_base::openmode _Mode
- );
- void open(
- const wchar_t *_Filename,
- ios_base::openmode _Mode = ios_base::in | ios_base::out,
- int _Prot = (int)ios_base::_Openprot
- );
- void open(
- const wchar_t *_Filename,
- ios_base::openmode _Mode
- );
表6-4 ios_base::openmode标志 | |
标志 |
含义 |
ios::app |
追加模式(append),新输出的内容追加在原文件内容的后面 |
ios::ate |
文件打开后定位到文件尾,ios:app就包含此属性 |
ios::binary |
以二进制方式打开文件,默认的方式是文本方式 |
ios::in |
文件以输入方式打开 |
ios::out |
文件以输出方式打开 |
ios::trunc |
截断模式(truncate),如果文件存在,则把文件长度设为0 |
ios::nocreate |
如果文件不存在则不创建 |
ios::noreplace |
如果文件已存在则不替换 |