自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (1)
  • 收藏
  • 关注

原创 Linux下使用宏定义判断系统架构和系统类型

在linux下使用如下命令通常,在构建时使用 #ifdef xxx最为方便:对于 32 位 ARM平台,使用arm对于 64 位 ARM平台,使用aarch64对于 32 位 x86平台,使用i386对于 64 位 x86平台,使用x86_64请注意:32 位 X86 称为 __i386__,而不是__x86__# if(defined __arm__) ||(defined __aarch64__) // arm平台 cout

2023-11-21 21:24:47 857

原创 Qt xml解析之QXmlStreamReader

自QT4.3版本开始,QT提供了两个新类来读写XML:QXmlStreamReader 和 QXmlStreamWriter。顾名思义,QXmlStreamReader用于读取XML,QXmlStreamWriter用于写入XML。这两个类都使用流的方式操作xml,比起使用DOM和SAX解析xml,这是最快最方便的操作xml的方法。

2023-08-28 22:26:48 1750

原创 浅谈正则表达式——C++正则替换引起的性能下降

不用不知道,正则虽然处理文本很强,但用错了地方,可能带来负面效果,coding就是从这个坑出来,掉进另一个坑里,这其中的乐趣,大概就是爬上坑的过程吧哈哈。

2022-12-01 23:13:21 1244 1

原创 剖析STL map运算符重载[]——已经删除的元素是从哪里多出来的?

C++的STL很强大,需要注意的细节也有很多,就像这次不了解map的[]运算符会重新生成一个元素,导致走了很多冤枉路。特别在此记录,分享给更多的人,少踩坑!

2022-09-17 12:22:50 436

原创 解决error: invalid operands of types ‘const char [6]‘ and ‘const char [6]‘ to binary ‘operator+‘

在使用C++中的字符串时,习惯性的把两个使用""括起来的字符串使用+连接,结果报错意思是对两个const char*类型的操作数进行+运算是非法的,本来想着两个字符串能够像c++中的string一样进行连接,结果与自己想的大相径庭。

2022-09-10 01:20:30 15997

原创 shell脚本快速统计项目代码行数

最近突然想看看正在开发的项目一共有多少行代码,但是项目又比较大,手动去计算太麻烦了。就想到了shell脚本,只用给它一个路径,等待脚本统计结果即可。

2022-07-03 11:42:50 485

原创 快速在Linux上安装windows consola字体

俗话说,工欲善其事,必先利其器,以前在Linux下使用Qt creator写C++代码时,IDE自带的字体感觉都不好看,我自己写代码觉得字体最适合,就想着把windows下的字体用到linux上,几经折腾,终于在linux上用上了。...

2022-06-18 22:22:37 617

原创 sstream redeclared with public access compiler error

文章目录场景剖析解决方法场景在gtest测试中,由于要测试非public成员,于是重新定义了“private”关键字,如下#define private public结果编译时遇到下面的问题:剖析这种宏定义的方式,改变了private的作用范围,会导致其他头文件中的private被重定义。具体可参考stackoverflow上的解释(sstream-redeclared-with-public-access-compiler-error)解决方法1.使用#undef在包含系统头文件之前的

2022-05-22 17:18:13 220

原创 玩转C++单元测试之快速上手gtest

