
C++
王桑的一天
最省电的语言。
酒醉无人问,病卧自煎熬。生时不逢春,死亦落蓬蒿。
展开
-
驼峰命名法与下划线命名法之争
变量命名法则原创 2022-11-04 13:34:18 · 1826 阅读 · 1 评论 -
spdlog 封装为 DLL
spdlog 封装的 dll ,不用再依赖 spdlog 头文件原创 2022-09-30 16:06:12 · 2005 阅读 · 2 评论 -
[C++] double 精度丢失问题
文章目录场景错误方案1错误方案2正确方案场景double 保留8位小数,且四舍五入错误方案1typedef long long int64;int main(){ double v1 = 5726.867366095; double v2 = 5837.754018494999; const int64 N = pow(10, 8); double newV1 = (int64)(round(v1 * N)) / double(N); double new原创 2022-03-22 14:53:33 · 7612 阅读 · 1 评论 -
[C/C++] 解析命令行参数, 形如 -a
int main(int argc, char *argv[]){ int option_a = 0, option_b = 0; while (*++argv != NULL && **argv == '-') { switch (*++*argv) { case 'a': option_a = atoi(*++argv); break; case 'b':原创 2022-03-09 14:39:54 · 447 阅读 · 0 评论 -
[C++]结构体声明方式决定内容是否初始化
typedef struct Test { int score; std::string name; std::vector<int> arr;} Test;typedef struct Test2 { Test2(); int score; std::string name; std::vector<int> arr;} Test;int main(){ Test t; // 成员不会初始化, 初值是内存残留值 Test* tp1 = new Te原创 2022-03-01 13:33:15 · 657 阅读 · 0 评论 -
[C++]void* 类型指针能否使用 delete 释放空间
void* 类型指针能否使用 delete 释放空间?答案是取决于指向的对象:// 只包含基本类型typedef struct A { char name[32]; int age; double score;} A;// 包含指针和对象typedef struct B { char *name; int age; double score; std::string addr;} B;// 与 B 一样包含对象typedef struct C { char name[3原创 2022-02-23 16:37:59 · 2302 阅读 · 0 评论 -
[C++] 程序运行时设置 Windows 终端窗口参数
C++程序运行时设置Windows终端窗口参数程序运行时设置Windows终端窗口参数不可选定(导致程序暂停)字符集改为UTF-8, 以显示中文字符字体, 以支持中文显示窗口宽度int main(){ SetConsoleOutputCP(65001); // 使用 UTF-8 字符集 DWORD mode; CONSOLE_FONT_INFOEX info = { 0 }; info.cbSize = sizeof(info); info.dwFo原创 2021-06-30 13:23:13 · 2246 阅读 · 0 评论 -
[C++] boost 异步日志, 程序结束时导致日志尚未写入文件
使用boost日志模块, 为了不影响程序性能, 使用异步方式. 这样一来, 程序结束时, 日志队列尚有未写入文件的日志消息. 导致日志不完整.解决:void MyLog::stopLogging(){ boost::shared_ptr< logging::core > core = logging::core::get(); core->flush();}在 main函数最末尾调用此函数, 等待写入日志文件完成再退出.int main(){ /* yo原创 2021-03-16 15:19:06 · 461 阅读 · 0 评论 -
[C++]Boost log 限制日志文件大小 和 数量
使用过 python 日志模块, 滚动设置很好用, 能限制日志文件数量 , 不至于长时间运行爆掉硬盘 .网上找了一圈, 也没找到想要的结果, 有人还自己实现了限制文件数量…太麻烦了最后自己试出来了, 分享一下:MyLog::MyLog(){ _fileCount = 4; _fileSize = 1; _logLevel = boost::log::trivial::severity_level::info; FMT = "%Y-%m-%d %H:%M:%S";}原创 2021-01-12 17:52:01 · 1824 阅读 · 0 评论