linuxC/C++编程
文章平均质量分 64
乌托邦2号
乌托邦
展开
-
c++多叉树的处理
struct osg_tree{ double code; std::string file_name; std::vector<osg_tree> sub_nodes;};//多叉树的重组//获取指定的级别(或修改成数据的判断)std::vector<int> v_contains_level{ 15, 16, 18, 20, 22 }; void rebuild_tree(osg_tree &v_root){ std::vector<osg_.原创 2021-03-02 16:05:37 · 600 阅读 · 0 评论 -
linux下c++实现string与time_t互相转换
#include <time.h>#include <string>#include <iostream>using namespace std;time_t string2time_t(const string string_time);string time_t2string(const time_t time_t_time);int main(){ string strTime = "2014/03/28 18:25:26"; ti.原创 2020-07-10 17:38:18 · 1244 阅读 · 0 评论 -
C++实现判断一个字符串是否为UTF8或GBK格式的方法
本文实例讲述了C++实现判断一个字符串是否为UTF8或GBK格式的方法。分享给大家供大家参考,具体如下:在处理外部数据的时候,很可能因为数据格式不一样而导致乱码,甚至导致某些程序挂掉。鉴于对多数系统来说,使用是更被广泛使用的utf8,所以判断是不是utf8格式显得很重要了。下面是一个判断字符串是否为utf8的函数:bool is_str_utf8(const char* str){...原创 2019-11-21 17:56:22 · 8836 阅读 · 2 评论 -
GDAL之OGR入门
这篇文档是为了说明怎样从一个文件里用OGR的C++类读取和写入数据。强烈建议在读此文档之前首先阅读介绍OGR体系结构介绍文档,里面介绍了OGR里主要的类以及他们所完成的功能。从OGR 读取数据 为了描述如何通过OGR读取数据,我们编写一个小的示例,从OGR文件里读出数据,并按照一定格式输出。 首先我们需要注册我们渴望读取的所有格式。这个通过调用OGRRegister转载 2018-05-08 00:15:26 · 7795 阅读 · 0 评论 -
linux下c/c++实例之十四c实现的bt软件下载(记录)
一、简介 可能许多人使用过比特彗星(BitComet)、比特精灵(BitSpirit)、迅雷下载过自己喜欢的影片、电视剧、网络游戏;还有很多人使用过PPLive、PPStream、沸点、QQ直播等免费的网络电视直播软件在线观看自己喜欢的影片。所有这些软件都采用了一种近年来流行起来的协议,BitTorrent协议,简称BT协议。 2003年,年轻的软件工程师Bram C...原创 2016-04-30 23:48:22 · 5445 阅读 · 12 评论 -
linux下c/c++实例之十七哈夫曼编码译码实现
一、简介大学期间用vc++开发的哈夫曼编码和译码的功能,完成发送端对传送数据的编码和接收端对传送来的数据的译码。哈夫曼编码/译码实现主要有四个功能模板:一是创建哈夫曼树,从终端输入字符集大小为n,即n个字符和n个权值,建立哈夫曼树;二是输出哈夫曼树,将建立的哈夫曼树用某种树的存储方式存储后输出,即字符与编码的一一对应关系;三是哈夫曼编码,利用已建立好的哈夫曼树对输入的原文进...原创 2016-05-31 23:58:33 · 2315 阅读 · 0 评论 -
linux下c/c++实例之十六简单模拟迷宫
一、简介大学期间用vc++开发的简单的迷宫,其中0代表可通1代表不可通。迷宫中主要有二个功能模块,一是用栈保存迷宫通路,二是用队列实现迷宫最短路径。二、详解1、前景和后景的颜色控制system()函数中的cls进行清屏操作保证界面的美观,color进行设置前景和后景的颜色,随时改变颜色,以达到视觉的享受。2、代码(1)main.cpp...原创 2016-05-31 23:57:00 · 2141 阅读 · 0 评论 -
linux下c/c++实例之十五简单的学生信息管理系统
一、简介大学期间用vc++开发的简单的学生信息管理系统,主要有添加学生信息、删除学生信息、修改学生信息、查询学生信息、显示学生信息、综合统计(各课程平均成绩和合格率)、总分排序和退出系统。设计:二、详解1、代码(1)main.cpp#include<iostream>#include<fstream>#include<...原创 2016-05-31 23:54:43 · 9126 阅读 · 1 评论 -
centos下C编程调用libvirt的API访问KVM虚拟机
一、简介 libvirt是一套免费、开源的支持Linux下主流虚拟化工具的C函数库,其旨在为包括Xen在内的各种虚拟化工具提供一套方便、可靠的编程接口,支持与C,C++,Ruby,Python等多种主流开发语言的绑定。当前主流Linux平台上默认的虚拟化管理工具virt-manager(图形化),virt-install(命令行模式)等均基于libvirt开发而成。原创 2015-01-16 17:37:01 · 5339 阅读 · 4 评论 -
C++中的容器类详解
C++中的容器类包括“顺序存储结构”和“关联存储结构”,前者包括vector,list,deque等;后者包括set,map,multiset,multimap等。若需要存储的元素数在编译器间就可以确定,可以使用数组来存储,否则,就需要用到容器类了。1、vector 连续存储结构,每个元素在内存上是连续的; 支持高效的随机访问和在尾端插入/删除操作,但其他位原创 2015-12-18 15:05:55 · 20795 阅读 · 0 评论 -
C++空类默认函数(编译器处理)
定义一个空的C++类,例如class Empty{}一个空的class在C++编译器处理过后就不再为空,编译器会自动地为我们声明一些memberfunction,一般编译过去就相当于class Empty{public:Empty(); // 缺省构造函数Empty( const Empty& ); // 拷贝构造函数~Empty(); // 析构函数E转载 2015-12-21 14:00:33 · 1556 阅读 · 0 评论 -
使用gdal的ogr创建shapefile文件(c++)
1.ogr使用ogr库创建点状要素的shapefile文件以及将经纬度坐标转为投影坐标。实例如下:#include "ogrsf_frmts.h"#include "gdal.h"#include "gdal_priv.h"#include "cpl_string.h" #include #include #include using namespace std;v转载 2017-05-25 20:36:10 · 9623 阅读 · 1 评论 -
16进制编码与字符编码的相互转化
1、16进制编码转化为字符编码[cpp] view plain copy#include "stdafx.h" #include using namespace std; int _tmain(int argc, _TCHAR* argv[]) { // 待输出的字符串(16进制编码表示)转载 2018-01-26 09:23:46 · 11203 阅读 · 0 评论 -
C++ 获取linux和windows系统的用户名
(1)获取linux系统的用户名: 通过 struct passwd *getpwuid(uid_t uid)函数; 该函数返回passwd结构体,此结构体中包含用户名字段struct passwd {char *pw_name; /*user name */char *pw_passwd; /*user password */uid_t pw_uid; /*user id */gid_t pw...转载 2018-02-10 09:50:01 · 4095 阅读 · 0 评论 -
CentOS6.6系统中安装配置smb
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务,今天小编为各位介绍在CentOS6.6系统中安装配置Samba方法。 安装Samba查看Samba是否转载 2018-02-06 10:31:07 · 1954 阅读 · 0 评论 -
VS2010 语法错误: 标识符“__RPC__out_xcount_part” 解决方法
问题描述:在vs2010上重新编译时,发现以下error:1>------ 已启动生成: 项目: Test, 配置: Debug Win32 ------1> stdafx.cpp1>c:/program files/microsoft sdks/windows/v7.0a/include/objidl.h(11280): error C2061: 语法错误: 标识符“__RPC...转载 2018-05-23 15:59:27 · 1980 阅读 · 0 评论 -
使用QT5对access数据库进行操作,读取Access数据库表名中文乱码问题
#include <QtCore/QCoreApplication>#include <QTextStream>#include <QtDebug>#include <QSqlDatabase>#include <QStringList>#include <QSqlError>#include <QSqlI...转载 2018-05-23 17:19:25 · 4286 阅读 · 3 评论 -
objTo3d-tiles:将obj模型文件转换为三维瓦片
objTo3d-tilesNode command line tool convert obj model file to 3D Tiles, based on obj2gltf.Online DemonstrationNOTE: Only support .b3dm for now!Please use Cesium after v1.37, cause this 3d til...转载 2018-11-22 15:19:16 · 17519 阅读 · 6 评论 -
VC++操作Excel文档的方法,读取,查询,写入,修改,删除
一、介绍一个外部类CSpreadSheet#include "CSpreadSheet.h"该类的下载地址:http://www.codeproject.com/KB/database/cspreadsheet.aspx缺陷该类智能对EXCEL文档经行读写,查询,删除操作,但不能设置单元格的样式,字体样式的信息二、下面是该类的使用方法,更详细的内容请看源下载地址二、 新建Excel文...转载 2019-03-02 15:38:23 · 2301 阅读 · 0 评论 -
算法-计算无向图中两个节点之间所有的路径
1、深度优先遍历1.1 深度优先遍历的定义深度优先搜索(Depth_First Search)遍历类似于树的先根遍历,是树的先根遍历的推广。假设给定图G,图中所有顶点未曾被访问过,则深度优先搜索可以从图中某个顶点v出发,访问此顶点,然后依次从v的未被访问的邻接点出发深度优先遍历图,直至图中所有和v有路径相通的顶点都被访问到;若此时图中尚有顶点未被访问,则另选图中一个未曾...转载 2019-03-22 09:14:46 · 6465 阅读 · 0 评论 -
linux的aix下的makefile参考
一、详解(1)简单模板makefile:CC = OBJS = CFLAGS = TARGET = all:$(TARGET)$(TARGET):$(OBJS) $(CC) $(CFLAGS) -o $@ $(OBJS).SUFFIXES:.o .h.SUFFIXES:.cpp .o.cpp.o: $(CC) -c $(CFLAG原创 2015-11-01 22:28:40 · 3106 阅读 · 0 评论 -
linux下c/c++实例之十三C实现的简单的线程池
一、简介 线程池就是有一堆已经创建好了的线程,初始它们都处于空闲等待状态,当有新的任务需要处理的时候,就从这个池子里面取一个空闲等待的线程来处理该任务,当处理完成了就再次把该线程放回池中,以供后面的任务使用。当池子里的线程全都处理忙碌状态时,线程池中没有可用的空闲等待线程,此时,根据需要选择创建一个新的线程并置入池中,或者通知任务线程池忙,稍后再试。 为什么要转载 2015-11-17 13:52:25 · 4764 阅读 · 1 评论 -
linux下c/c++实例之十二cJSON库解析json字符串
一、简介 cJOSN库,仅有两个文件cJSON.c和cJSON.h。下载地址:http://sourceforge.net/projects/cjson/files/?source=navbar。二、详解1、cJOSN使用(1)json的数据结构:typedef struct cJSON { struct cJSON *next,*prev;// 数原创 2015-11-16 11:02:46 · 16339 阅读 · 0 评论 -
linux下c/c++实例之三只允许单个程序运行
一、简介 Linux下允许本程序只运行一次,以防止对共享数据的破坏。linux各个版本下的检测程序都不相同,但思想相同,可以重复使用。二、详解1、Centos下的单程序运行(1)代码singleton.cpp:#include <unistd.h>#include <iostream>#include <fcntl.h>#i...原创 2015-11-05 18:50:05 · 6946 阅读 · 3 评论 -
linux下c/c++实例之一万年历
一、简介 Linux系统自带万年历程序,可以使用cal 11 2015命令查看11月份的日历。二、详解1、代码一(1)calendar.c:#include #include #include int main(int argc, char **argv){ if (argc != 2) { printf("usage: [%s 2000/原创 2015-11-04 17:58:51 · 3030 阅读 · 3 评论 -
Linux Socket五种I/O模型
1)阻塞I/O(blocking I/O)2)非阻塞I/O (nonblocking I/O)3) I/O复用(select 和poll) (I/O multiplexing)4)信号驱动I/O (signal driven I/O (SIGIO))5)异步I/O (asynchronous I/O (the POSIX aio_functions))前四种都是同步转载 2015-02-11 10:58:48 · 8735 阅读 · 0 评论 -
linux下sqlite3的使用
一、sqlite-3.3.8编译安装请阅读在安装包里的 INSTALL或者README 文件。SQLite已经内置了,你不需要安装任何附加的软件(additional software)。Windows users可以下载SQLite扩展DLL。这里简单介绍一下:假设你得到的是源代码sqlite-3.3.8.tar.gz,这里将告诉你怎么编译它。解压sqlite-3.3.8.t转载 2015-06-30 11:51:49 · 18897 阅读 · 0 评论 -
编写一个自定义的String类
一、简介 C++标准库中包含一个string类,提供了一套封装好的数据以及处理这些数据的函数。为了熟悉这个类的内存管理情况,实现一下自定义的String类,涉及构造函数、复制构造函数、析构函数、重载运算符的操作,主要关注其内部指针的内存的重分配。二、详解1、代码实现:(1)代码String.h:#include using namespace std;原创 2015-02-04 23:00:51 · 9204 阅读 · 2 评论 -
C++空类编译器自动生成的6个成员函数
一、问题 在C++中,编译器会为空类提供哪些默认成员函数?分别有什么样的功能呢? 二、详解1、空类,编译器不会生成任何成员函数 对于空类,编译器不会生成任何的成员函数,只会生成1个字节的占位符。 有时可能会以为编译器会为空类生成默认构造函数等,事实上是不会的,编译器只会在需要的时候生成6个成员函数:一个缺省的构造函数、一个原创 2015-02-04 15:29:30 · 13879 阅读 · 5 评论 -
c++分配内存空间的重复
一、简介 最近写C++程序时,调试过程中打印了一下QList中使用的指针内存地址,意外发现以前使用的逻辑地址再delete后又被重新使用了,因此总是使用char *address1 = new char;char *address2 = new char;if (address1 != address2) {}来进行指针的比较,如果他们顺序执行没什么问题,地址肯定不同。但如果ne原创 2014-12-26 20:24:04 · 2255 阅读 · 0 评论 -
C++单例模式的介绍
单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出,GUI应用必须是单鼠标,MODEM的联接需要一条且只需要一条电话线,操作系统只能有一个窗口管理器,一台PC连一个键盘。 单例模式有许多种实现方法,在C++中,甚至可以直接用一个全局变量做转载 2015-01-27 20:56:52 · 1112 阅读 · 0 评论 -
C++ Class Size (C++ 类大小)
C++ Class Size (C++ 类大小) 2013-03-17 20:05:34| 分类: C++ | 标签:c++ class size 类大小 |举报 |字号 订阅最近在写B+Tree的时候突然发现对类节点的大小没算准,导致不知道固定大小的内存可以存几个节点。Google上得到了不少资料,先加以整理并加入一些自己的测试;一下都是l转载 2014-07-24 09:55:35 · 9215 阅读 · 0 评论 -
linux下c/c++实例之二日志记录及文件读取
Linux下封装一些函数将需要的日志信息打印到控制台或写入文件,并读取文件。原创 2015-11-05 10:16:20 · 4453 阅读 · 0 评论 -
linux下c/c++实例之四父检测子进程和信号处理
一、简介 Linux下fork创建子进程执行程序,而父进程检测子进程的执行过程并处理部分信号,当出现段错误生成core文件时被重新命名,以便能随时通过时间调试core。二、详解1、代码process_signal.cpp(测试程序):#include <iostream>#include <unistd.h>#include <as...原创 2015-11-06 11:35:22 · 2981 阅读 · 0 评论 -
linux下c/c++实例之五正则表达式字符串匹配
标准的C和C++不支持正则表达式,但有一些函数库可以辅助C/C++程序员完成这一功能。正则表达式常用函数:编译正则表达式 regcomp()、匹配正则表达式 regexec()、释放正则表达式 regfree()。原创 2015-11-06 14:28:34 · 9606 阅读 · 0 评论 -
Linux下C语言的本地化/国际化实现
在linux系统下,以c语言程序为例来实现程序的国际化,即让程序根据Linux系统不同的语言环境的不同来显示出对应该语言的文字,即先让c程序支持国际化然后再进行本地化翻译。Linux上实现这个过程需要用到xgettext和msgfmt这两个工具。Xgettext 是国际化的工具,用来提取程序中的字符串,生成*.po或是*.pot的文件,msgfmt是本地化的工具,用来编译翻译后的.po转载 2015-10-08 16:57:00 · 3977 阅读 · 0 评论 -
linux下c/c++总结
linux下C/C++代码的总结原创 2015-11-11 17:31:17 · 2977 阅读 · 0 评论 -
linux下c/c++实例之十一简单的计算器程序
Linux下实现的简单的计算器程序。原创 2015-11-12 18:05:43 · 3869 阅读 · 0 评论 -
linux下c/c++实例之十socket简单应用
通过socket扫描本机打开的tcp端口号,模拟用户名、密码登录服务器的过程、socket文件传输及模仿http服务器。原创 2015-11-11 17:15:55 · 4437 阅读 · 2 评论 -
linux下c/c++实例之十socket服务器实例
一、简介二、详解简单socket服务器和客户端(基础)服务器:/** socket简单编程 服务端 */ #include <stdio.h>#include <string.h>#include <sys/types.h>#include <sys/socket.h>#include <neti...原创 2015-11-01 22:00:20 · 9220 阅读 · 2 评论