IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C/C++ FILE 和 fstream 用法详解 -> 正文阅读

[C++知识库]C/C++ FILE 和 fstream 用法详解

FILE 是C语言自带的文件操作结构体, fstream 是C++的文件操作类,两者使用都比较常见,且用法比较类似,再次记录。

功能FILEfstream
打开文件FILE* fopen(char *path, char *mode)
说明:mode为打开文件的方式,比如以读或写的模式打开文件。
“r”:以只读模式打开文件,文件必须存在,否则报错
“w”:写入模式,如果文件不存在,则新建;如果文件存在,则覆盖重写
“a”:追加写入模式,与“w”类似,但在已有文件后续写
"r+":以读写模式打开文件,文件必须存在
“w+”:以读写模式打开文件,有则重写,无则新建
“a+”:读写模式,有则追加,无则新建
“b”:以二进制打开文件
“t”:文本模式打开文件,默认为该模式
fstream fp(char *path, int mode)
或者,fstream fp; fp.open(char *path, int mode);
说明:mode为打开文件模式
ios::in:读取模式,如果文件不存在,则打开失败,与“r”一样
ios::out:写入模式,有则重写,无则新建,与“w”一样
ios::app:追加写入模式,有则追加,无则新建,与“a”一样
ios::ate:以读写模式打开文件,并将文件指针指向文件末尾
ios::trunc:打开文件时,清空文件内容
ios::binary:以二进制模式打开文件
读取一个字符int fgetc(FILE *fp)
说明:fp 为文件指针。fgetc() 读取成功时返回读取到的字符,读取到文件末尾或读取失败时返回EOF。
int obj.get()
说明:与fgetc的用法一样,obj为fstream类的实例化对象
写入一个字符int fputc(int c, FILE *fp)
说明:fputc() 写入成功时返回写入的字符,失败时返回 EOF,返回值类型为 int 也是为了容纳这个负数
obj.put(int c)
读取字符串fgets ( char *str, int n, FILE *fp )
说明:str 为字符数组,n 为要读取的字符数目,fp 为文件指针,将读取到的字符串存入str中。此外,如果遇到换行符,则只输出一行字符串,即一次最多读一行
obj.getline(char* buf, int bufSize)
obj.getline(char* buf, int bufSize, char delim)
说明:第一种用法与 fgets 一样,第二种则表示读取n个字符,遇到delim则直接输出(不包含delim),相当于把换行符换成了任意可选字符,比较特殊的是’\0’,他会直接输出 n 个字符
写入字符串int fputs( char *str, FILE *fp )
说明:将字符串 str 写入文件
任意读取size_t fread ( void *ptr, size_t size, size_t count, FILE *fp )
说明:ptr 指向接收数据的首地址,size 表示每个数据块的字节数,count表示数据块数,fp为FILE指针。注意,fread 以字节数来读取数据,而不是字符数。
obj.read(char* buffer, int count)
说明:buffer 表示读取数据的存储位置,count 表示读取的字节数,相比较fread, 使用起来要简洁一些,但是功能还是一样的
任意写入size_t fwrite ( void* ptr, size_t size, size_t count, FILE* fp )
说明:ptr 为待写入的数据首地址,size*count表示字节数,如果写入成功的话,返回写入的字节数
obj.write(char* buffer, int count)
说明:buffer 表示待写入数据,count 表示字节数
读取文件指针位置fgetpos(FILE* fp, fpos_t fpos)
说明:返回当前文件的指针位置,并保存在fpos_t类型变量中。这里有一个疑问,FILE好像只有一个文件指针,没有分读写指针
int obj.tellg()
int obj.tellp()
说明:tellg返回文件读指针位置,tellp 返回文件写指针位置
移动文件指针int fseek ( FILE* fp, long offset, int origin )
fsetpos(FILE* fp, fpos_t fpos)
seekg (int offset, int mode)
seekp (int offset, int mode)
说明:offest 为相对偏移,mode 为指针起始位置,mode 有三种选择,分别为 ios::beg,ios::cur,ios::end,分别表示文件开头,当前指针位置,文件尾
关闭文件fcloseclose
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-09-30 00:33:07  更:2022-09-30 00:33:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 4:47:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码