fopen() 函数用来打开一个文件,它的原型为:

FILE *fopen(char *filename, char *mode);

filename为文件名(包括文件路径),mode为打开方式,它们都是字符串。fopen() 会获取文件信息,包括文件名、文件状态、当前读写位置等,并将这些信息保存到一个FILE类型的结构体变量中,然后将该变量的地址返回。

FILE是在stdio.h头文件中定义的一个结构体,用来保存文件信息。

如果希望接收 fopen() 的返回值,就需要定义一个 FILE 类型的指针。例如:

FILE *fp = fopen("demo.txt", "r");

表示以“只读”方式打开当前目录下的 demo.txt 文件,并使 fp 指向该文件,这样就可以通过 fp 来操作 demo.txt 了。fp 通常被称为文件指针。

写入内容到txt文件

FILE* fp = fopen("model_vertices_recalc.txt", "a+");//r(read),w(write),a(append)
fprintf(fp, "This is testing for fprintf...\n");//第二个形参类型:const char* _Format
fprintf(fp, "This is testing for %d fprintf...\n",5);//第二个形参支持两种方式
fputs("This is testing for fputs...\n", fp);//这种方式不支持写入变量
fputc('M', fp);//这个是写入字符
fclose(fp);
return 0;

从txt文件读取内容

FILE* fp = NULL;
char buff[255];fp = fopen("model_vertices_recalc.txt", "r");fgets(buff, 255, (FILE*)fp);//读取一行字符串
printf("0: %s\n", buff);fscanf(fp, "%s", buff);//遇到空格停止
printf("1: %s\n", buff);
int i = 0;
sscanf(buff, "%d", &i);//将buff中的数据写入到int类型中
cout << i << endl;fgets(buff, 255, (FILE*)fp);//读取整行,从上面那个空格出读取剩余的整行
printf("2: %s\n", buff);fgets(buff, 255, (FILE*)fp);
printf("3: %s\n", buff);
fclose(fp);

