C++ – 开源字符串格式化库fmt环境配置与使用
1 fmt开发环境配置 fmt是一个开源的格式化库,为C和C++提供快速、安全的字符串格式化方案。 fmt github地址:https://github.com/fmtlib/fmt fmt 官网:https://fmt.dev/latest/index.html 1.1 下载和开发环境配置 去g…
- C++
- 2024-01-30
C++ – 从文件和字符串流中逐行读取数据
C++从文本文件中逐行读取文本的方式比较常见,在有些情况下需要从字符串中逐行读取数据,比如说有一个csv文件数据存储在一个std::string中,我们需要逐行解析这个csv文件的内容,这个时候就需要使用到stringstream。 1 从文件中逐行读取文本 #include <iostrea…
- C++
- 2024-01-22
CMake – 设置安装目录和修改默认安装目录CMAKE_INSTALL_PREFIX
1 CMake设置安装目录 CMAKE_INSTALL_PREFIX为CMake内置变量,用于指定安装时的目录,在UNIX系统的默认安装路径为/usr/local,而在Windows系统上的默认安装路径为c:/Program Files/${PROJECT_NAME}。 这个CMAKE_INSTAL…
- C++
- 2024-01-17
C++ – 使用libhv构建http服务器,实现get请求返回图片
1 基于libhv构建http服务器,实现get请求返回图片 假设获取图片接口为:http://127.0.0.1:8080/image ,通过使用libhv构建一个http服务器,实现访问该接口获取图片。 示例代码为: #include <iostream> #include "ope…
- C++
- 2024-01-16
C++ – 使用libhv构建http服务器,实现get和post接口返回json数据
1 基于libhv构建http服务器 1.1 libhv官方提供的简单示例 libhv提供了简单的构建http服务器的代码示例 #include "hv/HttpServer.h" int main() { HttpService router; router.GET("/ping", [](Htt…
- C++
- 2024-01-16
C++中的中文字符编码
转载自:C++ 中的中文编码 ,如侵联删 中文编码是一个复杂而繁琐的问题,在 C++ 程序设计中尤是如此。近期笔者在工作中对这一点颇有体会,故而在总结一些经验。 1 ASCII码 ASCII码,全称American Standard Code for Information Interchange,…
- C++
- 2024-01-16
C++ – 详解std::promise
1 详解std::promise std::promise提供了在异步线程函数中存储值并在当前线程获取值的机制,为获取某个线程函数中的值提供了便利的方法。 原型 template< class R > class promise; template< class R > cl…
- C++
- 2024-01-15
C++ – 详解std::future
1 详解std::future 1.1 std::future 类模板std::future提供了一种访问异步操作结果的机制,这种异步操作可以是std::promise、std::packaged、std::async。 std::future这个名字起得就很有意思,字面上future就是未来的意思…
- C++
- 2024-01-12
C++ – 详解std::async
1 详解std::async 1.1 std::async 作用 std::async可以异步在一个独立线程中运行线程函数F,并且返回一个存储线程函数F运行结果的std::future,简而言之就是C++提供的高级异步接口。 函数原型 template< class Function, cla…
- C++
- 2024-01-12
C++ – 实现一个小但美的线程池
1 线程池 1.1 线程池需要实现的功能 线程池需要支持以下几个基本功能: 核心线程数(core_threads):线程池中拥有的最少线程个数,初始化时就会创建好的线程,常驻于线程池 最大线程个数(max_threads):线程池中拥有的最大线程个数,max_threads>=core_thread…
- C++
- 2024-01-11
C++ – 使用Crypto++对字符串进行md5加密和md5校验
1 使用Crypto++对字符串进行md5加密 使用Crypto++计算字符串的md的md5值,需要使用到Crypto++以下类: StringSource: 用于从字符串或二进制数据中读取数据 HashFilter: 表示一个用于计算哈希的过滤器。它接受一个哈希函数作为参数,这里是 md5 md5…
- C++
- 2024-01-08
C++ – 使用Crypto++计算文件md5值
1 使用Crypto++计算文件的md5值 使用Crypto++计算文件的md的md5值,需要使用到Crypto++以下类: FileSource: 用于从文件中读取数据 HashFilter: 表示一个用于计算哈希的过滤器。它接受一个哈希函数作为参数,这里是 md5 md5: 用于计算输入数据的 …
- C++
- 2024-01-08