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

功能 FILE fstream
打开文件 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,分别表示文件开头,当前指针位置,文件尾
关闭文件 fclose close

C/C++ FILE 和 fstream 用法详解的更多相关文章

  1. linux管道命令grep命令参数及用法详解---附使用案例|grep

    功能说明:查找文件里符合条件的字符串. 语 法:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>] ...

  2. install 命令用法详解

    install 命令用法详解 http://man.linuxde.net/install install命令的作用是安装或升级软件或备份数据,它的使用权限是所有用户.install命令和cp命令类似 ...

  3. linux dmesg命令参数及用法详解(linux显示开机信息命令)

    linux dmesg命令参数及用法详解(linux显示开机信息命令) http://blog.csdn.net/zhongyhc/article/details/8909905 功能说明:显示开机信 ...

  4. linux sed命令参数及用法详解

    linux sed命令参数及用法详解 http://blog.csdn.net/namecyf/article/details/7336308 1. Sed简介 sed 是一种在线编辑器,它一次处理一 ...

  5. linux curl用法详解

    linux ‍‍curl用法详解 ‍‍curl的应用方式,一是可以直接通过命令行工具,另一种是利用libcurl库做上层的开发.本篇主要总结一下命令行工具的http相关的应用, 尤其是http下载方面 ...

  6. 教程-Delphi中Spcomm使用属性及用法详解

    Delphi中Spcomm使用属性及用法详解 Delphi是一种具有 功能强大.简便易用和代码执行速度快等优点的可视化快速应用开发工具,它在构架企业信息系统方面发挥着越来越重要的作用,许多程序员愿意选 ...

  7. linux dd命令参数及用法详解---用指定大小的块拷贝一个文件(也可整盘备份)

    linux dd命令参数及用法详解---用指定大小的块拷贝一个文件 日期:2010-06-14 点击:3830 来源: 未知 分享至:            linux dd命令使用详解 dd 的主要 ...

  8. lsof 命令用法详解

    lsof 命令用法详解 作用 用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP.UDP).找回/恢复删除的文件.是十分方便的系统监视工具,因为lsof命令需要访问核心内存和各种文件,所 ...

  9. Hadoop生态圈-zookeeper的API用法详解

    Hadoop生态圈-zookeeper的API用法详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.测试前准备 1>.开启集群 [yinzhengjie@s101 ~] ...

  10. Linux Shell脚本入门--wget 命令用法详解

    Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...

随机推荐

  1. 慢sql_查询条件加了函数导致索引失效

    问题背景:生产环境查询很慢,通过skywaking全链路监控发现/get请求相关的一个sql为慢sql,慢的原因在于查询字段使用了加解密函数(  CONVERT(AES_DECRYPT(UNHEX(` ...

  2. 网络图片转base64

    /**            * 网络图片转base64            * @param src            * @return            * @throws Excep ...

  3. DC约束笔记

    关于get_pins get_cells get_ports等的定义 关于建立保持与max/min的关系 2.setup time和hold time 建立时间(setup time)是指在触发器的时 ...

  4. git 提示 fatal: Authentication failed for....

    在我们进行clone 或 pull 或 push的时候,出现这个问题,先想一下是不是自己的账号密码是不是改了 一般情况下通常需要重新重置一下验证设置 执行以下命令: git config --syst ...

  5. Linux编译安装中的--prefix

    本文主要说明--prefix参数的作用,其主要用在编译安装源代码应用中的./configure环节. 1.源码安装一般包括几个步骤:配置(configure),编译(make),安装(make ins ...

  6. (0617 ) centos7运行脚本提示: 没有那个文件或目录 :No such file or directory

    https://blog.csdn.net/hehuihh/article/details/88174007 之前也 遇到: https://www.cnblogs.com/fancy2333/p/1 ...

  7. CNN模型踩坑记录

    刚刚在跑textCNN的模型,加载了字典后,在同样的输入下模型的输出一直在变化,先发现损失函数一直在变化,不停debug之后发现是模型的输出一直在变化,在模型输入一直不变下模型输出不同,最后发现是模型 ...

  8. Day21:尝试脱离相同ip连接

    今日完成的任务: 1.尝试使用组员打包的jar,在cmd中配置后端. 但是最终还是出现了部分问题导致无法连接. 2.在gitlab中更新最终的前端代码(就不放图了). 明日计划: 1.研究一下jar包 ...

  9. 事务与spring事务

    事务 事务的特性(ACID) 原子性(Atomicity): 标识将事务中所有的操作进行捆绑层一个不可分割的单元格,计对事务所有进行的数据库修改等操作,要么全部执行,要么就是全部失败隔离性(Isola ...

  10. 如何在winform打包时带上sqlite数据库

    sqlite数据库下载及使用:https://blog.csdn.net/Yyuanyuxin/article/details/105508886sqlite数据库可视化工具-- DB.Browser ...