文章目录1.gtest简介2.gtest原理3.gtest安装3.1使用dnf进行安装3.2编译gtest项目源码4.gtest内置测试相关的宏5.gtest断言6.自定义测试失败信息输出7.gtest demo7.1简单用法7.2作为测试类使用7.2.1定义一个要被测试的类7.2.2定义测试类7.3执行所有测试用例8.gtest测试类的私有成员8.1加宏编译8.2 FRIEND_TEST8.3使用pimpl重构被测代码9.gtest-demo git链接1.gtest简介gtest是一个跨平台的(Li

2022-04-23 18:29:14 3269 2

原创 最详细的Centos7 gcc4.9升级gcc10

文章目录1.准备源码包2.安装GMP3.安装MPFR4.安装MPC5.安装GCC106.GCC版本更新6.1备份旧版本gcc6.2为gcc10创建软链接6.3替换libstdc++.so.6附录最近编译gtest源码时,由于gcc版本太低,编译报错。看到gtest里面写的要求gcc5.0以上版本,于是我直接升级到了gcc10,可以使用更多新特性。1.准备源码包安装gcc10,下面的几个源码包必不可少gcc10下载地址:https://mirrors.aliyun.com/gnu/gcc/gcc-

2022-04-23 11:07:40 3929 2

原创 C/C++时间字符串和时间戳的相互转化

用到的函数主要有strftime、strptime 、localtime 、mktime。名词解释:时间戳:是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。时间字符串:形如2021-12-01 12:00:00size_t strftime(char *s,size_t maxsize,char *format,const struct tm *timeptr)作用:strftime将一个tm结构格式化为一个字符串参数

2021-12-29 21:23:46 17525 6

原创 C语言printf格式化输出汇总

之前用格式化输出时,只记住了常用的几个。其实printf的格式化输出有很多,这里分享给大家:printf函数头文件#include <stdio.h>函数原型int printf( const char *format, ... );你可能只用过%d,%f,不同的"%-codes"表示不同的变量类型, 也可以限制变量的长度.常用%格式short %hd:输出短整数 (h表示短整数)unsigned short %hulong %ldunsigned

2021-12-25 17:14:16 1708

原创 shell脚本之awk命令——按列求平均值、最大值、最小值

文章目录写在前面awk求平均值awk求最大值awk求最小值awk求极值、均值的实际应用写在前面awk命令求极值和均值需要熟悉该命令的基本用法,如果你不熟悉该命令,请先阅读shell脚本之awk命令——分隔符介绍一文。本篇博文带你熟悉求平均值、最大值、最小值的方法,并以实际的应用带你进一步掌握awk的高级用法。以下为求平均值、最大值、最小值用到的文件data,使用cat data查看内容为1.02.03.04.05.06.07.08.09.010.0awk求平均值awk '{su

2021-09-06 21:07:35 17429

原创 shell脚本之awk命令——分隔符介绍

文章目录awk入门awk -Fawk命令之,分割符awk命令之;分割符awk入门关于awk命令的基础用法,请参考Linux awk命令。awk -Fawk -F #-F相当于内置变量FS, 指定分割字符,fs是一个字符串或者是一个正则表达式,如-F:。awk命令之,分割符awk命令之;分割符...

2021-08-28 23:53:36 4004

原创 C&C++字符串比较避坑之Comparison with string literal results in unspecified behaviour

例子在比较两个字符串的时候,很多情况下你可能首先就想到了==运算符,看下面一个例子:if ("connection" == nextElement->Name()){ //比较节点名是否等于"connection",此处"connection"被当做char*处理,而Name()返回的是const char*....}使用GCC编译代码时遇到以下警告:warning: comparison with string literal results in unspecified behavi

2021-07-14 21:58:41 10844

原创 批量文本文件内容替换之Linux sed命令

文章目录sed命令简介需求sed实现批量替换sed命令简介Linux sed命令可以使用shell脚本进行文件的批量处理,如批量替换、修改等等,尤其是在需要对大量文本文件进行批量操作时,使用sed命令会起到事半功倍的效果。关于详细语法介绍,请参考菜鸟教程Linux sed命令。需求现在需要对特定目录下的某个xml文件进行指定内容替换操作,目录下的内容如下:每个DAFront_目录下都有一个cfg/.xml文件,文件内容如下:<?xml version="1.0" encoding="UT

2021-05-23 11:04:35 780 6

原创 JNA模拟复杂的C类型——Java映射char*、int*、float*、double*

而使用ByReference对象获取的值则是0(Java中int的默认值),除非你明确知道C函数不管返回何值都对指针的值做了处理,可以使用Pointer,否则请使用ByReference引用对象,避免获取到垃圾值。建议使用对应的ByReference对象替代Pointer,使用Pointer有时可能会得到一个垃圾值(正常情况下两种方式结果一样),如果C中函数执行失败时没有对指针的值进行处理,使用Pointer就会得到一个垃圾值。这里主要分享一些比较复杂的类型之间的映射关系。官方给出的映射关系如下。...

2021-01-17 21:21:06 5526 10

原创 使用结构体tm计算两个日期的时间差

目录写在前面应用演示源码写在前面 前段时间用到了C++中的时间和日期,当时就想着,学以致用,写个计算时间差的功能。时间仓促,可能代码中还有一些不足的地方,欢迎大家批评指正~应用sscanftmmktime演示源码TimeDiff.cpp#include <iostream>#include <time.h>#include <string.h>#include <stdio.h>#include <iostream&g

2020-05-24 15:20:02 2472

原创 Linux下编译thread通过,运行时报错'std::system_error' std::thread: Operation not permitted原因及解决办法

文章目录1.出现场景2.解决方法1.出现场景第一次遇见这个问题是使用thread库做多线程时,#include <iostream>#include <thread>#include <unistd.h>using namespace std;void thread1(){ cout << "thread 01:" <...

2020-01-03 19:30:51 5483 9

原创 C++类型转换之char转string

目录1.遇到的问题2.意外的惊喜3.结语1.遇到的问题最近项目在做去Qt化,没办法,Qt确实好用,但是要安装qt库,为了和各个现场的环境一致,只能用原汁原味的C了。QT拼接字符串:QString qstrDevPoint = QString("{TYPE:%1CONTENT:%2,COMPRESS,").arg(COM_FUNC_MSG_8).arg(g_pFeAcess->m_fa...

2019-12-22 15:56:10 728

原创 教你一招,轻松应对Eclipse中英文切换

1.修改配置文件在Eclipse安装目录下找到它的配置文件“eclipse.ini”,使用Notepad++或记事本编辑该配置文件,截图显示如下:在最后一行之后添加如下相应命令:界面显示中文:-Duser.language=zh界面显示英文:-Duser.language=en添加之后保存修改,然后重新打开Eclipse,界面就会显示对应的语言。2.修改快捷方式的属性在Ecl...

2019-12-15 14:57:18 291

原创 C++容器之vector&map应用——解析配置文件(二)

前言这篇博文给大家分享如何使用map存储key-value形式的文件内容。需求引入项目中经常用到key-value形式的配置文件,以前用java直接使用properties文件很方便,但在C/C++中,还是需要读取文件获取内容,就去尝试了一下具体如何实现。这里的配置文件内容如下:#comment row key1=name #注释password= 12345 key2 ...

2019-11-30 16:06:22 481

原创 linux下TCP socket编程入门案例(二)——非阻塞的TCP server&client

在[上一篇【阻塞的TCP server&client】](https://blog.csdn.net/xb_2015/article/details/102993083)中,介绍了如何使用socket函数编写第一个socket通信小程序。这篇文章在第一个demo的基础上,将使用select函数实现非阻塞的TCP server&client。

2019-11-23 12:36:02 4853 4

原创 C++容器之vector&map应用——解析配置文件(一)

本篇主要介绍如何使用map和vector解析以逗号分隔的配置文件,属于map和vector的初级应用。

2019-11-22 23:53:19 828

原创 windows下mysql安装教程(非常详细,附下载资源)

最近换了硬盘,重新装了系统,MySQL也重新装了一遍,写给需要的朋友。本文以mysql-5.5.60为例,windows下其他版本也可以参照本教程。文章目录安装mysql1.双击运行mysql安装程序2.点击下一步3.点击接受,下一步4.选择custom(自定义)5.选择安装路径6.完成mysql安装配置mysql1.安装完之后,弹出如下(1)界面2.按图示点击下一步3.选择配置方式4.选择服务...

2019-11-18 22:35:46 285

原创 细说C++常用容器之vector

目录vector简介vector常用操作1.vector的初始化2.遍历vector的方法3.vector的常用方法4.vector其他用法5.vector相关的几个重要算法6.附完整源代码```vector.cpp```---主程序```printVector.cpp```---遍历vector```vector_algorithm.cpp```---vector相关算法```getcwd.cp...

2019-11-16 12:42:03 241

原创 linux下TCP socket编程入门案例(一)——阻塞的TCP server&client

在项目上做的通信方面的内容,但是呢,又没这方面的经验,从头学起,分享给需要这方面内容的朋友们。TCP和UDP通信使用socket编程有两种通信协议可以选择,一种是数据报通信,另一种是流通信。​​(1)数据报通信数据报通信协议,就是我们常说的UDP(User Data Protocol 用户数据报协议)。UDP是一种无连接的协议,这意味着我们每次发送数据报时,需要同时发送本机的soc...

2019-11-10 12:30:10 1008

原创 浅谈使用C库函数之gets和fgets遇到的坑——字符串长度多出来的1是哪来的

最近在做一个小功能的时候,意外发现程序怎么都执行不到目标处,附部分问题代码,使用fgets输入字符串后,在对比字符串时,怎么都进不去if,我就纳闷了,明明输入的是quit,就是对比失败。于是乎我专门花时间去找了一下资料,发现了fgets神坑的地方。出现这个问题的原因是,从标准输入获取数据时,fgets()会比gets()多读取一个换行符"\n",下面的代码演示了这种差异以及解决方法:...

2019-11-06 22:16:12 1772

原创 如何在linux下搭建伪分布式redis集群

Redis简介Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型如下:字符串类型、散列类型 、列表类型 、集合类型 、有序集合类型。Redis应用场景Redis应用最多的地方是缓存(数据查询、短连接、新闻内容、商品内容等等)。其他的如分布式集群架构中的session...

2019-04-27 19:46:54 591

原创 Eclipse中web项目成功部署tomcat报错404 NOT found——settings下的映射路径配置出错

小伙伴们应该遇到过很多404问题,大多是因为项目未成功发布造成的。而发布成功的web项目在浏览器中访问时,出现404是怎么回事呢?之前写的一个项目,今天直接导入Eclipse中了,结果启动tomcat后无法访问,报错4041.对这种问题,大家先想到的可能是访问路径配置,检查路径配置,右键项目,找最后一个选项Properties,检查Web project settings,正常情况下和...

2019-01-16 22:29:48 5342 2

原创 Initialize failed: invalid dom.——带你深入因操作dom不当带来的错误

浏览器控制台报错,初始化失败,不合法的dom(Initialize failed: invalid dom.)此类错误的原因通常是因为试图操作一个未就绪的dom(或未被创建,或未完全加载等等)。

2018-12-29 13:15:48 101169 47

原创 eclipse主题彻底美化——你还在用白底黑字的编辑器吗?

从豆沙绿说起——众所周知,eclipse默认的主题是真的丑死了,时间长了眼睛疼。最早开始给eclipse更换配色的时候,也没改多少东西,就想着怎么护眼怎么来,百度搜索大部分都是介绍设置背景色为豆沙绿,用的时间久了,觉得单调的豆沙绿也丑,于是我想,有没有更好的主题,既美观又实用,专门花时间寻找eclipse美化,终于,找到了。话不多说,先上效果图,如图:获取更多主题请访问eclips...

2018-12-21 23:40:49 13222 17

原创 Java访问权限修饰符之public、protected、private

有朋友问我,Java的修饰符访问权限到底是怎么排的,我说从大到小public&gt;protected&gt;friendly&gt;private。朋友突然问我,有friednly?我一本正经(xia che)说,书上写的(也不知道当时从哪里看来的,记了个错的记了三年,委屈脸)。friendly的叫法可能来源于c++。不管是称呼default还是friendly,都只是一种口头上的说法,ja...

2018-12-01 22:08:50 258

原创 Mybatis传值错误:Parameter 'name' not found. Available parameters are [1, 0, param1, param2]或者[0,1,p1,p2]

mapper.xml中,设置parameterType="String"传入多个参数报错错误类型一:Parameter '***' not found.Available parameters are [1, 0, param1, param2]错误类型二:Parameter '***' not found.Available parameters are [0, 1, param1, p...

2018-11-29 11:34:16 4320 1

原创 关于mybatis主配置文件那点事————SqlMapConfig.xml的标签出场顺序

最近在学mybatis框架配置开启延迟加载的开关时,在主配置文件中没注意&lt;setting&gt;的位置,结果一直有个大红叉。我就纳闷了,xml文件中一般对标签的位置要求没那么多,这个怎么那么矫情?于是就按提示信息,发现标签必须按下面的顺序依次配置,如下图一个比较完整的mybatis主配置文件结构如下&lt;?xml version="1.0" encoding="UTF-8...

2018-08-11 09:59:39 630

原创 HTML基础系列(一)--常用标签

HTML( HyperText Markup Language)超文本标记语言,是一种用来描述网页的语言,它不是编程语言,而是一种标记语言。HTML使用各种标记标签来描述网页。头部区域&lt;head&gt;&lt;/head&gt;可以添加的元素标签为: &lt;title&gt;, &lt;style&gt;, &lt;meta&gt;, &lt;link&gt;, &lt;script&

2018-04-17 15:30:50 229

翻译 Navicat连接SQL Server数据库失败

常见错误:"08001-命名管道提供程序,无法打开与SQL Server的连接,08001-与SQL Server建立连接时发生了与网络相关的或特定于实例的错误,找不到或无法访问服务器,请检查实例名称是否正确以及SQL Server是否配置为允许远程连接"解决方案:1、在cmd命令输入"services.msc"打开服务设置;2、找到SQL Server代理服务,启动该服务(一般该项为错误所在);...

2018-04-15 15:08:16 15188 2

计算机基础之常见进制转换(二、八、十、十六进制互相转换)

内容概要:详细介绍常用进制间互相转换的规则,对于深入了解计算机底层是如何工作的很有帮助。 适合人群:了解计算机基本概念,具有一定编程基础的开发人员。 能学到什么:了解常用进制,各种进制间相互转换的方法。

2022-09-19

Java JNA使用参考手册.pdf

Java JNA使用参考手册.pdf

2021-01-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除