c++
Rui_Freely
心之所向,必能达成
展开
-
Linux 实现数据的定时保存和删除的功能
前言:最近项目需要10分钟保存一次相机的数据,删除24小时过期的数据,经过一天的努力和完善,终于完成该需求。1).设置一个定时器,10分钟保存一个视频.mp4格式。2)获取系统时间保存文件格式是月/日/时/分/秒。3).查找指定路径下的超过24小时数据,删除。4).向终端发送指令,请求相机的数据。原创 2022-11-09 11:15:23 · 399 阅读 · 0 评论 -
QT 实现excel表格的读取,并处理时间格式的数据
最近的一个需求是从excel表格中读取数据,进行比较。怕时间长忘记这部分代码,先记录下。Excel表格数据如下:要获取时间、lat、lon数据,代码如下:void FileHandle::handleExcel(){ /* 1:连接控件Excel 2: 打开工作簿(新建或打开Excel文件) 3: 打开sheet 4: 获取行数,列数 5: 读和写 6:设置样式 7: 保存文件 8:另存为*/ //1:连接控件E.原创 2020-10-14 10:16:43 · 2005 阅读 · 1 评论 -
计算机网络七层协议
OSI(open system interconnect开放系统互联)七层模型:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。对等层之间不能相互直接通信,各层之间是严格单向依赖,上层使用下层提供的服务,下层向上层提供服务。1.物理层(比特bit)通过媒介传输比特,确定机械及电气规范。规定如何为网络通信实现最底层的物理连接。如:如何使用电缆和接头的类型、用来传送信号的电压...转载 2019-04-02 09:42:32 · 196 阅读 · 0 评论 -
深入理解Windows消息机制
今天我们来学一学Windows消息机制,我们知道在传统的C语言程序中,当我们需要打开一个文件时,我们可以调用fopen()函数,这个函数最后又会调用操作系统提供的函数以此来打开文件。而在Windows编程中,不仅用户可以调用系统的API函数,反之,系统也可以调用应用程序,而这些调用就是通过Windows的消息机制来实现的。Windows程序设计是一种完全不同于传统的DOS方式的程序设计方法,它是一...转载 2019-03-18 09:55:09 · 834 阅读 · 0 评论 -
C++里面是不是所有的动作都是main()函数引起的(面试宝典笔记)
不是对于C++程序而言,第一:静态变量、全局变量、全局对象的分配早在main()函数之前已经完成了,第二:系统会为某个启动的程序分配地址空间,创建进程和主线程,并为main()指供参数(如果有的话),然后才转到main()执行,第三:是C/C++的运行时启动函数:wWinMainCRTStartup引起的,main函数也接受这个函数的调用!。所以并不是所有的动作都是由main()引起的,只是...原创 2019-03-07 18:17:29 · 737 阅读 · 0 评论 -
Qt消息机制和事件
事件事件(event)是由系统或者 Qt 本身在不同的时刻发出的。当用户按下鼠标、敲下键盘,或者是窗口需要重新绘制的时候,都会发出一个相应的事件。一些事件在对用户操作做出响应时发出,如键盘事件等;另一些事件则是由系统自动发出,如计时器事件。在前面我们也曾经简单提到,Qt 程序需要在main()函数创建一个QApplication对象,然后调用它的exec()函数。这个函数就是开始 Qt 的事...转载 2019-03-07 16:37:41 · 359 阅读 · 0 评论 -
c++继承中的内存布局(转载某位前辈的,讲解继承中关于内存很深刻详细)
1 前言 了解你所使用的编程语言究竟是如何实现的,对于C++程序员可能特别有意义。首先,它可以去除我们对于所使用语言的神秘感,使我们不至于对于编译器干的活感到完全不可思议;尤其重要的是,它使我们在Debug和使用语言高级特性的时候,有更多的把握。当需要提高代码效率的时候,这些知识也能够很好地帮助我们。本文着重回答这样一些问题:1、类如何布局?2、成员变量如何访问?3、成员...转载 2019-03-04 17:23:05 · 444 阅读 · 0 评论 -
c++拷贝构造函数详解
一、什么是拷贝构造函数 首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=100;int b=a;而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。 #include<iostream>using namespace std;class CExampl...转载 2019-03-04 11:21:11 · 385 阅读 · 0 评论 -
sizeof(结构体)的分析
一、为什么结构体计算这么乱?答案是字节对齐,计算机存储系统中以Byte为单位存储数据,不同数据类型所占的空间不同,如:整型(int)数据占4个字节,字符型(char)数据占一个字 节,短整型(short)数据占两个字节,等等。计算机为了快速的读写数据,默认情况下将数据存放在某个地址的起始位置,如:整型数据(int)默认存储 在地址能被4整除的起始位置,字符型数据(char)可以存放在任...原创 2019-03-14 10:53:37 · 27749 阅读 · 6 评论 -
写一个函数,将其中的 都转换成4 个空格
写一个函数,将其中的\t 都转换成4 个空格。个题目看似很简单,其实里面潜藏着陷阱!关键的问题就在于'\t'是一个字符,而一个空格为一个字符,这样就不能简单地将'\t'换成4个空格了,一个‘\t’直接换的话也只能换成一个空格,所以要达到换成4个空格的目的,还得将后面的字符逐个后移,这也正是陷阱的所在!为了便于观察,这里我把空格改成‘*’输出。//将其中的\t 都转换成4 个空格...原创 2019-03-05 18:25:07 · 315 阅读 · 0 评论 -
C++链表学习笔记
如果要保存一些数据类型相同的变量,比如n个int类型的变量,就可以存放在一个数组中,然后通过下标方便的访问。可是数组的缺点也比较多,第一个就是在声明数组的时候,数组的长度必须是明确的,即便是动态声明一个数组,处理器必须要知道长度才能在内存中找出一段连续的内存来保存你的变量。第二个缺点也就是上一句中说到的,数组在内存中的地址必须是连续的,这样就可以通过数组首地址再根据下标求出偏移量,快速...转载 2019-03-05 16:28:52 · 253 阅读 · 0 评论 -
C/C++中堆和栈的区别
一、预备知识—程序的内存分配由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack):由编译器自动分配释放,存放函数的参数值,局部变量等。其操作方式类似于数据结构中的栈。2、堆区(heap):一般由程序员分配释放(malloc/free、new/delete),若程序员不释放,程序结束时可能由操作系统回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。3、全局区(...转载 2019-03-05 15:54:09 · 108 阅读 · 0 评论 -
面试中容易问到的strcpy实现过程
已知strcpy函数的原型是:char *strcpy(char *dst, const char *src);实现strcpy函数 解释为什么要返回char * 假如考虑dst和src内存重叠的情况,strcpy该怎么实现1.strcpy的实现代码char * strcpy(char *dst,const char *src) //[1]{ ass...原创 2019-03-01 16:40:59 · 299 阅读 · 0 评论 -
指针参数前为什么要加const关键字
constchar*chconst在*前面表示这是一个字符串常量指针,它所指向的字符串不能被修改,但是这个指针的指向可以改变,它和char const *ch是一样的,比如:constchar*ch="123";//指向常量字符串123,123的内容不能被修改,但可以改变ch的指向ch="HelloWorld!";//可以改变ch的指向如果const在*的后面...原创 2019-03-01 11:33:34 · 2646 阅读 · 1 评论 -
通过实例分析sizeof和strlen的区别
char str[20]="0123456789";int a=strlen(str); /*a=10;strlen 计算字符串的长度,以\0'为字符串结束标记。int b=sizeof(str); /*b=20;sizeof 计算的则是分配的数组str[20] 所占的内存空间的大小,不受里面存储的内容影响char *str1="absde";char str2[]="...转载 2019-03-01 10:38:01 · 115 阅读 · 0 评论 -
C/C++数组初始化的一些误区分析
今天在使用strcpy的功能的时候,碰到数组没有初始化导致程序失败的问题,先把程序失败的图片贴出来。分析:主要原因是局部变量的数组没有进行数组的初始化工作,导致i=7及以后的申请空间分配随机数,所以在使用数组前要进行初始化,下面是总结关于数组初始化的一些问题。以前我这样初始化一个数组,并自我感觉良好:int a[5] = { 0 }; // 全部初始化为0这种简单的...原创 2019-03-01 09:48:28 · 373 阅读 · 0 评论 -
QT中野指针问题。
错误提示:Signal received The inferior stopped because it received a signal from the Operating System. Signal name : SIGSEGV Signal meaning : Segmentation fault这个错误说明程序中有野指针,断点以下很容易找出错误。代码分析...原创 2018-10-26 18:18:56 · 4969 阅读 · 2 评论 -
C++中new/delete以及new[]/delete[]的使用
本篇文章参考C++Primer后,对new/delete进行总结和分析,重点其理解运行的机制。原创 2017-08-18 16:59:17 · 260 阅读 · 0 评论