写入数据到二进制文件

    FILE* fp = NULL;fp = fopen("test.bin", "wb+");for (int i = 0; i < 10; i++){fwrite((void*)&i, sizeof(int), 1, fp);//将10个int数据一次写入文件}fclose(fp);

从二进制文件中读取数据

    FILE* fp = NULL;fp = fopen("test.bin", "rb");int a[10];for (int i = 0; i < 10; i++){fread((void*)&a[i], sizeof(int), 1, fp);//读取上面写入的int给到数组a}for (size_t i = 0; i < 10; i++){cout << a[i] << endl;}fseek(fp, sizeof(int)*3, SEEK_SET);//对文件指针重新定位,读取第四个数int b;fread((void*)&b, sizeof(int), 1, fp);cout << b << endl;fclose(fp);

c++将txt中的数据保存为二进制文件

    //==============================//将txt中的数据保存为二进制文件,txt文件中每行有四个数值,将其保存为float数据//存入bin文件内String vertices_file = "D:\\model_vertices_recalc.txt";std::ifstream fv(vertices_file, std::ios::in);std::ofstream outFile("TwoPairCoordinate.bin", std::ios::out | std::ios::binary);if (!outFile){std::cerr << "failed to open the file." << std::endl;return -1;}float cor;std::vector<float> vertices;while (!fv.eof()){fv >> cor;outFile.write(reinterpret_cast<const char*>(&cor), sizeof(float));}fv.close();outFile.close();

C/C++:读写文件相关推荐

  1. Go 学习笔记(49)— Go 标准库之 io/ioutil(读写文件、获取目录下的文件和子目录、创建临时目录和文件)

    1. 简要概述 import "io/ioutil" 包 io/ioutil 实现一些 I/O 实用程序函数. 2. 相关函数 2.1 func ReadAll func Read ...

  2. c语言格式化写入文件大小,利用C语言格式化读写文件

    "在C语言中进行格式化读写文件"按照字面意思通常大家都会理解为将读写文件进行格式化的操作,那么到底我们是不是真的将读写文件进行格式化的操作呢?下面课课家笔者就为大家简单介绍C语言中 ...

  3. python生成试卷制卷系统_Python 读写文件 小应用:生成随机的测验试卷文件

    去年学习了python的读写文件部分,了解了python读写的常用模块os.shelve,今天准备把课后作业试着自己做一下 目标:1)生成35份试卷.每个试卷有50道选择题 2)为了防止有学生作弊,需 ...

  4. java.io几种读写文件的方式

    一.Java把这些不同来源和目标的数据都统一抽象为数据流. Java语言的输入输出功能是十分强大而灵活的. 在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操作 ...

  5. C#读写文件:编码和转换(string和byte[]转换为例)

    读写配置文件不单单将内容write或read,有时也会进行内容编码转换等操作. 例 string和byte[]转换 这里是我曾经碰到过的问题,当时的情况是配置文件是一个移动设备提供的,主要是由移动设备 ...

  6. C# 读写文件方法总结

    使用FileStream读写文件   文件头:   using System; using System.Collections.Generic; using System.Text; using S ...

  7. python以读写方式打开文件_python读写文件操作详细介绍【传智播客】

    Python文件的打开或创建可以使用函数open().该函数可以指定处理模式,设置打开的文件为只读.只写或可读写状态.open()的声明如下所示. open(file, mode='r', buffe ...

  8. php中并发读写文件冲突的解决方案(文件锁应用示例)

    php中并发读写文件冲突的解决方案(文件锁应用示例) 参考文章: (1)php中并发读写文件冲突的解决方案(文件锁应用示例) (2)https://www.cnblogs.com/wellsoho/p ...

  9. java 追加写入hdfs_java操作之HDFS-创建-删除目录-读写文件-追加写文件

    Hadoop文件操作之HDFS,创建.删除目录,读写文件,追加写文件 package hadoop.hadoop_demo; import java.io.InputStream; import ja ...

  10. python文件对象提供了3个读方法、分别是-Python读写文件模式和文件对象方法实例详解...

    本文实例讲述了Python读写文件模式和文件对象方法.分享给大家供大家参考,具体如下: 一. 读写文件模式 利用open() 读写文件时,将会返回一个 file 对象,其基本语法格式如: open ( ...

最新文章

  1. javaScript小问题,托拽元素,获得当前鼠标的坐标
  2. glide_在Android中将数据绑定与Glide结合使用
  3. 一辈子都有用的的75句话
  4. 【项目实战】运营商数据信息的特征挖掘(调研)
  5. 数据结构与算法(3)——树(二叉、二叉搜索树)
  6. 我的zencart 安装流程
  7. linux配置文件、日志文件全备份
  8. 劳心者、劳力者或CEO、CTO各得其所,足矣
  9. MFC无标题栏对话框移动的处理方法
  10. ping通网关 ping不通dns
  11. Tensorflow卷积神经网络
  12. Mac 使用命令行工具解压和压缩 rar 文件
  13. 面试官:如何进行 JVM 调优(附真实案例)
  14. RNA editing restricts hyperactive ciliary kinases文章翻译
  15. mib浏览器_大众汽车的第二代MIB信息娱乐系统图解
  16. 数学在计算机领域的应用,浅析数学在计算机领域中的重要性
  17. 与10.110.12.29mask255.255.255.224属于同一网段的主机ip地址是
  18. 割平面法(Cutting Planes )
  19. 视频点播播放器如何实现加密下载?
  20. 好嗨游戏:TapTap9.9分,《鸡你太美》这到底是什么魔鬼游戏?

热门文章

  1. 假如把支付宝存储服务器炸了,里面的钱还在么?
  2. JEECG-P3首个开源插件诞生!CMS网站插件 Jeecg-p3-biz-cms1.0版本发布!
  3. 【JEECG技术博文】online自定义模板的使用
  4. JEECG Online Coding 开发操作图解
  5. JEECG v3.0.beta发布,基于代码生成器的智能开发平台
  6. Spring 框架基础(02):Bean的生命周期,作用域,装配总结
  7. 网站高并发优化性能调优总结
  8. 文本挖掘预处理之TF-IDF
  9. 网站XML格式的网站地图(sitemap)格式
  10. 怎样改动SharePoint管理中心的语言