问题描述

当前我需要对当前输出的结果,进行持久化的存储,所以就需要用到了存文件的库fstream,并且希望是工程化的,也就是先定义h文件定义函数名字和类型,在通过同名的.cpp文件进行函数的实现

实现代码

首先定义DataIO.h文件

#ifndef DATAIO_H_INCLUDED
#define DATAIO_H_INCLUDED
/***  This Header contains the input and output of data.*/
#include<fstream>void storeFile(string path, int data[] , int len , int max_col);void storeFile(string path , int data_size , string sort_time);#endif // DATAIO_H_INCLUDED

第一个用于存储数组数据进入文件

  • path:存储文件路径,包括文件后缀名
  • data:数组数据
  • len:数组长度
  • max_col:文件中最大的行数,当达到max_col时,换行

第二个为:存储单个字符进入文件,方式为追加

  • path:存储文件路径,包括文件后缀名
  • 其他两个数据为需要存储的变量

定义.cpp文件实现

#include "DataIO.h"
#include<iostream>
#include<fstream>
#include<string>using namespace std;const string DATA_SIZE = "数据规模";
const string SORT_TIME = "排序所花时间";void dealOpenFile(ofstream & fout){if(!fout){cout << "文件打开错误,可能存在路径问题,请检查后重试" <<endl;}else{cout << "文件打开成功,正在输入数据..." << endl;}
}void outputSuccess(string path){cout << "已成功输出到文件" + path << endl << endl;
}void storeFile(string path , int data[] , int len , int max_col){ofstream fout(path);dealOpenFile(fout);int cnt = 0 ;if(fout){for(int i = 0 ; i < len ; i ++){fout << data[i] << "   " ;cnt ++;if(cnt == max_col){cnt = 0;fout << endl;}}outputSuccess(path);}fout.close();
}void storeFile(string path , int data_size , string sort_time){ofstream fout(path,ios::app); // 以追加模式打开dealOpenFile(fout);if(fout){fout << DATA_SIZE + ":" << data_size << "    " << SORT_TIME << ":" << sort_time << endl;outputSuccess(path);}
}

这里给出测试代码

#include <iostream>
#include<string>
#include<fstream>using namespace std;const string DATA_SIZE = "数据规模";
const string SORT_TIME = "排序所花时间";void dealOpenFile(ofstream & fout){if(!fout){cout << "文件打开错误,可能存在路径问题,请检查后重试" <<endl;}else{cout << "文件打开成功,正在输入数据..." << endl;}
}void outputSuccess(string path){cout << "已成功输出到文件" + path << endl << endl;
}void storeFile(string path , int data[] , int len , int max_col){ofstream fout(path);dealOpenFile(fout);int cnt = 0 ;if(fout){for(int i = 0 ; i < len ; i ++){fout << data[i] << "   " ;cnt ++;if(cnt == max_col){cnt = 0;fout << endl;}}outputSuccess(path);}fout.close();
}void storeFile(string path , int data_size , string sort_time){ofstream fout(path,ios::app);dealOpenFile(fout);if(fout){fout << DATA_SIZE + ":" << data_size << "    " << SORT_TIME << ":" << sort_time << endl;outputSuccess(path);}
}
int main()
{int data[10] = {8,3,6,2,4,5,7,1,9,0};storeFile("./data.txt",data,10,5);storeFile("./anotherData.txt",109,"109.3ms");storeFile("./anotherData.txt",129,"123.3ms");return 0;
}

结果截图

