C++
风吹柳絮
这个作者很懒,什么都没留下…
展开
-
检查IPV4是否合法可用
bool isIPV4Valid(const std::string &szIpAddr){ int nLength = szIpAddr.length(); if( 7 > nLength || 15 < nLength ) //0.0.0.0 ~ 255.255.255.255,所以IP地址字符串长度应为7~15之间 return false; int nNum = -1; //记录IP中的字段值 int nCount = 0; /原创 2020-07-02 19:45:34 · 591 阅读 · 0 评论 -
获取cpp文件名、函数名及行号
_ _FILE_ _ :获取文件名;_ _FUNCTION_ _:获取程序函数名称;_ _LINE_ _ :获取当前所在行号;int main(){QString szFile = __FILE__;QString szFunc = __FUNCTION__;int nLine = __LINE__;}...原创 2020-04-20 19:30:02 · 900 阅读 · 0 评论 -
C/C++程序创建多级文件夹
#include <iostream>#ifdef __POSIX__#include <unistd.h>#include <dirent.h>#else#include <io.h>#include <direct.h>#endif // __POSIX__int makeDirs(const char* szDi...原创 2019-11-07 15:47:48 · 927 阅读 · 0 评论 -
tinyxml使用
文件组成:2个头文件:tinystr.htinyxml.h4个源文件:tinystr.cpptinyxml.cpptinyxmlerror.cpptinyxmlparser.cpp下载地址https://sourceforge.net/projects/tinyxml/vs编译:“项目” >> “属性” >> “C/C++” >>...原创 2019-09-03 16:59:17 · 182 阅读 · 0 评论 -
try语句块和异常处理
异常处理机制为程序中异常检测和异常处理这两部分的协作提供支持。在C++语言中,异常处理包括:(1)throw表达式(throw expression),异常检测部分使用throw表达式来表示它遇到了无法处理的问题。我们说throw引发了异常。(2)try语句块(try block),异常处理部分使用try语句块处理异常。try语句块以关键字try开始,并以一个或多个catch子句结束。try语...原创 2019-05-10 17:40:34 · 1923 阅读 · 0 评论 -
布尔值bool
1、bool布尔值只有true和false两种数值,0时为false,其他均为true;2、bool布尔值不应参与运算:bool a = true;bool b = -a; // b = true !!!对大多数运算符来说,布尔类型的运算对象将被提升为int类型,当布尔变量为真,参与运算时将被提升成整数值1,对它求负后的结果是-1,在转换为布尔值并将其作为b的初始值,因此b = true;...原创 2019-05-10 14:39:22 · 3206 阅读 · 0 评论 -
C++引用与指针
引用(reference)并非对象,只是为已经存在的对象起了另外一个名字。另外,引用本身不是一个对象,所以不能定义引用的引用。定义引用时,程序把引用和它的初始值绑定(bind)在一起,而不是将初始值拷贝给引用。一旦初始化完成,引用将和它的初始值对象一直绑定在一起。因为无法令引用重新绑定到另外一个对象,因此引用必须初始化。而且,引用只能绑定在对象上,而不能与字面值或某个表达式的计算结果绑定在一起。...原创 2019-04-20 08:43:44 · 133 阅读 · 0 评论 -
C++名字的作用域
作用域(scope)包含了全局作用域(global scope)和块作用域(block scope)。嵌套的作用域:作用域能彼此包含,被包含(或者说被嵌套)的作用域称为内层作用域(inner scope),包含着别的作用域的作用域称为外层作用域(outer scope)。作用域中一旦声明了某个名字,它所嵌套着的所有作用域中都能访问该名字。同时,允许在内层作用域中重新定义外层作用域已有的名字,若...原创 2019-04-20 07:55:00 · 250 阅读 · 0 评论 -
C++标识符
C++的标识符(identifier)由字母、数字和下划线组成,其中必须以字母或下划线开头。标识符的长度没有限制,但对大小写字母敏感。变量命名规范:1、标识符要能体现实际含义;2、变量名一般用小写字母;3、用户自定义的类名一般以大写字母开头;4、如果标识符由多个单词组成,则单词间应有明显的区分。...原创 2019-04-20 07:39:17 · 5690 阅读 · 0 评论 -
C++中的初始化和赋值
初始化:创建变量时赋予其一个初始值。赋值:是把对象的当前值擦除,而以一个新值来替代。原创 2019-04-19 21:50:54 · 366 阅读 · 0 评论 -
C++转义序列
有两类字符程序员不能直接使用:一类是不可打印的字符,如退格或其他控制字符,因为它们没有可视的图符;另一类是在C++语言中有特殊含义的字符(单引号、双引号、问号、反斜线)。转义序列均以反斜线作为开始,C++语言规定的转义序列包括:问号 ?换行符 \n反斜线 \回车符 \r退格符 \b进纸符 \f双引号 "单引号 ’纵向制表符 \v横向制表符 \t报警(响铃...原创 2019-04-19 20:37:28 · 801 阅读 · 0 评论 -
string使用
1、但字面值和string对象相加时,必须确保每个加法运算符(+)的两侧的运算对象至少有一个是string;string s1;string s2 = s1 + “,”; //正确string s3 = “hello” + “world”; //错误:两个运算对象都不是string2、cctype头文件中的函数:isalnum© //当c是字母或数字时为真isalpha© //当c是字...原创 2019-04-28 20:14:51 · 132 阅读 · 0 评论 -
命名空间的using声明
作用域操作符(::)编译器应从操作符左侧名字所示的作用域中寻找右侧那个名字。using声明形式:(1)using namespace::name; 一旦进行了声明,就可以直接访问命名空间中的名字;(2)using namespace namespace;头文件不应包含using声明:因为头文件的内容会拷贝到所有引用它的文件中去,如果头文件李有某个using声明,那么每个使用了该头文件的文...原创 2019-04-28 19:55:30 · 332 阅读 · 0 评论 -
C++基础知识
1、mian函数的返回类型必须为int,即整数类型。2、IDE:集成开发环境(Integrated Developed Environment)。3、cin:标准输入; cout:标准输出; cerr:输出警告和错误信息; clog:输出程序运行时的一般性信息。4、通过命名空间使用标准库,需要通过使用作用域运算符(::)来指出我们想使用定义在命名空间中的名字,如:std::cin。5...原创 2019-04-27 11:52:38 · 100 阅读 · 0 评论 -
处理类型
类型别名1、关键字typedef:typedef double wages; //wages是double的同义词typedef wages base, *p; //base是double的同义词, p是double *的同义词2、新标准方法,别名声明(alias declaration):using UI = usigned int; //UI是usigned int的同义词指针、常...原创 2019-04-27 11:50:36 · 221 阅读 · 0 评论 -
const限定符
1、const对象一旦创建后其值就不能再改变,所以const对象必须初始化,其初始值可以是任意复杂的表达式。2、与非const类型所能参与的操作相比,const类型的对象能完成其中的大部分,但也不是所有的操作都合适。主要的限制就是只能在const类型的对象上执行不改变其内容的操作。3、默认状态下,const对象仅在文件内有效,如果想在多个文件之间共享const对象,必须在变量的声明和定义之前添...原创 2019-04-27 09:50:15 · 112 阅读 · 0 评论