C++写二进制文件

std::ofstream fout("a.dat", std::ios::binary);
int nNum = 20;
std::string str("Hello, world");
fout.write((char*)&nNum, sizeof(int));
fout.write(str.c_str(), sizeof(char)*(str.size()));
fout.close();

C++读二进制文件

std::ifstream fin("a.dat", std::ios::binary);
int nNum;
char szBuf[256] = {0};
fin.read((char*)&nNum, sizeof(int));
fin.read(szBuf, sizeof(char) * 256);
std::cout << "int = " << nNum << std::endl;
std::cout << "str = " << szBuf << std::endl;
fin.close();

C++写文本文件

std::ofstream fout("b.dat"); // std::ofstream fout; fout.open("b.dat"); fout.precision(3);
int nNum = 20;
std::string str("Hello, world");
fout << nNum << " " << str << std::endl;
fout.close();

C++读文本文件

std::ifstream fin("b.dat");
int nNum;
char szBuf[256] = {0};
fin >> nNum >> szBuf;
std::cout << "int = " << nNum << std::endl;
std::cout << "str = " << szBuf << std::endl;
fin.close();

文件的打开模式

文件操作时,如果不显示指定打开模式,文件流类将使用默认值。

在<fstream> 中定义了如下打开模式和文件属性:

ios::app // 从后面添加

ios::ate // 打开并找到文件尾

ios::binary // 二进制模式I/O(与文本模式相对)

ios::in // 只读打开

ios::out // 写打开

ios::trunc // 将文件截为 0 长度

可以使用位操作符 OR 组合这些标志,比如

ofstream logFile("log.dat", ios::binary | ios::app);

--------------------------------------------

C写二进制文件

void DataWrite_CMode()
{//准备数据double pos[200];for(int i = 0; i < 200; i ++ )pos[i] = i ;//写出数据FILE *fid;fid = fopen("binary.dat","wb");if(fid == NULL){printf("写出文件出错");return;}int mode = 1;printf("mode为1,逐个写入;mode为2,逐行写入\n");scanf("%d",&mode);if(1==mode){for(int i = 0; i < 200; i++)fwrite(&pos[i],sizeof(double),1,fid);}else if(2 == mode){fwrite(pos, sizeof(double), 200, fid);}fclose(fid);
}

C读二进制文件