C++ 使用ofstream 存文件【工程化】相关推荐

  1. 【Git】Git 基础命令 ( 添加暂存文件 git add | 提交文件至版本库 git commit | 查看版本库状态 git status | 查询文件修改 git diff )

    文章目录 一.添加暂存文件 git add 二.提交文件至版本库 git commit 三.查看版本库状态 git status 四.查询文件修改 git diff 一.添加暂存文件 git add ...

  2. idea 暂存文件或idea切换分支代码不见了

    idea切换分支时,修改过的代码文件全部不见了 找了一下问题,切换分支时,idea自动会创建暂存文件, 点开,右边View --> 即可显示暂存文件. 点击Apply Stash 即可将暂存文件 ...

  3. 怎么讲d 盘里的软件弄到桌面_桌面如何存文件到D - 卡饭网

    Win7系统桌面禁存文件 Win7系统桌面禁存文件 部分人喜欢干净清爽的桌面,Win7系统的桌面能禁存放文件么? 一:①开始菜单中打开"运行"对话框,输入regedit后按&quo ...

  4. 解决百度网盘、微软网盘、Google网盘相互转存文件

    1.首先需要三个网盘账号(废话) 2.需要第三方工具MultCloud网盘管理,通过它相互转存文件 2.1 去这注册 https://www.multcloud.com/ 无需下载工具,在线转存 2. ...

  5. Python SolidWorks 二次开发---SolidWorks另存文件为其他格式

    Python SolidWorks 二次开发-SolidWorks另存文件为其他格式 Python SolidWorks 二次开发-SolidWorks另存文件为其他格式 文章目录 Python So ...

  6. PHP获取随机数据,匹配出内容,存文件

    一.流程 二.代码 三.文件内容 一.流程 1.getRandData()随机方法返回一条html数据 2.匹配出数据中的内容 3.判断文件是否存在 3.1.存在,则判断数据是否已存入文件 3.11. ...

  7. ESP8266 ArduinoIDE 闪存文件操作系统

    一.闪存文件系统基本操作 esp8266 的采用 SPIFFS 嵌入式文件系统,在内部 Flash 为 4M,其中 1M 用于存储程序,其他的空间有一部分用于系统,3M 中剩下的大部分空间可以用来存放 ...

  8. mongodb python 存文件_Python保存MongoDB上的文件到本地的方法介绍

    本文实例讲述了Python保存MongoDB上的文件到本地的方法.分享给大家供大家参考,具体如下: MongoDB上的文档通过GridFS来操作,Python也可以通过pymongo连接MongoDB ...

  9. git stash:暂存文件但不add,重新工作后再取回

    当程序文件开必到一半时,要做其它工作,而又没有必要git add当前文件,可以 用git stash方法: 例如:2.txt最新的commit是写到了77777777, 然后再写了6666666666 ...

最新文章

  1. linux查看某个端口是被哪个进程占用的
  2. AI生成手写数字 + 智能卡点切图
  3. android 变化字体,android 字体修改
  4. VTK:多数据点用法实战
  5. css固定表格表头(各浏览器通用)
  6. tcp的无延时发送_高并发架构的TCP知识介绍
  7. 本地添加Maven管理
  8. 理解SQL Server是如何执行查询的 (2/3)
  9. Win10 台式机机箱前置耳机插孔没声音如何修复
  10. ubuntu19.04下VirtualBox与虚拟机win7共享文件夹
  11. 炼数成金 mysql_MySQL DBA从小白到大神实战 MySQL运维DBA课程 炼数成金MySQL企业运维视频教程...
  12. 编程术语晦涩_晦涩的今日非主流提示-如何将Windows资源管理器文件复制/移动到“全部同意”或“全部否”...
  13. python怎么把ppt转成html,如何使用python把ppt转换成pdf
  14. linux抓bpdu包,用Python发送手工构建的BPDU(生成树协议包)
  15. FTP上传文件报错200 PORT command successful. Consider using PASV. 553 Could not create file.
  16. 20191207-CHKDSK命令修复磁盘教程
  17. 如何提高亚马逊排名?亚马逊排名规则有哪些?
  18. Django! 褪去浮华
  19. 计算机基础考点笔记-1
  20. Windows安装TensorFlow教程(国内源安装附上各大镜像网站网址)

热门文章

  1. gyp ERR find Python 解决方案
  2. python模拟简单充值系统_【自编】使用Python实现Dayz 玩家银行充值自动到账
  3. OrCAD error Subcircuit xxx used by X_U1 is undefined
  4. BLAS CBLAS 安装技巧
  5. 微信支付成功后回调失败
  6. java 长方体类_java实例_多态 [长方形类Rect长方体类Cub添加抽象类 Shape]
  7. python面向过程还是面向对象_python是面向对象还是面向过程?
  8. Gradle详解(Groovy)
  9. python根号怎么打出来手机_根号在手机中怎么打出?
  10. 开源项目学习方法ABC