- 博客(178)
- 资源 (12)
- 收藏
- 关注
原创 windows编译zookeeker动态库供C++链接使用以及遇到的错误处理方法
windows下面C++链接zookeeper资料不多,特此记录一下编译环境VS 2015。
2023-08-03 01:57:42
1145
原创 C++ 结构体转json
????FdogSerialize????FdogSerialize是一个用于C++序列化的开源库,采用非入侵方式,无需在原有结构体上进行修改,目前支持基础类型,基础类型数组,结构体,以及vector,list,map等数据类型的序列化,支持JSON和XML两种数据格式,支持别名,支持忽略字段,最少三行代码即可完成转换。github地址:FdogSerialize开源库代码中有使用到C++11特性,并且使用到了正则表达式,若是linux编译,需保证gcc版本在4.9(4.8不支持正则表达式)该库
2022-02-12 22:50:49
7808
12
原创 gcc报错:terminate called after throwing an instance of ‘std::regex_error‘ what(): regex
查看自己的gcc版本是不是不是4.9+,如果不是,请更换。查看版本命令:gcc --version
2022-02-03 11:12:04
2914
原创 C++还在用printf/cout进行Debug?学习一下如何自己写日志库吧(上篇)
文章目录一. 前言二. 基本功能三. 代码实现1. fdoglogger.h2. fdoglogger.cpp四. 测试用例1. fdoglogger_test.cpp一. 前言哈喽,自从实习以来很久没有更文了,一是没有时间,二是实习了之后突然发现自己能写的东西也没有多少了。赶上1024有征文活动,就写一篇吧,在实习的这段时间,我更加认识到日志的重要性,客户端值没传过来?看日志,服务崩溃了?看日志,没错,日志是出现异常第一个想到的东西,它记录了程序运行过程中所调用的函数,所接受到的值,所执行的行为等等
2021-10-24 13:12:43
40312
80
原创 使用下标给string类型赋值之后,cout输出变量为空的问题。
今天写创建文件夹的时候,怎么创建都不会,反复修改,确定错误是出在了string类型的变量上面。看下面代码 //这个一个函数中的代码,函数参数是string fileurl_s int len = fileurl_s.length(); std::string fileurl_s_cy; for(int i =0;i<len;i++) { fileurl_s_cy[i]=fileurl_s[i];
2021-08-07 15:22:57
2331
1
原创 go语言使用thrift协议实现客户端和服务端报not enough arguments in call to oprot.WriteMessageBegin错误解决方案
正常步骤:安装golang的Thrift包:go get git.apache.org/thrift.git/lib/go/thrift安装 Thrift 的 IDL 编译工具:http://www.apache.org/dyn/closer.cgi?path=/thrift/0.10.0/thrift-0.10.0.exe编译客户端的时候会报错,出现not enough arguments in call to oprot.WriteMessageBegin的错误,这是因为本地生成协议的版本是与
2021-07-07 20:39:56
3849
原创 【毕业设计】QT从入门到实战:实现模仿QQ通讯,也是在校的最后一篇博文。
文章目录一. 前言二. 模仿QQ通讯1. 介绍2. 图例一. 前言2019年9月来到泰州职业技术学院,从此,正式开启了我的代码求学之路。2021年7月即将离开泰州职业技术学院,还有半个月的时间,从此,将离开校园,变成一个职场人。早上醒来,班主任在群里通知后天要照毕业照,算起来也就不到两年的时间,你可能会好奇为什么怎么快,没错,我是一个大专生,才大二,标题开头的【毕业设计】,也可能仅仅是我幻想的毕业设计,学校从来都不需要什么毕业设计,而是对应为期一年的顶岗实习,6月份结束,我也要踏上去往南京实习..
2021-06-16 17:21:29
13697
111
原创 Qt窗口关闭和应用程序停止是否调用析构函数的一些说明
这几天一直在模仿QQ做一个即时通讯软件,过程不是很顺利,表现在窗口关闭,应用程序依旧存在,应用程序异常结束,关闭子窗口,主窗口跟着关闭,所以总结了一些内容,方便日后获取。如果对这个项目有兴趣的话可以前往GitHub:https://github.com/FdogMain/FdogInstantMessagingmain函数中,在栈上创建的窗口,关闭的时候自动调用析构函数,这种情况不可以使用this->setAttribute(Qt::WA_DeleteOnClose);,关闭时会出现异常,如
2021-06-12 19:13:41
7664
19
原创 Centos上编译qt程序缺少mysql驱动解决方案
之前用写了一个客户端到服务端的通信,一直在windows上面运行,今天想着把服务端挂在云服务器上面测试测试,一个mysql驱动搞了我一天,找了好多资料,最终是把它给解决掉了,记录一下,希望可以帮助到后面的人。QSqlDatabase: QMYSQL driver not loadedQSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7提示无法加载驱动我觉得你应该知道是libqsqlmysql
2021-06-07 10:59:43
2105
13
原创 Fdog系列(六):利用Qt通过服务端进行客户端与客户端通信(资料少,建议收藏)
文章目录一. 前言二. 正文1. 客户端与客户端通信思路2. 代码实现(1)服务端的实现(2)客户端的实现一. 前言Fdog已写文章目录:Fdog系列(一):思来想去,不如写一个聊天软件,那就从仿QQ注册页面开始吧。Fdog系列(二):html写完注册页面之后怎么办,用java写后台响应呀。Fdog系列(三):使用腾讯云短信接口发送短信,数据库写入,部署到服务器,web收尾篇。Fdog系列(四):使用Qt框架模仿QQ实现登录界面,界面篇。Fdog系列(五):使用Qt模仿QQ实现登录界面到主.
2021-05-04 18:17:04
9793
42
原创 Fdog系列(五):使用Qt模仿QQ实现登录界面到主界面,功能篇。
一. 前言Fdog系列已写目录:Fdog系列(一):思来想去,不如写一个聊天软件,那就从仿QQ注册页面开始吧。Fdog系列(二):html写完注册页面之后怎么办,用java写后台响应呀。Fdog系列(三):使用腾讯云短信接口发送短信,数据库写入,部署到服务器,web收尾篇。Fdog系列(四):使用Qt框架模仿QQ实现登录界面,界面篇..
2021-05-01 21:35:14
15807
83
原创 Fdog系列(四):使用Qt框架模仿QQ实现登录界面,界面篇。
文章目录一. 前言二. 正文1. 创建窗口,添加基本组件2. 自定义标题,隐藏任务栏标题,实现系统托盘显示3. 美化主界面,文本框的奇思妙想4. 实现背景阴影一. 前言Fdog系列已写目录:Fdog系列(一):思来想去,不如写一个聊天软件,那就从仿QQ注册页面开始吧。Fdog系列(二):html写完注册页面之后怎么办,用java写后台响应呀。Fdog系列(三):使用腾讯云短信接口发送短信,数据库写入,部署到服务器,web收尾篇。哈喽,我的小伙伴们,在之前的三篇中,我们实现了网页端注册一个Fd
2021-04-25 14:54:04
13913
113
原创 对于编程,实践和理论哪个更重要【最近有些事,没时间写文,就发篇水文吧,回头补】
之前,我个人觉得实践重要,但每次被打脸的时候,又让我觉得理论好像比实践更重要,一次次,天平上的实践开始向理论倾斜,于是就有了今天的话题。对于编程,实践和理论那个更重要,我一路走过来,发现这一直是一个大家争论不休的话题。我得出的结论是实践和理论都重要,两者就好像你的左膀右臂,缺一不可,但是两者你可以先选其一,再补其二,这也是大家为什么争论不休,因为大家可能走的路线不同,处在不同时期导致出现实践和理论哪个更重要。狗子是初三开始学习的编程,当时买了两本书,书钱还是跟我哥借的,本来是想买一本c primer p
2021-04-18 21:30:44
2744
52
原创 Fdog系列(三):使用腾讯云短信接口发送短信,数据库写入,部署到服务器,web收尾篇。
文章目录1. 前言2. 使用腾讯云短信接口发送短信3. java连接数据库4.部署到服务器(如果你有的话)目录Fdog系列(一):思来想去,不如写一个聊天软件,那就从仿QQ注册页面开始吧。Fdog系列(二):html写完注册页面之后怎么办,用java写后台响应呀。文章中出现的源码获取方式:评论区留下邮箱地址。创作不易,各位看官点个关注,点个赞呗!1. 前言前面两篇分别使用html写了前端网页和使用java写后端响应代码,实现了前端与后端的数据交互,今天这篇将介绍如何将数据写入数据库,并且实
2021-04-13 21:07:51
4282
48
原创 Fdog系列(二):html写完注册页面之后怎么办,用java写后台响应呀。
文章目录1. 前言2. 创建javaweb项目3. 创建Server4. 解决中文乱码问题5. 响应后台数据目录Fdog系列(一):思来想去,不如写一个聊天软件,那就从仿QQ注册页面开始吧。1. 前言接着第一篇用html完成了注册页面,第二篇,我们来完成后台数据处理,需要用的有Eclipse,tomcat,mysql数据库,还有云服务器(如果需要外部访问,可以购买一台云服务器,选择最低配置就好,我用的是腾讯云,使用代金券白嫖了四个月,可以通过下面二维码白嫖代金券。)若没有Eclipse,这是博
2021-04-11 21:14:23
5409
61
原创 Fdog系列(一):思来想去,不如写一个聊天软件,那就从仿QQ注册页面开始吧。
文章目录一.前言1. 基础布局2. 自动切换图片3. 添加内容4. 自动缩放,控件的显示和隐藏5.响应用户输入操作一.前言两年的大学生活马上就要结束了,马上面临实习,突然心血来潮,想着最后再来写一个项目来总结这几年所学的东西,难的项目,咱也不会,索性就模仿qq来写一个fdog,嘿嘿,思来想去,索性先从前端开始,虽说大多数编程人接触的第一门语言基本都是C语言,但千万不要单纯的以为只靠一门C语言就能做出像样的程序出来,所以学C语言能干什么,什么都干不了,仅仅作为一个基础而已。在这之前,我无法将所学知识
2021-04-10 16:19:05
11650
118
原创 QT系统学习系列:1.2样式表子控件查阅
类别 子控件名称说明查看子控件样式表应用滑动条,滑动块相关::handleQScrollBar、QSplitter,QSlider 的手柄(滑块)滑动条,滑动块相关::grooveQSlider的凹槽滑动条,滑动块相关::cornerQAbstractScrollArea中两个滚动条之间的角落滑动条,滑动块相关::ad...
2021-04-09 19:39:49
2397
1
原创 C++ 解决大数运算(大数加法,大数幂运算,大数求余)
文章目录1. 大数加法2. 大数幂运算3.大数求余废话不多说,直接上代码了。1. 大数加法string getCountAdd(string a, string b){ string c = ""; int bit = -1; //判断是否进位 -1为否,其他为进位数 int i = a.length()-1; //获得a字符串长度 int j = b.length()-1; //获得b字符串长度 //第一种情况 两者都处理完 while (i != -1 && j !
2021-04-04 19:54:34
6842
12
原创 非对称性加密算法——RSA算法原理及C++实现
文章目录一. 前言二. 什么是非对称加密算法三. 双方交换信息工作流程四.密钥生成数学原理五.总结公钥和私钥生成步骤六.解决大数运算1.getCountAdd() 解决大数相加2. getCountExp() 解决大数幂运算3. getCountmod() 解决大数求余七.举个例子八.完整代码1.随机生成随机数2. 判断是否为质数3. 最大公约数(辗转相除算法)4.核心代码一. 前言最近想模仿一下qq,做一个通信软件,这是qq的登录界面,当我们选择记住密码后,每次运行qq,就会显示已保存的密码,.
2021-04-04 17:00:38
14967
39
原创 记录 linux服务器JDK高版本替换低版本
由于我要使用腾讯云的短信接口,最低支持JDK1.7,我是JDK1.6,记录一下如何升级。下载压缩包JDK1.7 linux tar.gz然后在usr下创建一个java文件夹mkdir /usr/java将下载的压缩包导入java文件夹,然后解压。tar -zvxf jdk1.7.0.tar.gz删除原来的jdkrm -f /usr/bin/javarm -f /usr/bin/javacrm -f /etc/alternatives/javarm -f /etc/alternati
2021-03-23 11:18:09
1680
原创 C++的四个默认函数(构造函数,析构函数,拷贝函数,赋值函数)
文章目录一. 构造函数二. 析构函数三. 拷贝构造函数1.浅拷贝2.深拷贝四. 赋值函数在C++中,对于一个类,C++的编译器都会为这个类提供四个默认函数,分别是:A() //默认构造函数~A() //默认析构函数A(const A&) //默认拷贝构造函数A& operator = (const A &) //默认赋值函数。这四个函数如果我们不自行定义,将由编译器自动生成这四个缺省的函数,下面让我们来看看这四个函数(重点是后
2021-02-23 22:23:18
9491
28
原创 C++类的this指针,静态成员,友元函数友元类
文章目录1. this指针2. 静态成员3. 友元函数友元类1. this指针在上篇讲C++中类,对象,封装,继承(派生),多态的时候,this指针出现在成员函数中,并使用->成员提取符操作成员变量。在 C++ 中,每一个对象都能通过 this 指针来访问自己的地址,this 指针是所有成员函数的隐含参数,实际上成员函数默认第一个参数为T* const register this,this指针在成员函数的开始执行前构造的,在成员的执行结束后清除。例如我们自定义一个print函数class
2021-02-22 21:03:13
3025
17
原创 快速排序
快速排序快速排序是对冒泡排序的一种改进。它的基本思想是:通过一次排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一不部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归或者非递归进行,以此达到整个数据变成有序序列。快速排序过程图:快速排序和归并排序有一些相同点和一些不同点,比如两种都使用了分治的思想,都是递归+排序,不同点在于归并排序是先递归后排序,而快速排序是先排序,后递归。快速排序原理1)设置两个变量i、j,排序开始的时候:i=0,j
2021-02-17 16:02:43
2241
19
原创 堆排序
堆排序堆排序顾名思义,就是使用堆这种数据结构进行排序,什么是堆呢,堆(Heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵完全二叉树的数组对象。堆总是满足下列性质:堆中某个结点的值总是不大于或不小于其父结点的值;堆总是一棵完全二叉树。将根结点最大的堆叫做最大堆或大根堆,根结点最小的堆叫做最小堆或小根堆。使用堆排序,第一步是将无序序列结构转变为一个大顶堆或者小顶堆,然后将堆顶元素与末尾元素进行交换,使末尾元素最大。然后继续调整堆,再将堆顶元素与末尾元素交换,得到第二大元素。
2021-02-17 15:53:59
3205
23
原创 归并排序
归并排序(Merge Sort)是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。经典的分治(divide-and-conquer)策略:分解:把一个问题分解成多个子问题,这些子问题是更小实例上的原问题。解决:递归地求解子问题,当子问题足够小时,按照基础情况来求解。合并:把子问题的解合并成原问..
2021-02-17 15:50:43
2255
20
原创 C++中类,对象,封装,继承(派生),多态
类就是同一类事物的总称,比如我(一个对象)可以讲话,那么基本上所有人都具备这个属性,就将我这一类的对象称为类,类的思想就是这样产生的。更恰当的描述:类就是世间事物的抽象称呼,而对象就是这个事物相对应的实体,人类就是一个类,写博文的我,看博文的你就是人类这个类的实例化,这也是为什么人类里面有个类,动物类,植物类,都有一个类,单说一个动物类,我们只能知道是动物,,却无法确定是那种动物,而对象就是具体实例化动物。在C++语言中,类中对象的行为是以函
2021-02-17 15:37:22
2280
19
原创 C++命名空间
文章目录定义命名空间的格式使用定义好的命名空间:嵌套命名空间不连续的命名空间以前上课在Android studio上用java写代码的时候,有一个函数明明和书上一样,但就是出错,捣鼓了半天,原来是包导错了,为了耍帅,手一快,package xxxxx 这个包就是java中的命名空间,刚学java的时候,老师总是会让我们建一个包,但后来发现包这个东西,可有可无(其实是代码写的太少,根本不可能重名)。相对于java,C++更不是省油的灯,在C++中,变量、函数和类更是大量存在的。如果没有命名空间,这些变量、
2021-02-17 15:34:48
2305
20
原创 插入排序
插入排序,百度百科上面有一个不错的例子是这样描述插入排序的,插入排序的工作方式像许多人排序一手扑克牌。开始时,我们的左手为空并且桌子上的牌面向下。然后,我们每次从桌子上拿走一张牌并将它插入左手中正确的位置。为了找到一张牌的正确位置,我们从右到左将它与已在手中的每张牌进行比较。拿在左手上的牌总是排序好的,原来这些牌是桌子上牌堆中顶部的牌...
2021-02-17 15:32:23
3904
22
原创 选择排序
选择排序(Select Sort) 是直观的排序,通过一个中间量从带排序的的数中找出最大或最小的交换到对应位置。再选择次之。选择排序和冒泡排序一样,都有两层循环,还记得上一篇讲过的冒泡排序吗,忘了的话点我回顾。让我们通过动态图来看一下选择排序的过程图:让我们通过动态图来看一下选择排序的过程图:这个动态图演示了一个无序数组使用选择排序转变为一个从大到小的有序数组,让我们来观察一下,在进入内循环之前,会记录一个值,这个值是当前外层循环A[i]的值,之后拿着这个值,在内循环遍历数组的时候,跟数组的元素..
2021-02-17 15:01:44
19348
35
原创 冒泡排序
1. 前言轮子哥曾经在知乎里讲过这么一个事,当年他毕业的时候,有一个公司(微软)来上海招聘。第一轮笔试出的算法题是冒泡排序,全场只有一半的学生写了出来。你可能会疑问冒泡怎么简单,怎么可能,哈哈,别急,冒泡排序虽然是最简单的算法,但是如果现在让屏幕前的你写,能立马写出来的在下面评论!所以往往看似越简单的东西,越是能考查我们的基本功。这篇文章,就让小编带你学习一下冒泡排序吧。2. 冒泡算法这个算法的名字由来是因为越小的元素会经由
2021-02-17 14:58:27
8918
38
原创 QT多个按钮信号绑定一个槽函数,执行不同业务逻辑。
应用场景如下:举一个例子,大家知道qt自带的点击信号是无参的,有也只是bool类型,比如我要实现上图逻辑,因为从信号的传回的参数无法让我确定是哪一个按钮按了下去,我是不是应该去定义5个槽函数,并且让这五个按钮的信号分别绑定这五个槽函数,来实现我们的业务逻辑。 //例如这样: connect(btn1,SIGNAL(clicked()),this,SLOT(getText1())); connect(btn2,SIGNAL(clicked()),this,SLOT(getText2())
2021-02-07 17:27:19
7355
9
原创 Qt Tablewidget表格数据的导出和导入
文章目录一. xls/xlsx文件数据导入TableWidget表格二. tableWidget表格数据导出为xls/xlsx文件QT里面自带的TableWidget控件可以实现表格显示的功能,刚开始学习TableWidget,只是自己提前创建好表格,规定好数据,但真正的软件不会让我们规定好数据格式。下面我们一起来看一下,如何导入xls文件,自动生成表格。我所使用的这种方法,导入/导出相对较慢,网上有另一种比较快,有机会再写出来。前期准备:pro文件加入QT += axcontainer在头
2021-02-07 16:38:53
10975
50
原创 腾讯云云服务器Centos系统安装MySQL数据库详细教程
文章目录一. 前言二. 教程一. 前言 今天是2021年的2月2日,可以说我把一件压在心底很久的一件事做了,今天我用代金卷买了4个月的云服务器,申请了备案,并且配置了MYSQL,有兴趣的可以往下看看,如果是奔着标题来了的,可以直接看下面。 我本身是学c/c++这一类方向的,网站我了解的不是很多,可以说就是这方面的文盲,真是隔行如隔山呀!我最早接触跟网站有关的就是
2021-02-02 22:48:48
4700
20
原创 QT系统学习系列:1.2 ToolBar(工具栏)
文章目录ToolBar 基础ToolBar介绍movable 属性allowedAreas 属性orientation 属性iconSize 属性toolButtonStyle 属性floatble 属性ToolBar 进阶为ToolBar添加控件美化ToolBarToolBar 基础ToolBar介绍头文件:#includeqmake:QT +=widgets继承于:QWidget工具栏,相信大家也不陌生,这篇给大家讲一下如何使用工具栏,以及前面讲过的ToolButton如何配合
2021-01-29 14:43:19
17750
2
原创 QT系统学习系列:1.3 ToolButton(工具按钮)
文章目录一. ToolButton 基础ToolButton介绍ToolButton 构造函数二. ToolButton 进阶arrowType属性autoRaise属性popupMode属性toolButtonStyle属性继承属性关于ToolButton 按钮的简单美化三. ToolButton 高级ToolBar工具栏和ToolButton工具按钮的应用ToolButton 菜单一. ToolButton 基础ToolButton介绍头文件:#includeqmake:QT +=wid
2021-01-28 13:50:17
21092
9
原创 Qt系统学习系列目录:订阅必看
文章目录前言:订阅必看0.1 关于作者0.2一.按钮类1.1 PushButton1.2 ToolButton1.3 RadioButton1.4 CheckBox1.5 CommandLinkButton1.6 ButtonBox二. 单元视图2.1 ListView2.2 TreeView2.3 TableView2.4 ColummView三. 单元组件3.1 ListWidget3.2 TreeWidget3.3 TableWidget四. 容器4.1 GroupBox4.2 ScrollArea4
2021-01-27 20:59:04
2198
4
原创 QT系统学习系列:1.2 PushButton(常规按钮)
文章目录一.PushButton 基础PushButton介绍给PushButton添加快捷键PushButton构造函数PushButton添加/更改(图标,文本,父类)PushButton控件大小,位置PushButton 槽——信号响应二.PushButton 进阶PushButton 设置可选/不可选PushButton default属性PushButton autodefault属性PushButton flat属性PushBuuton css美化三.PushButton 高级PushButto
2021-01-25 21:28:07
24334
2
原创 QT系统学习系列:1.1 QAbstractButton(按钮抽象基类)
文章目录一. QAbstractButton介绍二.QAbstractButton 属性down属性shortcut属性checkable属性checked属性autoRepeat属性autoExclusive属性autoRepeatDelay属性autoRepeatInterval属性一. QAbstractButton介绍头文件:#include<QAbstractButton>qmake:QT+=widgets继承于:QWidget继承给:QCheckBox, Q
2021-01-24 16:12:35
4151
1
正则表达式检验小程序
2020-10-20
qt样式表一键生成(花狗Fdog)
2020-08-29
java连接mysql时需要使用到的驱动程序
2020-05-29
QT实战学生管理系统系列·登录界面(利用MySQL保存数据和邮箱辅助注册)
2020-04-28
PanDownload,一个大牛制作的下载工具
2020-04-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人