C++
liujingliang_pacs
学以致用
展开
-
stringstream 数字转字符串 出现逗号 解决
stringstream转换整数时可能会加逗号,如123456被转换成123,456,这个与本地化有关。原创 2022-12-28 14:16:20 · 529 阅读 · 0 评论 -
std::max() error C2589: ‘(‘ : illegal token on right side of ‘::‘ 解决办法
STL的numeric_limits::max()和VC6 min/max 宏冲突问题原创 2022-10-13 17:01:40 · 385 阅读 · 0 评论 -
解决boost::asio的WinSock.h has already been included
1、在包含Windows.h前定义宏WIN32_LEAN_AND_MEAN,就OK了(WIN32_LEAN_AND_MEAN表示不包含一些极少使用和偏门的资料)后来在网上查了下,原来是我包含了Windows.h头文件,而Windows.h头文件又包含了WinSock.h这个老东西。查了下抛出这个错误的boost代码,原来是定义了_WINSOCKAPI_,但没有定义_WINSOCK2API_2、在包含Windows.h前包含winsock2.h。3、在包含Windows.h前包含asio.hpp。...转载 2022-07-19 10:25:08 · 559 阅读 · 0 评论 -
QT文本编辑框右键菜单添加中文翻译
(1)使用Qt的单行和多行文本框时,右键菜单一直显示为英文,在中文环境下使用体验非常不好,我们需要将这些英文翻译为中文。Qt对于一部分语言做了上述右键菜单的翻译,这些翻译文件被保存在Qt安装路径类似于“5.8/mingw53_32/translations/qtbase_*.qm" 的文件中,但没有提供对应的中文翻译(即5.8/mingw53_32/translations/路径下找不到qtbase_zh_CN.qm文件)(2)通过研究得知,QT5并没有将文本框(QLineEdit、QTextEdit)转载 2022-03-29 15:00:51 · 1044 阅读 · 0 评论 -
Visual Studio 正则表达式搜索
以下是常用元字符原创 2022-03-26 21:29:13 · 639 阅读 · 0 评论 -
调用MFC CFileDialog 调试模式警告
调用如下代码 CFileDialog dlg(TRUE, 0, initFullPath.c_str(), OFN_HIDEREADONLY | OFN_ALLOWMULTISELECT, file_filter.c_str(), nullptr); if (dlg.DoModal() != IDOK) { return false; }调试模式下,弹出如下警告网上大佬给出的原因是:因为还有没有初始化MFC就调用了某些资源,导致的警告弹框;原创 2022-02-11 15:02:43 · 651 阅读 · 1 评论 -
C++中explicit关键字的使用
在C++中,我们有时可以将构造函数用作自动类型转换函数。但这种自动特性并非总是合乎要求的,有时会导致意外的类型转换,因此,C++新增了关键字explicit,用于关闭这种自动特性。即被explicit关键字修饰的类构造函数,不能进行自动地隐式类型转换,只能显式地进行类型转换。注意:只有一个参数的构造函数,或者构造函数有n个参数,但有n-1个参数提供了默认值,这样的情况才能进行类型转换。下面通过一段代码演示具体应用(无explicit情形): 1 /* 示例代码1 */ 2 class D转载 2022-02-11 11:12:38 · 81 阅读 · 0 评论 -
qmcConvert.cpp
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<io.h>#include<string>#include<iostream> #include<algorithm>using namespace std; int ...转载 2020-02-14 14:48:22 · 195 阅读 · 0 评论 -
STL
copyint main(){ std::vector ivec1, ivec2; ivec1.push_back(1); std::copy(ivec1.begin(), ivec1.end(), std::back_inserter(ivec2)); std::cout << ivec2.size(); return 0;}原创 2017-02-16 11:26:58 · 276 阅读 · 0 评论 -
C++语言新特性
循环遍历数组的方式 vector intArray = {1,2,3,4,5,6,7,8,9,10}; for (auto node : intArray) { std::cout << node << endl; }原创 2017-08-10 17:06:36 · 268 阅读 · 0 评论 -
fstream读写UNICODE文件
#include "stdafx.h"#include #include #include #include #include #include using namespace std;#include #include using std::vector;using std::string;/*codecvt_utf16的最后参数我使用的是little_endian,原创 2017-08-09 16:44:26 · 831 阅读 · 0 评论 -
VisualStudio 启动调试时总是提示此项目已经过期的解决方案
解决方法:1. 用记事本打开此项目的工程文件 *.vcxproj2. 找到其中所有包含的头文件 *.h 3. 确认列表中的文件是否存在. 若不存在, 则从该原创 2017-03-23 21:47:40 · 19887 阅读 · 4 评论 -
Printf 输出格式
1.转换说明符 %a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99) %c 字符 %d 有符号十进制整数 %f 浮点数(包括float和doulbe) %e(%E) 浮点数指数输出[e-(E-)记数法] %g(%G) 浮点数不显无意原创 2016-02-18 10:20:02 · 359 阅读 · 0 评论 -
浮点数取整方法
1. 直接赋值给整数变量。 如: int i = 2.5; 或 i = (int)2.5; 是x的整数部分。2. 使 用 floor函 数 。 floor(x)返回的是小于x的最大整数部分。 如: floor(2.5) = 2 floor(-2.5) = -3 floor()是向负无穷大舍入,floor(-10.5) ==原创 2016-02-18 10:24:09 · 12497 阅读 · 0 评论 -
UTF8与GBK字符编码之间的相互转换
UTF8与GBK字符编码之间的相互转换 C++ UTF8编码转换 CChineseCode一 预备知识1,字符:字符是抽象的最小文本单位。它没有固定的形状(可能是一个字形),而且没有值。“A”是一个字符,“€”(德国、法国和许多其他欧洲国家通用货币的标志)也是一个字符。“中”“国”这是两个汉字字符。字符仅仅代表一个符号,没有任何实际值的意义。2,字符集:字符集是字符的集合。例如原创 2016-02-18 10:21:30 · 3064 阅读 · 0 评论 -
std - locale - global(...) 执行时机
1. 进程的入口2. 不适合多次调用示例如下// dllmain.cpp : 定义 DLL 应用程序的入口点。#include "stdafx.h"#include using namespace std;BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_fo原创 2016-02-18 10:20:44 · 360 阅读 · 0 评论 -
Gdi+ 编译不过的问题
1. 若是DLL项目,则需要修改Stdafx.h,将如下语句注释掉 #define WIN32_LEAN_AND_MEAN // 从 Windows 头中排除极少使用的资料2. 添加gdi+的头文件,如下: #include #pragma comment(lib, "gdiplus.lib") using namespace Gdip原创 2016-02-18 10:19:20 · 326 阅读 · 0 评论 -
fread没有读完整个文件
最近写了一个读unicode文本的函数,是用fread函数读,但有时候不能读完,后来网上查了下,见下文:最近写一个程序,发现用fread读“.dat”文件时不能读完整个文件,后来用hex格式观察读文件退出位置的数字,才发现只要是读到0x1A时,fread就认为结束!后来看了MSDN后知道用text模式打开文件时,系统默认CTRL+Z为文件结束符,而0x1A刚好就是CTRL+Z的ASCII码。另原创 2016-02-18 10:18:16 · 544 阅读 · 0 评论