c语言保存和读取文件(编程艺术C和)

  欢迎关注我的公众号 [极智视界],获取我的更多笔记分享,下面我们就来聊聊关于c语言保存和读取文件?接下来我们就一起去了解一下吧!

c语言保存和读取文件(编程艺术C和)

c语言保存和读取文件

  欢迎关注我的公众号 [极智视界],获取我的更多笔记分享

  O_o   >_<   o_O   O_o   ~_~   o_O

  本文介绍一下 C 和 C 读取和保存 bin 文件的方法。

  bin 文件的存取在调试网络推理定位问题的时候可能会经常用到,如在这个框架里网络输出和预期对不上,经常需要把这个网络里的前处理输出、网络推理输出搬到另外的框架里走一遍,来确定是前处理有问题,还是网络推理有问题,还是后处理有问题。这里分享一下 C 语言和 C 读取和保存特征数据为 bin 文件的方法。其实大部分情况可以用 C 搞定,但如 darknet 这种纯 C 框架可能就需要用 C 实现。

1、C 读取和保存 bin 文件1.1 C 读取

/// C 读取bin文件 int getBinSize(char *path) { int size = 0; File *fp = fopen(path, "rb"); if (fp) { fseek(fp, 0, SEEK_END); size = ftell(fp); fclose(fp); } printf("\npath=%s,size=%d \n", path, size); return size; } void readBin(char *path, char *buf, int size) { FILE *infile; if ((infile = fopen(path, "rb")) == NULL) { printf("\nCan not open the path: %s \n", path); exit(-1); } fread(buf, sizeof(char), size, infile); fclose(infile); }

1.2 C 保存

/// C 保存bin文件 void writeBin(char *path, char *buf, int size) { FILE *outfile; if ((outfile = fopen(path, "wb")) == NULL) { printf("\nCan not open the path: %s \n", path); exit(-1); } fwrite(buf, sizeof(char), size, outfile); fclose(outfile); }

1.3 C 调用

// read binFile char filePath[] = "./demo.bin"; int size = GetBinSize(filePath); char *buf = (char*)malloc(size); readBin(filePath, buf, size); float *fbuf = (float*)buf; // write binFile char saveFilePath[] = "./demo_saved.bin" writeBin(saveFilePath, buf, size) free(buf)

2、C 读取和保存 bin 文件2.1 C 读取

/// C 读取bin文件 void getBinSize(std::string path) { int size = 0; std::ifstream infile(path, std::ifstream::binary); infile.seekg(0, infile.end); int size= infile.tellg(); infile.seekg(0, infile.beg); infile.close(); printf("\npath=%s,size=%d \n", path, size); return size; } void readBin(std::string path, char *buf, int size) { std::ifstream infile(path, std::ifstream::binary); infile.read(static_cast<char *>(buf), size); infile.close(); }

2.2 C 保存

/// C 保存bin文件 void writeBin(std::string path, char *buf, int size) { std::ofstream outfile(path, std::ifstream::binary); outfile.write((char *)(buf), size); outfile.close(); }

2.3 C 调用

// read binFile std::string filePath= "./demo.bin"; int size = GetBinSize(filePath); char *buf= new char[size]; readBin(filePath, buf, size); float *fbuf = reinterpret_cast<float *>(buf); // write binFile std::string saveFilePath= "./demo_saved.bin"; writeBin(saveFilePath, buf, size); delete buf;

  以上介绍了 C 语言和 C 读、存 bin 文件的方法,有需要的同学可以拿去使用。

【公众号传送】

《【编程艺术】C 和 C 读存 bin 文件方法》

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页