
1. C++
文章平均质量分 71
小师兄.
语言学习开发路上的一个初学者。
展开
-
基本知识(1)有关打印格式以及串口输出形式整理
有关打印格式以及串口输出形式整理1、printf 打印格式:1printf(" "); //空格2printf("\n"); //换行3printf("\r\n"); //换行并移动光标到本行开始处4printf("%x"); //十六进制打印5printf("TT:%x,CRC:%x",t,crc1); //两个参数分别打印6printf("%u"); //十进制打印7pri原创 2018-04-14 15:42:45 · 4927 阅读 · 0 评论 -
Qt之船舱控制系统(三)之qcustomplot绘制柱状图、设置颜色....
既然甲方提了要求,我这边只能尽力修改尽量做到尽善尽美,在实现功能的基础上也要有美感!1、首先就是绘制在柱状图:QCPBars* bars=new QCPBars(this->ui->qcustomPlot1->xAxis,this->ui->qcustomPlot1->yAxis);bars->setAntialiased(false); 2、...原创 2018-04-13 11:37:40 · 4638 阅读 · 0 评论 -
Qt之数据库查询问题总结(查询变量time数据)
数据库使用:QSQLITE数据库建立:1)创建数据库表数据类型 2)存入测试数据(.CSV文件数据导入)3)tabview显示表数据4)根据条件查询数据遇见问题总结:主要出现在数据库查询部分,但是归根结底还是数据库time类型的问题(varchar)刚开始数据库表为:可以看到time数据类型varchar时,数据存入格式为2018/4/28即为yyyy/m/dd、yyyy/m/dd、yyyy/mm...原创 2018-04-23 11:36:01 · 10557 阅读 · 4 评论 -
Qt中关于设置颜色(QPalette和QPixmap)
(1).设置背景颜色QPixmap是一个绘图设备pix=new QPixmap(this->size());//size(0当前客户区的大小(例子见DrawWidgets:)pix->fill(Qt::white); 利用QPixmap还可以设置QToolButton颜色:colorBtn=newQToolButton; QPixmap pixmap(2...转载 2016-12-06 10:38:24 · 15489 阅读 · 1 评论 -
Qt之tableview显示更多数据
数据库读取数据,一般在一页中显示256个数据,但为了在tabview中显示更多的数据,则需要做一下修改: QSqlQueryModel *model = new QSqlQueryModel; model->setQuery("select id,time,co,h2s,o2,gas,ele from hdata"); model->setHeaderData(...原创 2018-04-19 09:40:22 · 3852 阅读 · 0 评论 -
Qt之关于Label使用(下划线,事件跳转)
日常小知识点总结:1、Label的文字下部分下划线:ui->label->setText("<u>日期</u>");2、QLabel实现点击跳转即实现button功能:1)网上找的QLabel单击事件在解决问题过程中出现的曲折,做出了单击跳出对话框,但是意外发现点击其他区域也跳转,过程首先在,h中定义了一个clicked()信号:signals: void...原创 2018-04-23 20:35:46 · 7144 阅读 · 0 评论 -
Qt之报警声设置
功能描述:当节点显示超过阈值时,界面上柱形变红色,textedit内打印红色字体的某个节点某个数,同时电脑发出警示音查询帮助助手报警声解决方案一:void QApplication::beep () [static]Sounds the bell, using the default volume and sound. The function is not available in Qt for...原创 2018-04-24 15:50:33 · 7553 阅读 · 1 评论 -
QT之QDateTimeEdit触发日历
1、QDateTimeEdit触发日历QSize sz = ui->dateTimeEdit->geometry().size() -= QSize(3, 3);QPoint pt(sz.width(), sz.height());QMouseEvent evt(QEvent::MouseButtonPress, pt, Qt::LeftButton, Qt::LeftButton, ...原创 2018-04-20 15:36:16 · 5681 阅读 · 1 评论 -
Qt之QString类型转char类型
在Qt使用中,很多情况下我们得到的对象类型是QString类型,但是我们实际应用中需要操作的是char类型,因此需要一种在转换方式。在这里贴出一种Qt4中的转换代码,仅供参考:方法一: const char *ch; QString str = tcpSocket->readAll(); qDebug()<<"接收数据为:"<<str; ...原创 2018-04-21 15:09:01 · 1998 阅读 · 0 评论 -
传播智能STL复习(一)函数模板int,char等类型参数交换
01:函数模板int,char等类型参数交换.cpp文件#include<iostream.h>using namespace std;template<typername T> //告诉编译器要泛型编程了,不要随便报错void myswap(T &a, T &b){ T c; c=a; a=b; b=c;}//函数模板调用void...原创 2018-05-09 21:05:55 · 257 阅读 · 0 评论 -
STL复习(二)函数模板排序
02:函数模板排序普通排序编程:.cpp文件1#include<iostream.h>2using namespace std;34//template<typename T> //告诉编译器要泛型编程了,不要随便报错5int mysort(int *array, int size)6{7 int tmp;8 9 if(array == NULL)10 ...原创 2018-05-09 21:12:15 · 266 阅读 · 0 评论 -
Qt之QString字符串分割、截取
在做项目中不可避免的会使用到一串字符串中的一段字符,因此常常需要截取字符串。 有两种方式可以解决这个问题: 方法一:QString分割字符串: QString date=dateEdit.toString("yyyy/MM/dd"); QStringList list = date.split("/");//QString字符串分割函数 方法二:正则表达式...原创 2018-04-21 22:00:23 · 94278 阅读 · 0 评论 -
STL复习(三)函数模板和函数重载的区别以及研究
普通函数:可进行隐式类型转换模板函数:函数严格按类型转换,不进行自动转换。.cpp文件#include <iostream>using namespace std;template <typename T1, typename T2>T Max(T1 a, T2 b){ cout <<" Max(T1 a,T2 b)"<<endl; re...原创 2018-05-12 18:54:37 · 453 阅读 · 0 评论 -
STL复习(五)继承类模板语法
派生:从模板类派生时,需要具体化模板类,C++编译器需要知道弗雷的具体类型是什么样子,要知道父类所占内存大小public B: public A<int>1#include <iostream>2using namespace std;34template<typename T>5class A6{7public:8 A(T a = 0); 9 {1...原创 2018-05-19 19:49:04 · 346 阅读 · 0 评论 -
C++必知必会复习(十)
1、尽量以const,enum,inline替换#define编译过程:.c文件--预处理-->.i文件--编译-->.o文件--链接-->bin文件 预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。检查包含预处理指令的语句和宏定义,并对源代码进行相应的转换。预处理过程还会删除程序中的注释和多余的空白字符。可见预处理过程先于编译器对源代码进行处理。预处理指令...原创 2018-05-14 10:12:04 · 239 阅读 · 0 评论 -
STL复习(四)函数模板机制研究
为什么函数模板可以和普通函数在一起?C++编译器是如何提供这个机制的?1、gcc 编译器,就是GNU,支持多种语言。gcc 主要特征:1)可移植,支持硬件平台。2)本地编译,跨平台。3)解析多种语言。4)模块化设计。2、gcc 编译过程:预处理——编译——汇编——链接3、函数模板机制结论:(需要记忆)编译器并不是把函数模板处理成能够处理任意类的函数编译器从函数模板通过具体类型产生不同函数编译器会对...原创 2018-05-14 21:17:06 · 118 阅读 · 0 评论 -
C++通过jsoncpp类库读、写JSON文件
JSON是一个轻量级的数据定义格式,比起XML易学易用,而扩展功能不比XML差多少,用之进行数据交换是一个很好的选择。JSON的全称为:JavaScript Object Notation ,顾名思义,JSON是用于标记javascript对象的,详情参考http://www.json.org/。本教程选择第三方库jsoncpp来解析json, jsoncpp是比较出名的c++解析库,在json官...转载 2018-06-15 09:55:18 · 727 阅读 · 0 评论 -
摘自C/C++群里offer要求
群里一位大神贴出来的,感觉自己好多都不会,要努力了!!!原创 2018-04-19 09:15:48 · 185 阅读 · 0 评论 -
C++面试题(十四)唯实科技笔试
(都是去年参加面试回忆的)今天笔试内容:1、指针和引用区别,阐述常引用。2、OSI七层,TCP/UDP,talent属于什么层。3、TCP连接和断开过程。4、TCP如何控制流量。5、1000瓶药,999瓶没有毒,只有一瓶有毒,任何一只老鼠吃了毒药都会一周后死掉,有10个老鼠,和一周时间,如何找出有毒的那瓶药?6、指针常量和常量指针7、大模式,小端模式8、链表的逆序...原创 2018-04-19 09:15:38 · 172 阅读 · 0 评论 -
C++面试题(十三)
static有什么用途?(请至少说明2种)限制变量的作用域设置变量的存储域2. 引用与指针有什么区别?1[]) 引用必须被初始化,指针不必。2) 引用初始化以后不能被改变,指针可以改变所指的对象。2) 不存在指向空值的引用,但是存在指向空值的指针。3. 描述实时系统的基本特性在特定时间内完成特定的任务,实时性与可靠性4. 全局变量和局部变量在内存中是否有区别?如果有,是什么区别?全局变量储存在静态...转载 2018-04-19 09:15:27 · 2156 阅读 · 0 评论 -
基本知识(2)C++智能指针
C++智能指针简介由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见。 用智能指针便可以有效缓解这类问题,本文主要讲解参见的智能指针的用法。包括:std::auto_ptr、boost::scoped_ptr、boost::sha...转载 2018-04-14 15:45:10 · 163 阅读 · 0 评论 -
基本知识(3)CRC校验原理整理
CRC校验原理整理CRC校验又称为生成多项式校验。CRC校验原理,基本想法:1>先在发送的帧后面附加一个数(校验码),生成一个新的帧发送给接收端。2>新帧与发送端和接收端共同选定的某个特定数整除。3>达到接收端,把新帧除以选定的除数。4>若没有余数,那么没有差错。否则,有差错。5>CRC校验计算实例: (1)首先把生成多项式转换成二进制数,由G(X) = X4 ...转载 2018-04-14 15:52:46 · 1479 阅读 · 1 评论 -
基本知识(4)十六进制转字符串存储
1、 (1)extern 不在一个文件中定义,需要加这个关键词 (2)强制转换格式u16转u8,对于数组(u8*),对于参数(u8)2、十六进制存储 u16Tochar(PulseTab0, 200);buffer1[0]=t>>8;buffer1[1]=t&0xff;memcpy(buffer1+5,buffer,400);u16Tochar(Pul...原创 2018-04-14 15:58:21 · 1678 阅读 · 0 评论 -
基本知识(5)C++基本知识复习注意点
C++基本语法注意点1、C++程序结构:main() 是程序开始执行的地方2、C++标识符: (1)一个标识符以字母 A-Z 或 a-z 或下划线 _ 开始,后跟零个或多个字母、下划线和数字(0-9) (2)不允许出现标点字符,比如 @、& 和 %。C++ 是区分大小写的编程语言3、注释: 还可以#...原创 2018-04-14 16:02:47 · 163 阅读 · 0 评论 -
Qt将Sqlite中的表数据导出为CSV格式表格数据
开发环境ubuntu16.04+Qt5.6.1 WIN7+Qt5.6.1两个环境都测试过1.问题写一个小软件的时候,带有导出excel功能,但是要在linux下运行,最后了解到csv格式,实现起来方便多了,只是用excel打开中文有乱码的现象有一个简单的解决办法。2.代码写了一个小方法调用如下: ReadDataFromSqlWriteToCSV("student","student.c...转载 2018-04-17 22:08:31 · 2510 阅读 · 0 评论 -
C++面试题(二)
题(一):单链表的每个结点中包括一个指针link,它指向该结点的后继结点。现要将指针q指向的新结点插入到指针P指向的单链表结点之后,下面的操作系列哪个正确:A q = p -> link; p -> link= q -> link;B p = p -> link = q -> link; p -> link;C q -> link = p ->...原创 2018-04-18 09:24:17 · 319 阅读 · 0 评论 -
C++面试题(三)
题目一:sizeof是函数?准确的列出sizeof()功能。以下代码:int a[10];int *ptr;以下内容作为右值时,是否准确,如果准确,值为多少?sizeof(a);sizeof(a[10]);sizeof(a[1]);sizeof(ptr);sizeof(*ptr);sizeof(int)*ptr;(1)谈谈sizeof的理解?(2)是否深究细节?答题思路:sizeof不是函数,C语...原创 2018-04-18 09:26:26 · 206 阅读 · 0 评论 -
C++面试题(四)
题目一:编译运行如下程序出现什么结果:#include<iostream>using namespace std;class A{ A() { printf("A()"); } public: static A &get() { static A a; return a; }};int main...原创 2018-04-18 09:27:34 · 182 阅读 · 0 评论 -
c++面试题(五)
题目一: (1)typedef已存在的类型使用一个新的名字。(2)typedef改变原类型名称后,可以使用原类型名。(3)typedef说明新类型名时。格式为: typedef 原类型 新类型题目二:有以下程序:#include <stdio.h>main(){ char a[5][10] = {"one", "two", "three", "four", "five"}原创 2018-04-18 09:29:07 · 429 阅读 · 0 评论 -
C++面试题(六)
1、判断一个字符串是否是回文,例如“level”;解析:根据题目要求,可以从单词两端进行遍历比较。(1)计算要比较的单词字符串长度,如level长度是5,则需要比较两次。(2)第一次比较,看第一个和最后一个字符是否相同,(3)第二次比较,第二个符和倒数第二个字符比较是否相同。代码如下:.cpp 文件#include <iostream>using namepace std;void ...原创 2018-04-18 09:31:55 · 125 阅读 · 0 评论 -
C++面试题(七)
1、不使用printf,将十进制数以二进制和十六进制的形式输出解析:用字符串表示十进制数。如果不适用printf系列函数,我们可以通过位运算得到十进制数的二进制和和十六进制形式的字符串,再将字符串打印。#include <stdio.h>#include <stdlib.h>#include <string.h>//得到二进制字符串char *get2Strin...原创 2018-04-18 09:33:40 · 182 阅读 · 0 评论 -
C++面试题(八)
1、feof函数判断是否读到了文件结尾,在循环体内,fgetc函数是从file中读入一个字符,并将光标后移一个,用num++来记录总共多少字符。2、long 是4个字节,一次移动4个字节。q = (long *)p;q++;r = (char*)q;3、指针被释放后,指向还是原来那块,需要手动设置为NULL。4、宏定义只是简单替换:NUM = (M + 1) *(N + 1) /2 = 8#def...原创 2018-04-18 09:36:44 · 155 阅读 · 0 评论 -
C++面试题(九)
1、12、C/C++ &与&& |与|| 的区别:&&表示逻辑与的意思,即为and。当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。比如 12&&23的结果就是1,12&&-1 的结果是1,123&&0的结果就是0 &&还具有...原创 2018-04-18 09:41:21 · 254 阅读 · 0 评论 -
C++面试题(十)
1、在cout和多数C++表达式中,char数组名,char指针以及用双引号括起的字符串常量都被解释为字符串第一个字符的地址。题中,p是包括字符s的char元素地址。cout对象认为char的地址是字符串的地址,因此打印改地址处的字符,然后继续打印后面的字符,直到遇到空字符位置,所以会打印string。依次类推,p+3 则会打印ing.3、友元函数和友元类是不能直接访问类的私有成员的,只能通过类的...原创 2018-04-18 09:43:08 · 203 阅读 · 0 评论 -
C++面试题(十一)
原创 2018-04-19 09:14:54 · 270 阅读 · 0 评论 -
C++面试题(十二)
1. C 和 C++ 区别2. const 有什么用途主要有三点: 1:定义只读变量,即常量 2:修饰函数的参数和函数的返回值 3: 修饰函数的定义体,这里的函数为类的成员函数,被const修饰的成员函数代表不修改成员变量的值3. 指针和引用的区别 1:引用是变量的一个别名,内部实现是只读指针 2:引用只能在初始化时被赋值,其他时候值不能被改变,指针的值可...转载 2018-04-19 09:15:16 · 179 阅读 · 0 评论 -
C++之阻塞和非阻塞区别
阻塞就是干不完不准回来, 非阻塞就是你先干,我现看看有其他事没有,完了告诉我一声我们拿最常用的send和recv两个函数来说吧... 比如你调用send函数发送一定的Byte,在系统内部send做的工作其实只是把数据传输(Copy)到TCP/IP协议栈的输出缓冲区,它执行成功并不代表数据已经成功的发送出去了,如果TCP/IP协议栈没有足够的可用缓冲区来保存你Copy过来的数据的话...这时候就...转载 2018-06-16 21:24:47 · 5417 阅读 · 0 评论