C++ 使用ofstream 存文件【工程化】
问题描述
当前我需要对当前输出的结果,进行持久化的存储,所以就需要用到了存文件的库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 存文件【工程化】相关推荐
- 【Git】Git 基础命令 ( 添加暂存文件 git add | 提交文件至版本库 git commit | 查看版本库状态 git status | 查询文件修改 git diff )
文章目录 一.添加暂存文件 git add 二.提交文件至版本库 git commit 三.查看版本库状态 git status 四.查询文件修改 git diff 一.添加暂存文件 git add ...
- idea 暂存文件或idea切换分支代码不见了
idea切换分支时,修改过的代码文件全部不见了 找了一下问题,切换分支时,idea自动会创建暂存文件, 点开,右边View --> 即可显示暂存文件. 点击Apply Stash 即可将暂存文件 ...
- 怎么讲d 盘里的软件弄到桌面_桌面如何存文件到D - 卡饭网
Win7系统桌面禁存文件 Win7系统桌面禁存文件 部分人喜欢干净清爽的桌面,Win7系统的桌面能禁存放文件么? 一:①开始菜单中打开"运行"对话框,输入regedit后按&quo ...
- 解决百度网盘、微软网盘、Google网盘相互转存文件
1.首先需要三个网盘账号(废话) 2.需要第三方工具MultCloud网盘管理,通过它相互转存文件 2.1 去这注册 https://www.multcloud.com/ 无需下载工具,在线转存 2. ...
- Python SolidWorks 二次开发---SolidWorks另存文件为其他格式
Python SolidWorks 二次开发-SolidWorks另存文件为其他格式 Python SolidWorks 二次开发-SolidWorks另存文件为其他格式 文章目录 Python So ...
- PHP获取随机数据,匹配出内容,存文件
一.流程 二.代码 三.文件内容 一.流程 1.getRandData()随机方法返回一条html数据 2.匹配出数据中的内容 3.判断文件是否存在 3.1.存在,则判断数据是否已存入文件 3.11. ...
- ESP8266 ArduinoIDE 闪存文件操作系统
一.闪存文件系统基本操作 esp8266 的采用 SPIFFS 嵌入式文件系统,在内部 Flash 为 4M,其中 1M 用于存储程序,其他的空间有一部分用于系统,3M 中剩下的大部分空间可以用来存放 ...
- mongodb python 存文件_Python保存MongoDB上的文件到本地的方法介绍
本文实例讲述了Python保存MongoDB上的文件到本地的方法.分享给大家供大家参考,具体如下: MongoDB上的文档通过GridFS来操作,Python也可以通过pymongo连接MongoDB ...
- git stash:暂存文件但不add,重新工作后再取回
当程序文件开必到一半时,要做其它工作,而又没有必要git add当前文件,可以 用git stash方法: 例如:2.txt最新的commit是写到了77777777, 然后再写了6666666666 ...
最新文章
- linux查看某个端口是被哪个进程占用的
- AI生成手写数字 + 智能卡点切图
- android 变化字体,android 字体修改
- VTK:多数据点用法实战
- css固定表格表头(各浏览器通用)
- tcp的无延时发送_高并发架构的TCP知识介绍
- 本地添加Maven管理
- 理解SQL Server是如何执行查询的 (2/3)
- Win10 台式机机箱前置耳机插孔没声音如何修复
- ubuntu19.04下VirtualBox与虚拟机win7共享文件夹
- 炼数成金 mysql_MySQL DBA从小白到大神实战 MySQL运维DBA课程 炼数成金MySQL企业运维视频教程...
- 编程术语晦涩_晦涩的今日非主流提示-如何将Windows资源管理器文件复制/移动到“全部同意”或“全部否”...
- python怎么把ppt转成html,如何使用python把ppt转换成pdf
- linux抓bpdu包,用Python发送手工构建的BPDU(生成树协议包)
- FTP上传文件报错200 PORT command successful. Consider using PASV. 553 Could not create file.
- 20191207-CHKDSK命令修复磁盘教程
- 如何提高亚马逊排名?亚马逊排名规则有哪些?
- Django! 褪去浮华
- 计算机基础考点笔记-1
- Windows安装TensorFlow教程(国内源安装附上各大镜像网站网址)
热门文章
- gyp ERR find Python 解决方案
- python模拟简单充值系统_【自编】使用Python实现Dayz 玩家银行充值自动到账
- OrCAD error Subcircuit xxx used by X_U1 is undefined
- BLAS CBLAS 安装技巧
- 微信支付成功后回调失败
- java 长方体类_java实例_多态 [长方形类Rect长方体类Cub添加抽象类 Shape]
- python面向过程还是面向对象_python是面向对象还是面向过程?
- Gradle详解(Groovy)
- python根号怎么打出来手机_根号在手机中怎么打出?
- 开源项目学习方法ABC