
C/C++
文章平均质量分 75
125096
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C/C++ Keywords
cppreference.com -> C/C++ Keywords C/C++ Keywordsasm 插入一个汇编指令. auto 声明一个本地变量. bool 声明一个布尔型变量. break 结束一个循环. case 一个switch语句的一部分. catch 处理 thrown 产生的异常. char 声明一个字符型变量. class 声明一个类. const 声原创 2015-04-01 14:10:26 · 412 阅读 · 0 评论 -
c语言读写文件fopen和fopen
当我们按照二进制方式往文件中写入数据,则将数据在内存中的存储形式原样输出到文件中计算机文件基本上分为二种:二进制文件和 ASCII(也称纯文本文件),图形文件及文字处理程序等计算机程序都属于二进制文件。这些文件含有特殊的格式及计算机代码。ASCII 则是可以用任何文字处理程序阅读的简单文本文件。 #include #include #include #include int原创 2015-04-01 01:04:14 · 876 阅读 · 0 评论 -
标准c内存函数
标准c内存函数calloc() 分配一个二维储存空间 free() 释放已分配空间 malloc() 分配空间 realloc() 改变已分配空间的大小原创 2015-04-01 14:22:11 · 346 阅读 · 0 评论 -
标准c时间与日期函数
标准c时间与日期函数asctime() 时间文本格式 clock() 返回自程序开始运行所经过的时间 ctime() 返回特定格式时间 difftime() 两时刻的间隔 gmtime() 返回指向当前格林威治时间的指针 localtime() 返回指向当前时间的指针 mktime() 返回指定时间的日历格式 strftime() 返回日期和时间的单个原创 2015-04-01 14:21:36 · 450 阅读 · 0 评论 -
标准c数学函数
标准c数学函数 Standard C Mathabs() 求绝对值 acos() 求反余弦 asin() 求反正弦 atan() 求反正切 atan2() 求反正切,按符号判定象限 ceil() 求不小于某值的最小整数 (求上界) cos() 求余弦 cosh() 求双曲余弦 div() 求商和余数 exp() 求e的幂 fab原创 2015-04-01 14:21:42 · 438 阅读 · 0 评论 -
标准c字符和字符串
atof() 将字符串转换成浮点数 atoi() 将字符串转换成整数 atol() 将字符串转换成长整型数 isalnum() 当字母或数字字符时, 返回真值 isalpha() 当字母字符时, 返回真值 iscntrl() 当控制字符时, 返回真值 isdigit() 当数字字符时, 返回真值 isgraph() 当非空格原创 2015-04-01 14:20:05 · 370 阅读 · 0 评论 -
标准 C I/O
cppreference.com -> 标准 C I/O 标准 C I/Oclearerr() 清除错误 fclose() 关闭一个文件 feof() 如果到达文件尾(end-of-file)返回"True"(真) ferror() 检查一个文件错误 fflush() 书写输出缓存的内容 fgetc() 从流获取一个字符 fgetpos() 获取文件位置指针 fgets()原创 2015-04-01 14:19:00 · 407 阅读 · 0 评论 -
setlocale
#include #include #include #include int main (void){ _tsetlocale(LC_ALL, TEXT("chs")); wprintf(TEXT("%s\n"),TEXT("请输入一个字符串")); return 0;}原创 2015-04-01 01:05:23 · 310 阅读 · 0 评论 -
其他标准c函数
其他标准c函数abort() 停止程序执行 assert() 当表达式非真,停止程序执行 atexit() 当程序退出执行设定的程序 bsearch() 执行折半查找 exit() 停止程序执行 getenv() 获取指定环境变量的值 longjmp() 从设定点执行程序 qsort() 执行快速排序 raise() 向程序发送信号 ran原创 2015-04-01 14:22:53 · 379 阅读 · 0 评论 -
C++ I/O
C++ I/O C++ I/O库自动定义了一些标准对象:cout, ostream类的一个对象,可以将数据显示在标准输出设备上. cerr, ostream类的另一个对象,它无缓冲地向标准错误输出设备输出数据. clog, 类似cerr,但是它使用缓冲输出. cin, istream类的一个对象,它用于从标准输入设备读取数据. 库允许编程人员利用ifstream和ofstrea原创 2015-04-01 14:24:30 · 546 阅读 · 0 评论 -
C++ 模板详解(二)
C++模板 四、类模板的默认模板类型形参 1、可以为类模板的类型形参提供默认值,但不能为函数模板的类型形参提供默认值。函数模板和类模板都可以为模板的非类型形参提供默认值。 2、类模板的类型形参默认值形式为:template class A{};为第二个模板类型形参T2提供int型的默认值。 3、类模板类型形参默认值和函数的默认参数一样,如原创 2016-05-04 22:03:47 · 1335 阅读 · 0 评论 -
C++ 模板详解(一)
C++模板 模板是C++支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数、返回值取得任意类型。 模板是一种对类型进行参数化的工具; 通常有两种形式:函数模板和类模板; 函数模板针对仅参数类型不同的函数; 类模板针对仅数据成员和成员函数类型不同的类。 使用模板的目的就是能够让程序原创 2016-05-04 22:02:41 · 1248 阅读 · 0 评论 -
CWHArray模版类
Array.h#ifndef ARRAY_HEAD_FILE#define ARRAY_HEAD_FILE#pragma once#include #include #include #define DbgBreakPoint _asm int 3/////////////////////////////////////////////////////////////////原创 2016-05-04 22:00:05 · 1252 阅读 · 1 评论 -
C++11 正则表达式——实例3
#include #include #include //格式化日期void format_date(void);int main(){ format_date(); return 0;}std::string format_date(const std::string& date){ // regular expression const std原创 2016-05-04 00:17:29 · 326 阅读 · 0 评论 -
C++11 正则表达式——实例2
#include #include #include //regex_search()只要求存在匹配项就可以void regex_search11(void);//上面这个例子只能返回第一个匹配的项,如果要返回所有匹配的子序列,可以使用下面的方式void sregex_token_iterator11(void);//将元音字母打头的单词前面的a替换为anvoid regex原创 2016-05-04 00:11:50 · 336 阅读 · 0 评论 -
C++11 正则表达式——实例1
#include #include #include //该实例通过一个函数is_email_valid 来检查一个email地址是否是一个正确的格式。如果格式正确则返回true。bool is_email_valid(const std::string& email){ const std::regex pattern("(\\w+)(\\.|_)?(\\w*)@(\\w+)(\\原创 2016-05-03 23:57:38 · 338 阅读 · 0 评论 -
IUnknown
#include #include using namespace std;extern const IID IID_A;extern const IID IID_B;extern const IID IID_C;// {32bb8320-b41b-11cf-a6bb-0080c7b2d682}static const IID IID_A = {0x32bb8320, 0xb4原创 2015-11-04 17:23:33 · 499 阅读 · 0 评论 -
函数的返回类型
#include //返回变量的值6int mymax1(int a,int b){ return a>b?a:b; }//返回的是在main函数中mymax2的第二个参数6的局部地址,输出结果是6,在main函数中取返回地址的值int &mymax2(int a,int b){ return a>b?a:b; }//返回的是在main函数中mymax2的第二个参数原创 2015-05-14 21:54:49 · 647 阅读 · 0 评论 -
NULL指针调用成员函数的例子
main.h#include #include #include class A{public: //构造函数 A(); //析构函数 ~A(){}; //功能函数public: void print(void); //静态变量public: static A* GetInstance(void){return m_hInstance;} static原创 2015-05-11 22:33:18 · 422 阅读 · 0 评论 -
两个类相互调用的例子
main.hclass B;class A;class A{public: //构造函数 A(){x=123;} //析构函数 ~A(){}; //功能函数public: void ATest(void) {printf("%d\n",x);} void Set(B* b){m_b=b;} //静态函数public: static B* GetInst原创 2015-05-08 15:47:57 · 1764 阅读 · 0 评论 -
在静态函数中调用其他类的成员函数示例
1.h#include #include #include class CGlobalUnits{public: //构造函数 CGlobalUnits(); //析构函数 ~CGlobalUnits(); //辅助函数public: bool print(void); //静态函数public: static CGlobalUnits* GetInstan原创 2015-04-09 22:14:31 · 1775 阅读 · 0 评论 -
assert
//打开断言#undef NDEBUG#include //关闭断言#define NDEBUG#include int main(void){ assert(false); return 0;}原创 2015-04-10 17:05:24 · 372 阅读 · 0 评论 -
不用sizeof()函数求当前主机上的一个int占用几个字节
#include #include using namespace std;#define my_sizeof(L_Value) (char* )(&L_Value + 1) - (char* )&L_Value int main(void){ int i; double f; double a[4]; double* q; TCHAR szText[]={"我是你的大皇原创 2015-04-10 14:29:44 · 623 阅读 · 0 评论 -
c++读写文件
#include #include //using namespace std;int main (void){ std::ofstream ofs("1.txt"); ofs.write("hello world!",strlen("hello world!")); ofs.close(); std::ifstream ifs("1.txt"); char szText[原创 2015-04-01 22:27:49 · 445 阅读 · 0 评论 -
template模板类使用
Stack.h#ifndef STACK_H#define STACK_Htemplate class Stack{public: //构造函数 Stack(); //判断是否为空 bool isempty(); //判断是否为满 bool isfull(); //插入数据 bool push (const T &item); //删除数据 bool pop原创 2015-03-13 15:42:37 · 790 阅读 · 0 评论 -
array和valarray数组类简单用法
#include #include #include #include using namespace std;int main (void){ cout<<"array-----------------------"<<endl; arraya; for (BYTE i=0;i<10;i++) { a[i]=i; cout<<a[i]; } cout<<end原创 2015-03-13 14:03:18 · 653 阅读 · 0 评论 -
explicit
/*C++提供了关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生。声明为explicit的构造函数不能在隐式转换中使用。C++中, 一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色。 1 是个构造器 ,2 是个默认且隐含的类型转换操作符。所以, 有时候在我们写下如 AAA = XXX, 这样的代码, 且恰好XXX的原创 2015-03-13 14:06:31 · 415 阅读 · 0 评论 -
命名空间
命名空间(namespaces)的作用在于全局对象或函数很有可能重名而造成重复定义的错误,名空间的使用可以避免这些错误的发生在这个例子中,两个都叫做var全局变量同时存在,一个在名空间first 下面定义,另一个在 second下面定义,由于我们使用了名空间,这里不会产生重复定义的错误#include #include #include using namespace std;n原创 2015-03-03 09:08:48 · 355 阅读 · 0 评论 -
数组类
#include #include #include using namespace std;class Test{public: Test() { cout<<"构造函数执行中"<<endl; } ~Test() { cout<<"析构函数执行中"<<endl; } void print(void) { printf("哈哈\n"); }};in原创 2015-03-03 09:54:22 · 344 阅读 · 0 评论 -
友元
一、友元函数友元函数是非成员函数,其访问权限与成员函数相同友元函数(Friend functions)对class的不同成员存在3个层次的内部保护:public, protected 和 private。在成员为 protected 和 private的情况下,它们不能够被从所在的class以外的部分引用。然而,这个规则可以通过在一个class中使用关键字friend来绕过,这样我原创 2015-03-03 09:39:22 · 378 阅读 · 0 评论 -
malloc和new的区别
#include using namespace std;/*malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。*/class A{public: A(){cout<<"构造函数执行中"<<endl;} ~A(){cout<<"析构函数执行中"<<endl;}};int main (void){ cout<<"C语原创 2015-03-02 16:15:09 · 362 阅读 · 0 评论 -
指针做函数参数使用
#include #include using namespace std;void GetMemory(char **p){ *p=NULL; *p=(char*)malloc(sizeof(char)); if (p) { memset(*p,0,sizeof(char)); cout<<"p内存分配成功"<<p<<endl; } else { cout<<原创 2015-03-02 16:35:16 · 412 阅读 · 0 评论 -
逗号运算符
逗号运算符 ( , )逗号运算符 (,) 用来分开多个表达式,并只取最右边的表达式的值返回。#include using namespace std;int main (void){ int b=1,c=2; int a=(b,c); cout<<a<<endl; return 0;}/*2015年3月3日9:14:02程序执行结果如下:2请按任意键继续.原创 2015-03-03 09:13:12 · 460 阅读 · 0 评论 -
预定义宏
#include using namespace std;int main (void) { cout<<__LINE__<<endl; //当前行 cout<<__FILE__<<endl; //当前文件 cout<<__DATE__<<endl; //当前日期 cout<<__TIME__<<endl; //当前源文件编译时间 cout<<__TIMESTAMP_原创 2015-03-02 17:53:34 · 411 阅读 · 0 评论 -
virtual虚函数
如果想通过指向派生类对象的基类指针,调用派生类中覆盖的成员函数,可以用虚函数的方法让派生类中覆盖的成员函数被调用1.虚函数派生下去的仍然为虚函数,而且可以省去 virtual 关键字2.如果你期望派生类从新定义一个成员函数,那么你应该在基类中把此函数设置为 virtual3.如果定义的类作为基类,则应将那些要在派生类中重新定义的类的方式声明为虚拟的4.如果使用指向对象的引用或指针调原创 2015-03-03 10:16:51 · 806 阅读 · 0 评论 -
const_cast
这种类型转换对常量const 进行设置或取消操作其他3种cast 操作符都不可以修改一个对象的常量属性(constness)。#include #include #include using namespace std;class C {};int main (){ const C * a = new C; C * b = const_cast (a); int a原创 2015-03-02 16:59:50 · 359 阅读 · 0 评论 -
常用数据类型的表示范围
求负数的补码,先写出正数补码,各位取反,末尾加1,就是以其对应的负数补码 8位:无符号0-255,有符号-128 12716位:无符号0-65535,有符号-32768 3276732位:无符号0-4294967295,有符号-2147483648 214748364764位:无符号18446744073709551615,有符号-9223372036854775808 9原创 2015-03-03 10:53:30 · 1688 阅读 · 0 评论 -
Templates
模板(Templates)使得我们可以生成通用的函数,这些函数能够接受任意数据类型的参数,可返回任意类型的值,而不需要对所有可能的数据类型进行函数重载。这在一定程度上实现了宏(macro)的作用。它们的原型定义可以是下面两种中的任何一个:template function_declaration;template function_declaration; 上面两种原型定义的不同之原创 2015-03-03 09:27:45 · 368 阅读 · 0 评论 -
this指针
静态的函数和变量是不能调用this指针的,因为静态的属性和方法没有被实例化#include using namespace std;class A {public: int isitme (A& param);};int A::isitme (A& param){ if (¶m == this) return 1; else return 0;}int main原创 2015-03-03 09:56:28 · 505 阅读 · 0 评论 -
operator
#include #include #include using namespace std;class Test{public: Test(){}; Test(int a,int b){x=a,y=b;} Test operator+(Test t) { Test temp; temp.x=x+t.x; temp.y=y+t.y; return temp;原创 2015-03-03 09:58:47 · 391 阅读 · 0 评论