c/c++
文章平均质量分 68
iteye_34
这个作者很懒,什么都没留下…
展开
-
eclipse c++修改注释字体大小
使用Eclipse C++发现注释的字体大小比代码的要小,看起来很费劲。打开Window --> Preferences --> General --> Appearance --> Colors and Fonts --> Basic --> Text Font --> Edit 发现里面的大小为10,然后改成小六,就好了。 ...原创 2013-04-26 11:07:58 · 378 阅读 · 0 评论 -
Log4c学习笔记 (转)
1.Log工具简单比较Log4cpp & Log4CPlus:C++的日志库,可移植移性相对差些 Log4c:C的日志库,基本上都是一些纯c的东西,移植性较好2.Log4c的基本概念 Log4c中有三个重要的概念, Category, Appender, Layout。 Category用于区分不同的日志,在一个程序中我们可以通过Category来指...原创 2012-06-28 14:24:51 · 328 阅读 · 0 评论 -
log4c使用心得(转)
一、安装 我看网上好多人介绍log4c安装的时候都说有两个步骤:先下载expat安装包并安装expat,然后下载log4c安装包并安装log4c。这么看来,log4c是依赖expat的。但是有时候我们不想使用的日志系统还要依赖别的库,毕竟现在的开源日志系统很多,这样一来log4c就没有那么大的优势了。所以我仔细看了log4c的README文档,发现log4c模块默认情况下是使用ex...原创 2012-06-28 14:08:30 · 285 阅读 · 0 评论 -
log4c
Log4c 使用 注:【转载请注明文章来源、保持原样】出处:http://www.cnblogs.com/jyli/archive/2010/02/11/1660606.html作者:李嘉昱最近想找个好用的Log工具,比较了一下流行的开源Log工具Log4c,Log4CPP, Log4CXX等,觉得还是Log4c比较合适。Log4cxx需要依赖于...原创 2012-06-28 14:03:29 · 101 阅读 · 0 评论 -
string::size_type类型
string::size_type类型从逻辑上来讲,size()成员函数似乎应该返回整型数值,或如2.2节“建议”中所述的无符号整数。但事实上,size操作返回的是string::size_type类型的值。我们需要对这种类型做一些解释。string类类型和许多其他库类型都定义了一些伙伴类型(companion types)。这些伙伴类型使得库类型的使用是机器无关的(machine-ind...原创 2012-06-28 10:28:29 · 150 阅读 · 0 评论 -
C++string类常用函数
string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常 s...原创 2012-06-28 09:19:17 · 79 阅读 · 0 评论 -
STL map常用操作简介
1。目录 map简介 map的功能 使用map 在map中插入元素 查找并获取map中的元素 从map中删除元素 2。map简介 map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。 3。map的功能 自动建立Key - v...原创 2012-06-27 14:04:30 · 72 阅读 · 0 评论 -
STL中map用法详解
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会...原创 2012-06-27 14:00:43 · 77 阅读 · 0 评论 -
linux c 环境控制篇
getenv(取得环境变量内容) 相关函数 putenv,setenv,unsetenv表头文件 #include<stdlib.h>定义函数 char * getenv(const char *name);函数说明 getenv()用来取得参数name...原创 2012-06-27 13:36:20 · 89 阅读 · 0 评论 -
C++ assert机制
C++ assert机制ASSERT()是一个调试程序时经常使用的宏,在程序运行时它计算括号内的表达式,如果表达式为FALSE (0), 程序将报告错误,并终止执行。如果表达式不为0,则继续执行后面的语句。这个宏通常原来判断程序中是否出现了明显非法的数据,如果出现了终止程序以免导致严重后果,同时也便于查找错误。 原型定义:#include <assert.h>...原创 2014-03-06 10:21:30 · 152 阅读 · 0 评论 -
Linux可执行文件执行时找不到共享库
编译程序时使用了如下参数指定了链接库的位置,但是执行时提示无法加载共享库。 #gcc test.c -L /usr/local/rrdtool-1.2.30/lib -lrrd现象: error while loading libraries:librrd.so.2:cannot open shared object file:No such fi...原创 2014-03-31 18:09:57 · 733 阅读 · 0 评论 -
c++ cin输入int的用法
int icin = 0; for(int i =0; i < 5; i++) { cin >> icin; if(cin.fail()) { cin.clear(); cin.sync(); } cout <<":"<< icin << endl; }...原创 2014-06-10 11:17:22 · 1680 阅读 · 0 评论 -
eclipse c++中出现Type 'xxxx' could not be resolved的处理方法
修改工程的indexer属性就OK了。原创 2013-04-25 14:24:33 · 1063 阅读 · 0 评论 -
配置Eclipse+MinGW开发C/C++程序(转)
Eclipse 3.3已经发布好一段时间了。我曾用Eclipse之前的版本加上CDT组件开发C/C++程序。但是也许是因为对配置不够熟悉的缘故,配置起来非常痛苦,使用起来也觉得特别别扭,所以最后还是不得不换用了VC 2005 Express。Eclipse 3.3的下载页面中,针对不同的开发人员提供了不同的下载包。其中“Eclipse IDE for C/C++ Developers”一项让...原创 2013-04-25 14:02:34 · 110 阅读 · 0 评论 -
eclipse c++调用一个库
在eclipse下调用一个库要干三件事,1,添加头文件地址2,添加lib文件地址3,添加link选项例子:如果我要用ogre的话1,添加h文件, 也就是 右击项目 -> C/C++ General -> Paths and Sym.... -> include -> GUN C++ -> add "D:\Disk\CTools\OgreSDK_mingw_v1-7-2...原创 2013-04-25 13:54:36 · 106 阅读 · 0 评论 -
Makefile条件编译debug版和release版
一般,在开发测试阶段用debug版本,而上线发布用release版本。使用Makefile定制编译不同版本,避免修改程序和Makefile文件,将会十分方便。读了一些资料,找到一个解决方法,Makefile预定义宏与条件判断,结合make预定义变量,进行条件编译。 比如,有一个test.cpp,包含这段代码#ifdef debug//your code#endif...原创 2013-04-22 17:19:43 · 151 阅读 · 0 评论 -
Eclipse C++下不构建指定文件
打开文件属性:在c/c++ build下的settings里勾选Exclude resource from build。这样在构建的时候就不会构建这个文件了,同时文件的图标上会增加一条斜线。原创 2013-04-18 13:56:22 · 292 阅读 · 0 评论 -
C++标准库Vector & Iterator用法
//程序1#include <iostream>#include <vector>//using namespace std;using std::cin;using std::cout;using std::endl;using std::vector;using std::string;//vector's demo classclass VectorDemo{pri...原创 2013-04-17 16:14:09 · 166 阅读 · 0 评论 -
C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
一般我们进行成员变量初始化用两种方法 第一种是通过在构造函数内赋值 class Point{public:Point(){ _x = 0; _y = 0;};Point( int x, int y ){ _x = 0; _y = 0; }private:int _x, _y;}; 第二种是使用初始化列表 class Point{public:Point():_x(0),_y(0){};Point...原创 2013-04-17 15:46:59 · 85 阅读 · 0 评论 -
gcc常用编译命令
GCC 命令行详解 文章出处:blog 作者: 发布时间:2006-11-02 1。gcc包含的c/c++编译器gcc,cc,c++,g++,gcc和cc是一样的,c++和g++是一样的,(没有看太明白前面这半句是什么意思:))一般c程序就用gcc编译,c++程序就用g++编译2。gcc的基本用法gcc test.c这样将编译出一个名为a.out的程序gcc test.c -o tes...原创 2013-04-03 16:00:13 · 164 阅读 · 0 评论 -
linux_C_environ变量
environ变量:environ变量的声明如下:#include <stdlib.h>extern char **environ;这个变量是用来打印环境变量。#include <stdio.h>#include <stdlib.h>extern char **environ;int main(){ char **env =...原创 2012-06-27 13:21:18 · 99 阅读 · 0 评论 -
Makefile(转)
Makefile文件如下:func: main.o func1.o func2.o gcc main.o func1.o func2.o -o funcmain.o: main.c mylib.h gcc -Wall -c main.cfunc1.o: func1.c mylib.h gcc -Wall -c func...原创 2012-06-26 09:30:03 · 105 阅读 · 0 评论 -
GDB调试精粹及使用实例 (转)
一:列文件清单1. List(gdb) list line1,line2二:执行程序要想运行准备调试的程序,可使用run命令,在它后面可以跟随发给该程序的任何参数,包括标准输入和标准输出说明符(<和>)和外壳通配符(*、?、[、])在内。如果你使用不带参数的run命令,gdb就再次使用你给予前一条run命令的参数,这是很有用的。利用set args 命令就可以修改发送给程序的参数,而使...原创 2013-07-16 16:21:44 · 95 阅读 · 0 评论 -
Xerces-C++学习之——查询修改XML文档 (转)
/** ===========================================================================** Filename: ParseXML.cpp** Description: This is an example of the use of Xerces-C++ operation XML.** Version: 1.0* Crea...原创 2013-07-16 16:02:54 · 460 阅读 · 0 评论 -
Xerces-C++学习之——创建XML文档 (转)
代码如下:/** ===========================================================================** Filename: CreateXML.cpp** Description: This is an example of the use of Xerces-C++ operation XML.** Version: 1.0...原创 2013-07-16 15:56:40 · 515 阅读 · 0 评论 -
C字符串和标准的C++string类(转)
一、C字符串c字符串是char类型的数组。char str[MAX]1.在c++中并没有内置的机制保证程序不会出现数组元素个数超出数组大小的情况。cout<<setw(MAX)<<str; setw指定输入缓冲区允许的最大字符个数,用户即使输入了过多的字符,<<运算符也不会把他放到数组中。2.cin.get():来读取包含空格的文本。这样的语法...原创 2013-07-09 10:03:28 · 185 阅读 · 0 评论 -
自己设计C++完善的异常处理类(转)
如何写一个异常处理类是一个不太容易的事情,最近刚好接触了一些不错的代码,看到了一些技巧,这里和大家分享一下。一个相对完善的异常处理类(以及附加的一些东西)应该能够处理下面的一些功能:1) 能够方便的定义异常类的继承树2) 能够方便的throw、catch,也就是在代码中捕获、处理代码的部分应该更短3) 能够获取异常出现的源文件的名字、方法的名字、行号4) 能够获取异常出现的调...原创 2013-06-08 09:45:48 · 255 阅读 · 0 评论 -
玩转Google开源C++单元测试框架Google Test系列(gtest)(转)
前段时间学习和了解了下Google的开源C++单元测试框架Google Test,简称gtest,非常的不错。 我们原来使用的是自己实现的一套单元测试框架,在使用过程中,发现越来越多使用不便之处,而这样不便之处,gtest恰恰很好的解决了。其实gtest本身的实现并不复杂,我们完全可以模仿gtest,不断的完善我们的测试框架, 但最后我们还是决定使用gtest取代掉原来的自己的测试框架,...原创 2013-05-28 09:33:22 · 77 阅读 · 0 评论 -
C++头文件ctype.h
ctype.h ctype.h里的函数 1 字符测试函数 1> 函数原型均为int isxxxx(int) 2> 参数为int, 任何实参均被提升成整型 3> 只能正确处理处于[0, 127]之间的值 2 字符映射函数 1> 函数原型为int toxxxx(int) 2> 对参数进行检测, 若符...原创 2013-05-23 14:49:55 · 287 阅读 · 0 评论 -
c++ string类大全(转)
string 是C++中的字符串。 字符串对象是一种特殊类型的容器,专门设计来操作的字符序列。C++ Primer书中首先谈到的是构造函数即初始化问题。书中提到了几种常见的构造函数string s1;string s2(s1);string s3("abce");string s4(n,'c');接下来是对string对象的读写:1.读入未知数目的string对象...原创 2013-05-02 17:34:38 · 99 阅读 · 0 评论 -
Boost智能指针——shared_ptr (转)
boost::scoped_ptr虽然简单易用,但它不能共享所有权的特性却大大限制了其使用范围,而boost::shared_ptr可以解决这一局限。顾名思义,boost::shared_ptr是可以共享所有权的智能指针,首先让我们通过一个例子看看它的基本用法:#include <string>#include <iostream>#include <boost...原创 2013-07-16 17:27:30 · 83 阅读 · 0 评论 -
Xerces C++ 学习笔记 (转)
1. 初始化平台:XMLPlatformUtils::Initialze()2. 销毁平台:XMLPlatformUtils::Terminate();3. 加载分析报文XercesDOMParser *parser = new XercesDOMParser();Parser->parse( 参数 ); 这个参数可以直接是文件名,也可以是内存的数据,...原创 2013-07-24 17:04:07 · 113 阅读 · 0 评论 -
Xerces浅析
本篇文章主要讲述项目开发过程中如何使用Xerces-C++,包括xerces的安装,XML的解析,XML的Schemal验证,XML的组装等内容,本文所使用的代码基于xerces-c-3.1.1版本。一、Xerces简介Xerces是一个开放源代码的XML语法分析器。Xerces-C++ 的前身是 IBM 的 XML4C 项目。XML4C 和 XML4J 是两个并列的项目,而 XML4J...原创 2013-07-30 14:15:30 · 1207 阅读 · 0 评论 -
makefile文件的编写规则及实例 (转)
makefile文件的编写规则及实例 (2007-07-18 01:18)分类: Linux系统及编程 1.一个简单的makefile例子 假设一个程序有两个文件file1.c,file2.c,每个文件都包含head.h,生成file可执行文件 file:file1.o file2.o 附属行(文件的...原创 2012-06-26 09:11:17 · 463 阅读 · 0 评论 -
C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区...
栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用。和堆一样,用户栈在程序执行期间可以动态地扩展和收缩。 堆,就是那些由 new 分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个 new 就要对应一个 delete。如果程序员没有...原创 2013-11-19 10:20:58 · 110 阅读 · 0 评论 -
C++使用CLI连接DB2
<!--推荐博文--> DB2调用层接口(DB2 Call Level Interface简称CLI)是DB2数据库访问的基础接口。下面例子依次执行了连接DB2数据库创建操作句柄查询操作新增操作断开连接释放资源示例代码:cliTest.cpp点击(此处)折叠或打开#include <stdio.h>...原创 2013-11-15 09:31:33 · 1478 阅读 · 0 评论 -
使用 C++ 处理 JSON 数据交换格式
一、摘要JSON 的全称为:JavaScript Object Notation,顾名思义,JSON 是用于标记 Javascript 对象的,JSON 官方的解释为:JSON 是一种轻量级的数据传输格式。本文并不详细介绍 JSON 本身的细节,旨在讨论如何使用 C++ 语言来处理 JSON。关于 JSON 更具体的信息,可参见 JSON 官网:http://www.json.org。...原创 2013-09-10 11:10:44 · 127 阅读 · 0 评论 -
C++的Json解析库:jsoncpp和boost (转)
JSON(JavaScript Object Notation)跟xml一样也是一种数据交换格式,了解json请参考其官网http://json.org/,本文不再对json做介绍,将重点介绍c++的json解析库的使用方法。json官网上列出了各种语言对应的json解析库,作者仅介绍自己使用过的两种C++的json解析库:jsoncpp(v0.5.0)和Boost(v1.34.0)。一....原创 2013-09-10 10:40:17 · 346 阅读 · 0 评论 -
C++ JsonCpp 使用(转)
前言JSON是一个轻量级的数据定义格式,比起XML易学易用,而扩展功能不比XML差多少,用之进行数据交换是一个很好的选择JSON的全称为:JavaScript Object Notation ,顾名思义,JSON是用于标记javascript对象的,详情参考http://www.json.org/。本文选择第三方库JsonCpp来解析json,JsonCpp是比较出名的c++解析库,在jso...原创 2013-09-10 10:21:47 · 102 阅读 · 0 评论 -
C++中map容器的说明和使用技巧(转)
C++中map容器提供一个键值对容器,map与multimap差别仅仅在于multiple允许一个键对应多个值。一、map的说明 1 头文件 #include <map> 2 定义 map<string, int> my_Map; 或者是typedef map<string, int> MY_MAP; MY_MAP my_Map; 3 插入数据 (1) ...原创 2013-08-22 15:01:58 · 90 阅读 · 0 评论