C++11 文件读写(vs2019 安装配置boost库)
一、VS2019 安装配置boost库
1、库下载
boost v1.75下载: Boost Downloads
boost v1.70下载:Version 1.70.0
本文使用boost v1.70 ,vs使用2019
解压boost库
2、使用VS tool中developer Command终端工具对解压之后的文件boostrap.bat进行编译
进入解压后的boost目录,执行 bootstrap.bat 命令
生成如下两个文件:
在命令行终端执行如下命令:注意vs2019对应 14.2
bjam.exe --toolset=msvc-14.2 architecture=x86 address-model=64 link=static --build-type=complete --with-system --with-thread --with-date_time --with-filesystem --with-serialization
3、vs2019 配置环境
新建vs2019 C++项目,并添加boost依赖库 >点击菜单栏 项目——>属性——>选择VC++目录,在包含目录 和 库目录添加以上下2个路径:
配置安装完成。
二、C++ 文件读写
2.1 文件目录及创建 boost::filesystem
boost::filesystem是Boost C++ Libraries中的一个模块,主要作用是处理文件(Files)和目录(Directories)。
使用头文件
#include "boost/filesystem.hpp"
boost::filesystem::create_directory(''/root/mytest") ; 创建目录
boost::filesystem::path myPath = ''/root/mytest";
boost::filesystem::exists() ; 判断是否存在
boost::filesystem::create_directory() 创建目录
应用举例:
#include <iostream>
#include <functional>
#include "boost/filesystem.hpp"
int main()
{boost::filesystem::path path("/test/test1"); //初始化 boost::filesystem::path old_cpath = boost::filesystem::current_path(); //取得当前程序所在文件夹boost::filesystem::path parent_path = old_cpath.parent_path();//取old_cpath的上一层父文件夹路径 boost::filesystem::path file_path = old_cpath / "file"; //path支持重载/运算符if (boost::filesystem::exists(file_path)) //推断文件存在性 {std::string strPath = file_path.string();int x = 1;}else{//文件夹不存在; boost::filesystem::create_directory(file_path); //文件夹不存在。创建 }boost::filesystem::path new_file_path = file_path / "test.txt";if (boost::filesystem::is_regular_file(new_file_path)) //推断是否为普通文件{auto sizefile = boost::filesystem::file_size(new_file_path); //文件大小(字节)std::cout << "file size = " << sizefile;}}
2.2 写文件 std::ofstream
在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的。
在C++中,对文件的操作是通过stream的子类fstream(file stream)来实现的。文件有关系的输入/输出类主要在头文件<fstream>中被定义。在这个头文件中主要定义了3个类。由这3个类控制对文件的各种输 入/输出操作,它们分别是ifstream、ofstream、fstream。其中基类是fstream
,而ifstream
是对于输入特性进行拓展的继承类。ofstream
就是对于输出特性进行拓展的继承类。
2.1 打开文件
使用fstream类中的成员函数open()
void open(const char* filename,int mode,int access);
filename: 要打开的文件名
mode: 要打开文件的方式
ofstream 默认是以输出方式打开文件,若文件不存在,则自动创建
access: 打开文件的属性打开文件的方式
// ofstream constructor.
#include <fstream> // std::ofstreamint main () {std::ofstream ofs ("test.txt", std::ofstream::out);ofs << "lorem ipsum";ofs.close();return 0;
}
指定路径下,写文件,采用覆盖的策略:
std::string fileName =/bin/test.txt ;
try {std::ofstream ofstr(fileName);//文件不存在则创建if (!ofstr.is_open()) {cout <<"error"<<endl;return false;}ofstr << "写入内容" << '\n';ofstr.close();
}
catch(...)
{
}
写二进制文件流
sfileName = "123.bin";std::ofstream ofstr(sfileName, std::ofstream::out | std::ios_base::binary);
if (!ofstr.is_open()) {}
char *data ="qsasssl\n";
ofstr.write(data, sizeof(char)*7);ofstr.close();
2.3 读文件 std::ifstream
std::string path = "/test.txt";
std::string temp;
std::ifstream infile(path);
if(!infile.is_open())
{std::cout << "open error";
}while(getline(infile,temp))
{}
infile.close();
参考文献:
【1】boost::filesystem::path 用法:boost::filesystem总结 - Lilu1223 - 博客园
【2】vs2019 安装boost库: VS2019配置C++ boost库 - 牛犁heart - 博客园
【3】boost::filesystem经常使用使用方法具体解释 :boost::filesystem经常使用使用方法具体解释 - yxysuanfa - 博客园
C++11 文件读写(vs2019 安装配置boost库)相关推荐
- VS2015安装配置boost库
反反复复搞了几次,终于好了!在此,特意写了自认为最全的步骤,希望你们安装顺利! 下面介绍完整安装boost库的方法: 1.首先到boost官网去下载最新的版本的boost库: http://www.b ...
- 详解“FTP文件传输服务”安装配置实例
"FTP文件传输服务"安装配置实例 家住海边喜欢浪:zhang789.blog.51cto.com 目录 简介 ftp工作原理 常见的FTP服务 Vsftpd服务器的安装 Vsft ...
- python 2.7.11 linux,Python-2.7.11+Django-1.9.4安装配置
Python-2.7.11+Django-1.9.4安装配置 1.去python官网下载2.7的最新版本 1.1 解压Python-2.7.11.tgz tar xvf Python-2.7.11.t ...
- windows7 + Qt(MSVC2017) + VS2019安装配置
windows7 + Qt(MSVC2017) + VS2019安装配置
- QT下配置Boost库
QT下配置Boost库 前言 当使用别人的QT工程,复制到自己机器上,发现报如下错误 从QtCreator报错来看是找不到Boost相关文件和库 问题解决 首先去官网下载Boost库 编译boost库 ...
- Win10 环境通过gcc手动编译配置boost库 for LibreCAD
Win10 环境通过gcc手动编译配置boost库 for LibreCAD 0. 说明 1. 手动配置编译boost库 2. 将库文件和头文件添加到项目中 0. 说明 在win10环境下,通过Qt编 ...
- Visual Studio 2013 配置Boost库。 如何编译和选择,遇到无法打开文件“libboost_thread-vc120-mt-gd-1_58.lib的解决办法
1.首先你需要去下载最新的boost,www.boost.org ,我下的1.58版本. 2.解压到文件夹,我解压到了E:\boost. 3.在开始菜单打开Visual Studio Tools,, ...
- VS2008下直接安装使用Boost库1.46.1版本号
Boost库是一个可移植.提供源码的C++库,作为标准库的后备,是C++标准化进程的发动机之中的一个. Boost库由C++标准委员会库工作组成员发起,当中有些内容有望成为下一代C++标准库内容.在C ...
- VS2008下直接安装使用Boost库1 46 1版本
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Boos ...
最新文章
- 偷看日历?9款 APP 涉嫌过度获取权限 1
- 【Jenkins】持续集成、持续交付与持续部署
- mysql 临时表增加主键_MySQL之重建表
- 对TypeScript进行研究
- 应用框架的设计与实现学习手札系列(持续更新)
- mysql 记录操作_MySQL 记录操作
- 利用IS61LV12816实现DSP28335的内存扩展
- 发布Library到JCenter
- php 的绝对引用,excel单元格引用分为哪三种
- latex制作幻灯片模板
- SqlServer 远程主机强迫关闭了一个现有的连接
- iphone/ios兼容问题
- 第五章. 可视化数据分析图表—常用图表的绘制2—直方图,饼形图
- 【matlab】输入一字符串,字母大写变小写,小写变大写。
- Unity Webgl内嵌网页页面
- 多项式, FTT, NTT小结
- CGO arm 树莓pi下的交叉编译
- java怎么获取索引值,Java 实例 - 获取向量元素的索引值
- 在word插入钢筋符号
- 关于MATLAB2019a的三相全控桥整流电路的画法学习
热门文章
- 了不起的Node.js: 将JavaScript进行到底
- 设计模式——开闭原则
- overflow:hidden属性
- 解决VS中的 无法启动程序,系统找不到指定文件 问题
- linux提权参考方法
- Windows 10 (Multiple Editions), Version 1607
- HC-SR04超声波测距模块的高精度使用方法
- 微软的是怎样进行测试的(转)
- Easy-Es核心功能深度介绍
- 关于onCreate(Bundle savedInstanceState, PersistableBundle persistentState)