C++ – nlohmann json序列化输出字符串时指定输出浮点数小数点后几位
1 nlohman json序列化输出字符串 1.1 存在的问题 nlohman json的json对象中有浮点数时,序列化之后的json字符串中浮点数过长,比如 #include <iostream> #include "nlohmann/json.hpp" int main() { …
- C++
- 2024-08-10
C++ – 为内存中音频裸流数据增加wav文件头
1 C++为内存中的pcm音频数据增加wav文件头 最近面临这样的一个任务,在C++层使用tts进行语音合成之后需要将合成音频的base64字符串实时传递到web端,使用js在web端进行播放,而js在web端需要wav音频流,直接传递音频裸流到js中会播放出错。 所以需要先将C++生成的音频裸流加…
- C++
- 2024-07-13
C++ – 排查illegal instruction崩溃问题以及解决方法
1 C++程序出现illegal instruction 崩溃 1.1 程序出现illegal instruction的场景 这几天在修复一个C++程序的bug,这个程序上线之后在极少数客户的机器上出现了崩溃,通过加载dump文件排查,发现是出现了illegal instruction的报错,然后通…
- C++
- 2024-07-03
C++ – 捕获构造函数初始化列表中出现的异常
1 C++捕获构造函数初始化列表中的异常 1.1 什么是构造函数初始化列表中的异常 简单描述下,现在有一个A类,其中的一个成员变量是B类对象的指针,现在A类是通过初始化列表的方式new了一个B类对象,但是在B类对象构造的时候出现了bad_alloc错误,直接导致程序初始化过程中crash,这个问题非…
- C++
- 2024-07-02
C++ – 类的构造函数、拷贝构造函数、拷贝赋值、移动构造函数、移动赋值函数的形式与区别
1 C++类 1.1 C++类的构造函数和赋值运算符 一个完整的C++类会有以下几种特殊的函数,主要是构造函数和赋值运算符,其中构造函数包括构造函数、拷贝构造函数、移动构造函数,赋值运算符包括拷贝赋值、移动赋值, 构造函数 :ClassName() 拷贝构造函数:ClassName(const Cl…
- C++
- 2024-02-05
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