void DataRead_CMode()
{FILE *fid;fid = fopen("binary.dat","rb");if(fid == NULL){printf("读取文件出错");return;}int mode = 1;printf("mode为1,知道pos有多少个;mode为2,不知道pos有多少个\n");scanf("%d",&mode);if(1 == mode){double pos[200];fread(pos,sizeof(double),200,fid);for(int i = 0; i < 200; i++)printf("%lf\n", pos[i]);free(pos);}else if(2 == mode){//获取文件大小fseek (fid , 0 , SEEK_END);       long lSize = ftell (fid);  rewind (fid); //开辟存储空间int num = lSize/sizeof(double);double *pos = (double*) malloc (sizeof(double)*num);  if (pos == NULL)  {  printf("开辟空间出错");   return; } fread(pos,sizeof(double),num,fid);for(int i = 0; i < num; i++)printf("%lf\n", pos[i]);free(pos);     //释放内存}fclose(fid);
}

C写文本文件

void TxtWrite_Cmode()
{//准备数据int index[50] ;double x_pos[50], y_pos[50];for(int i = 0; i < 50; i ++ ){index[i] = i;x_pos[i] = rand()%1000 * 0.01 ;y_pos[i] = rand()%2000 * 0.01;}//写出txtFILE * fid = fopen("txt_out.txt","w");if(fid == NULL){printf("写出文件失败!\n");return;}for(int i = 0; i < 50; i ++ ){fprintf(fid,"%03d\t%4.6lf\t%4.6lf\n",index[i],x_pos[i],y_pos[i]);}fclose(fid);
}

C读文本文件

void TxtRead_Cmode()
{FILE * fid = fopen("txt_out.txt","r");if(fid == NULL){printf("打开%s失败","txt_out.txt");return;}vector<int> index;vector<double> x_pos;vector<double> y_pos;int mode = 1;printf("mode为1,按字符读入并输出;mode为2,按行读入输出;mode为3,知道数据格式,按行读入并输出\n");scanf("%d",&mode);if(mode == 1){//按字符读入并直接输出char ch;       //读取的字符,判断准则为ch不等于结束符EOF(end of file)while(EOF!=(ch= fgetc(fid)))printf("%c", ch); }else if(mode == 2){char line[1024];memset(line,0,1024);while(!feof(fid)){fgets(line,1024,fid);printf("%s\n", line); //输出}}else if(mode == 3){//知道数据格式,按行读入并存储输出int index_tmp;double x_tmp, y_tmp;while(!feof(fid))  {  fscanf(fid,"%d%lf%lf\n",&index_tmp, &x_tmp, &y_tmp);index.push_back(index_tmp);x_pos.push_back(x_tmp);y_pos.push_back(y_tmp);}for(int i = 0; i < index.size(); i++)printf("%04d\t%4.8lf\t%4.8lf\n",index[i], x_pos[i], y_pos[i]);}fclose(fid);
}

--------------------------------------------

C读取二进制图像数据

FILE *fp;
string path="../img"+to_string(index)+".png";
fp=fopen(path.c_str(),"rb");
if(!fp)
{cout<<"error!"<<endl;return -1;
}
int head;
fread(&head,sizeof(head),1,fp);
uint8_t *img_addr=new uint8_t[480*640];
fread(img_addr,480*640,1,fp);
Mat img=Mat(480,640,CV_8U,img_addr);
fclose(fp);

参考:

C++读写二进制文件

C/C++读写文本文件、二进制文件

(C/C++)(读/写)(二进制文件/文本文件)相关推荐

  1. 文本文件写java_Java 读/写文件文本文件的示例

    /* * 简单的读/写文本文件的示例 * 这里包含了三个例子,即 * 1. 将文件读入到内存(这里是StringBuffer)的例子 * 2. 将内容中的文本写到文件 * 3. 将一个文件的内容读出来 ...

  2. 文本文件 java_简单的用java实现读/写文本文件的示例

    简单的用java实现读/写文本文件的示例 更新时间:2008年07月26日 13:09:26   作者: 同时也展示了如果从输入流中读出来内容写入输出流中(仅限文本流) 三个例子可以独立存在,所以根据 ...

  3. java fileinputreader_java BufferedReader,FileInputStream实现文本文件读/写

    /* * 简单的读/写文本文件的示例 * 这里包含了三个例子,即 * 1. 将文件读入到内存(这里是StringBuffer)的例子 * 2. 将内容中的文本写到文件 * 3. 将一个文件的内容读出来 ...

  4. C++之文件操作探究(四):读文件——二进制文件

    相关博文:C++之文件操作探究(一):写文件--文本文件 相关博文:C++之文件操作探究(二):读文件--文本文件 相关博文:C++之文件操作探究(三):写文件--二进制文件 相关博文:C++之文件操 ...

  5. C++之文件操作探究(一):写文件——文本文件

    相关博文:C++之文件操作探究(一):写文件--文本文件 相关博文:C++之文件操作探究(二):读文件--文本文件 相关博文:C++之文件操作探究(三):写文件--二进制文件 相关博文:C++之文件操 ...

  6. Numpy简易教程7——读/写文件

    读/写文件 NumPy的文件读/写主要有二进制的文件读/写和文件列表形式的数据读/写两种形式.学会读/写文件是利用NumPy进行数据处理的基础.NumPy提供了若干函数,可以把结果保存到二进制或文本文 ...

  7. java 编辑二进制文件_java写二进制文件,不能直接编辑,该怎么操作?

    java写二进制文件,不能直接编辑,该怎么操作? 关注:138  答案:3  mip版 解决时间 2021-01-14 21:48 提问者醒不来的梦 2021-01-14 07:45 我现在想做写一个 ...

  8. android otg读写文件,Android USB Host在USB设备OTG中读/写文件

    我正在编写Android设备是主机的应用程序.用户将USB驱动器连接到Android设备,我的应用程序将在USB驱动器中写入一些文本文件.文本文件的路径就像USB_DRIVE/Data/APP_NAM ...

  9. mpi4py 并行读/写 numpy npy 文件的方法

    本文从本人简书博客同步过来 在上一篇中我们介绍了 mpi4py 中获得高性能 I/O 的方法和建议,下面我们将介绍 mpi4py 并行读/写 numpy npy 文件的方法. 在使用 mpi4py 写 ...

最新文章

  1. php中的extract函数
  2. 计算机视觉编程——图像聚类
  3. Ubuntu21.04下安装Jupyter notebook
  4. 无公网ip远程访问调试-内网穿透工具
  5. python os.path.split_Python中split()和os.path.split()
  6. DenyHosts安装及配置
  7. PyCharm 默认运行 unittest
  8. Linux中的readelf命令
  9. 浅析iOSApp签名原理及流程
  10. pythonscrapy爬虫ip代理池_Scrapy 框架插件之 IP 代理池
  11. 任正非谈管理--读书笔记
  12. java web后台生成随机数字字母验证码
  13. 运用supervisor管理thinkqueue 和swoole推送
  14. android外接USB扫码器应用闪退,外接U盘正常的情况
  15. 新手指南:到国外域名注册商注册域名
  16. 29款英文SEO优化工具介绍
  17. 论互联网安全的重要性
  18. 批量删除docker容器和镜像
  19. 英语语法篇 - 省略
  20. 华为OD机试 - 二进制差异数(Java JS Python)

热门文章

  1. 计算机辅助抗体设计,Discovery Studio
  2. SiC模块ASC800N1200DCS12(丹弗斯DCM)助力高速发展的纯电动汽车 (BEV)、插电式混合动力汽车 (PHEV) 和混合动力汽车 (HEV)
  3. 在线租赁房屋小程序开发功能介绍
  4. MaxCompute数据导入导出
  5. Linux-RAID详解及配置
  6. android 实现表格横向混动_「PHEVREEV」插电混动与增程系统技术特点解析:节油原理与性能...
  7. 关于最近做的一些题的归档吧
  8. java 日语文件,标点符号全角转半角
  9. URP——后期处理特效——环境遮挡Ambient Occlusion
  10. 无刷无霍尔BLCD电机控制