自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

迎难而上

热爱技术的IT人

  • 博客(61)
  • 收藏
  • 关注

原创 C++_如何得到类内字符串内容

在项目中遇到一个问题,在类外希望得到类中的字符串内容。通过直接传递字符串指针实际并不能修改内容可行的方法:1.传递字符串数组的地址2.传递字符串二级指针,即字符串地址3.按照C++的方式传递一个 string引用, 通过引用直接修改失败的方式:(截取代码:将函数封装到类里了,....代码太多,总体测试代码在文章末尾.感兴趣的同学自己复制) void Ge

2015-08-29 16:24:24 1794

转载 C语言_为什么字符串可以赋值给字符指针变量,字符串的属性及存放位置

C语言中,为什么字符串可以赋值给字符指针变量本文是通过几篇转帖的文章整理而成的,内容稍有修改:一、C语言中,为什么字符串可以赋值给字符指针变量char *p,a='5';p=&a;                     //显然是正确的,p="abcd";              //但为什么也可以这样赋值??问:一直理解不了为什么可以将字串常量

2015-08-29 15:18:59 3614 1

原创 C/C++_中NULL与空字符串的区别

今天遇到一个问题认识到C/C++中 NULL 与 空字符串 "" 是不相同的总结如下:空字符串是"",会创建一个对象,内容是"",有内存空间。而NULL,不会创建对象,没有内存空间。形象的比喻:"" 相当于我的钱包里没钱 NULL 相当于我没有钱包 遇到的问题化简如下:利用strcpy进行字符串的复制strcpy不能用NULL作为源

2015-08-28 16:37:17 20595 1

原创 C++_TCHAR字符串在UNICODE环境的控制台下输出

TCHAR字符串在UNICODE环境下是不能直接用cout 输出的, 原因是 cout 为 ostream流对象实例,直接用cout 输出TCHAR字符串会输出字符串的地址 //TODO:测试代码 //得到了非空一个字符串,则查找成功。 //...... //.....将该字符串转换为TCHAR..... //...... USES_CONVERSI

2015-08-28 14:43:29 10015 1

转载 MFC_设置按钮的文本

方法一:CButton *pBtn = (CButton *)GetDlgItem(IDC_BTN_TEST);if (pBtn->GetWindowText() == _T("开始")){    pBtn->SetWindowText(_T("停止"));}else{    pBtn->SetWindowText(_T("开始"));}

2015-08-27 17:24:25 6205

转载 MFC_CString TCHAR的互相转换

CString->TCHAR*的转化可以用函数GetBuff()函数原型为:LPTSTR GetBuffer( int nMinBufLength );CString str("CString"); TCHAR* szMsg = new TCHAR[100]; //其参数为CString字符串的长度 szMsg = str.GetBuffer(str.GetLength()

2015-08-27 11:18:03 2706

转载 MFC_CString 转换成TCHAR *的方法

今天遇到一个难题,以前一直都是从TCHAR *转换到CString,今天需要CString 转换成TCHAR *的方法,找了一下MSDN文档,没有发现有现成的函数可以用。后来上网搜索了一下,方法还不少。如下几种:方法一,使用强制转换。例如:CString theString( "This is a test" );LPTSTR lpsz =(LPTSTR)(LPCTSTR)th

2015-08-27 11:17:02 2485

转载 MFC_解决按下回车键退出程序的问题

基于对话框的MFC,解决回车键程序退出问题 对话框如何屏蔽回车键enter      当用户按下回车键时,Windows发送一个特殊的WM_GETDEFID消息来获得缺省的命令ID,Windows再将它作为WM_COMMAND发送。所以,你要做的就是重载WM_GETDEFID消息,在有关Windows的文档中是这样描述WM_GETDEFID返回值的:“如果有缺省得按钮,则返

2015-08-24 16:46:30 13372 4

转载 VS2013中如何解决error C4996: 'fopen'问题

error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.1>f:\program files (

2015-08-20 10:11:37 6979

转载 MFC_ HWND(获取控件或窗体句柄) [大三TJB_708]

平台:visual studio 2010 1 C++窗体对象和HWND窗体对象是一个继承于CWnd类的C++类的 对象。咱们可以用构造函数生成一个windows窗体,此windows窗体被一个 "window handle" (HWND)唯一标识,当一个窗体被创建后,此窗口的窗口句柄也响应的被创建。此窗口的窗口句柄被保存在窗体对象的数据成员m_hWnd中。 2. 获取

2015-08-20 09:43:34 5681

转载 MFC/Windows_WM_CTLCOLOR消息

WM_CTLCOLOR消息用来完成对EDIT, STATIC, BUTTON等控件设置背景和字体颜色, 其用法如下:1.首先在自己需要设置界面的对话框上点击右键-->建立类向导-->加入WM_CTLCOLOR消息-->自动生成OnCtlColor()函数, 此函数可以对本对话框的控件的界面外观做修饰, 用法如下:将类向导产生的函数做如下修改:HBRUSH CDialogColo

2015-08-20 09:19:24 1424

转载 C/C++_atoi,itoa功能及其实现原理

itoa将数字转换成指定进制的字符串itoa是广泛应用的非标准C语言扩展函数。由于它不是标准C语言函数,所以不能在所有的编译器中使用。但是,大多数的编译器(如Windows上的)通常在头文件中包含这个函数。char*itoa(int value,char*string,int radix);int value

2015-08-14 18:34:29 7655

原创 C++/STL中 vector中对 “=”赋值运算符的支持

由于好奇STL中的vector 对于自定义数据类型的 “ = ”(赋值运算符的)支持,谢了一段简单的测试代码进行测试。结果证明vector对于赋值预算符支持良好,但是对于动态分配的类构成的vector数组,博主认为一定要重写析构函数与复制构造函数以及运算符重载“=”运算符(这是一条软件规则,详见博主测试),链接如下:http://blog.csdn.net/u010003835

2015-08-14 16:04:44 21693 2

转载 C++/STL_中Vector的基本操作与示例

标准库Vector类型使用需要的头文件:#include Vector:Vector 是一个类模板。不是一种数据类型。 Vector是一种数据类型。一、 定义和初始化Vector v1; //默认构造函数v1为空Vector v2(v1);//v2是v1的一个副本Vector v3(n,i);//v3包含n个值为i的元素Vector v4(n); //v4含有n

2015-08-14 15:55:10 776

转载 C_获得当前的工作路径 _getcwd()函数:取得当前的工作目录

相关函数:get_current_dir_name, getwd, chdir头文件:#include 定义函数:char * getcwd(char * buf, size_t size);函数说明:getcwd()会将当前的工作目录绝对路径复制到参数buf 所指的内存空间,参数size 为buf 的空间大小。注:1、在调用此函数时,buf 所指的内存空间要足

2015-08-14 08:44:58 14426

转载 C语言文件操作 fopen, fclose, mkdir(打开关闭文件,建文件夹,判断文件是否存在可读或可写)

1.建文件夹int _mkdir(const char *path,mode_t mode);函数名: _mkdir   功 能: 建立一个目录   用 法: int _mkdir( const char *dirname );   头文件库:direct.h   返回值:创建一个目录,若成功则返回0,否则返回-1==========================

2015-08-13 20:58:51 2346

转载 MFC/Windows_Windows/MFC对消息处理的顺序

MFC应用程序中处理消息的顺序 1.AfxWndProc()     该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc2.AfxCallWndProc() 该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用,然后调用WindowProc()函数3.WindowProc()     

2015-08-13 16:10:48 534

原创 Windows/MFC,C++中的TCHAR体系/char体系/WCHAR体系及其相互转换

Windows/MFC,C++编程中经常遇到UNICODE、ANSI字符串,并需要对这些字符串进行转换,本文对这些体系与其转换进行了总结。第一篇:基础篇主要分为3大体系:TCHAR, WCHAR, char 3大体系常用函数及解析详见博文:http://blog.csdn.net/u010003835/article/details/47344775

2015-08-13 11:37:41 2942

转载 Windows/C++/MFC_ATL转换宏用于WCHAR,TCHAR,char转换以及其含义

相关类型转换:(强制转换会出现乱码)wchar_t ‐> char : wcstombs();或 WideCharToMultiByte(); //windowschar ‐> wchar_t : mbstowcs();或 MultiByteToWideChar(); //windows另外可使用ATL 提供的转换宏, 包含LPWSTR‐>LPTSTR: W2T

2015-08-13 11:32:18 1545

转载 C++,Windows/MFC_中L和_T()之区别

字符串前面加L表示该字符串是Unicode字符串。_T是一个宏,如果项目使用了Unicode字符集(定义了UNICODE宏),则自动在字符串前面加上L,否则字符串不变。因此,Visual C++里边定义字符串的时候,用_T来保证兼容性。VC支持ascii和unicode两种字符类型,用_T可以保证从ascii编码类型转换到unicode编码类型的时候,程序不需要修改。以下是别人的总结:

2015-08-13 09:54:38 6103

转载 Windows/MFC函数参数中LPSTR,LPCSTR,LPCWSTR_等指针的含义

1. 先了解下相关宏定义: winnt.h 中typedef char CHAR ;typedef wchar_t WCHAR ;#ifdef UNICODEtypedef wchar_t TCHAR ; //wchar_t C++: 16-bit UNICODE character#elsetypedef char TCHAR ;#endif即:CHAR 为8 位

2015-08-13 09:01:49 2279

转载 C/C++,Windows/MFC__char与TCHAR相互转化

char与TCHAR之间的转化主要用到函数MultiByteToWideChar和WideCharToMultiBytechar转TCHAR如果不是Unicode字符集,就不需要转换,直接复制即可,如果不确定是否使用Unicode字符集,可以这样写[cpp] view plaincopychar strUsr[10] = "Hel

2015-08-12 20:52:39 1097

转载 Windows,C++中各种数据类型的转换---很有用!

%f常用数据类型使用转换详解  leo:要在Unicode字符集环境下把CString转化为char*方法:   CString str = _T("D://校内项目//QQ.bmp");//////leo这个NB  可以降在Unicode下的CString转化为char*    //声明标识符    USES_CONVERSION;    //调用函数

2015-08-12 20:46:13 1283

转载 Windows,C/C++_字符串转换_MultiByteToWideChar和WideCharToMultiByte的正确使用方法及参数详解

MultiByteToWideChar和WideCharToMultiByte的正确使用方法及参数详解  本文内容摘自《Windows核心编程》(第五版)Page26。  文中已经详细阐述了这两个函数的用法,我这里仅仅作为备忘录。函数的参数请参考百度百科MultiByteToWideChar和WideCharToMultiByte。函数原型:

2015-08-12 20:43:11 2344

原创 C++/STL_中的push_back方法与复制数据的问题

STL中有push_back 等方法 可以将一个数据放入容器中。在push_back中完成的是值拷贝,而不仅仅是地址的复制。#include #include using namespace std;typedef struct point{ int x; int y;}Point;ostream& operator<<(ostream& outpu

2015-08-12 12:25:51 12558

原创 C++_const成员函数

如果一个类的成员函数,对于数据不需要进行修改的时候,就可以把该成员函数定义为const 成员函数。常见的编程错误如果试图在const 成员函数中修改数据,将会导致编译错误。const 成员函数使用方法1.需要在定义的时候使用标示符const。2.需要在声明的时候使用标识符const。示例class Timer{public: ...

2015-08-12 11:13:55 375

转载 C++/STL用erase删除元素(vector,deque),(list,set,map)

STL中的容器按存储方式分为两类,一类是按以数组形式存储的容器(如:vector 、deque);另一类是以不连续的节点形式存储的容器(如:list、set、map)。在使用erase方法来删除元素时,需要注意一些问题。      在使用 list、set 或 map遍历删除某些元素时可以这样使用:正确使用方法1      std::list List;      std:

2015-08-11 20:25:35 4764

转载 C++/STL_利用remove_if 删除vector,list,deque满足条件的元素

#include forward_iterator remove_if( forward_iterator start, forward_iterator end, Predicate p );函数remove_if()移除序列(start, end)中所有应用于谓词p返回true的元素.此函数返回一个指向被修剪的序列的最后一个元素迭代器.记住, remove_i

2015-08-11 20:10:00 2883

原创 C++/STL_中vector基本操作测试代码,vector.erase()使用方法

通过vector我们可以减少类里的变量,比如一个类里存储了一个数据但是不知道这个数据到底要存储个,我们常常使用结构体数组加一个变量来记录存储记录的数量,但是通过vector可以简化这个变量,因为vector里面有通用的size方法可以帮我们完成这个操作。测试代码:#include #include using namespace std;struct Point{ in

2015-08-11 15:11:58 3750

原创 C++_重载运算符<< ostream流重载注意事项_使自定义数据可以用cout输出

通过重载运算符出错的片段const ostream& operator<<(ostream &output, const Point &a){ return output << a.x << " " << a.y ;}正确的代码与完整测试程序:#include #include using namespace std;struct Point{ int x;

2015-08-11 15:04:48 5519

原创 C++_嵌套类

在C/C++中,可以将结构体/类的声明放在另一个类中。在另一个类中声明的类被称为嵌套类,它通过新的类型类作用域来避免名称混乱。嵌套类的作用域:1。如果嵌套类是在另一个类的私有部分声明的,则只有后者知道它。2。如果嵌套类是在另一个类的保护部分声明的,则它对于后者来说是不可见得。3。如果嵌套类在另一个类的共有部分声明的,则允许后者,后者的派生类以及外部世界使用它,因为它

2015-08-10 21:28:40 1119

原创 C/C++ static使用方法注意

static 貌似声明在结构体数组中是不可以的。#include #include using namespace std;#define MAXN 255typedef struct PP{ int b; static int c;}P;int main(){ P K[MAXN]; K[1].c = 4; printf("%d\n", K[2].c); re

2015-08-10 20:43:02 595

原创 C++_命名空间namespace 与 using编译指令 与 using声明使用。

命名空间:C++中允许用户创建自己的用户空间。可以通过关键字namespace 声明即可需要注意的事项:名称空间可以是全局的,也可以位于另一个名称空间中,但不能位于代码块中。示例代码如下:#include using namespace std;namespace Jill{ double bucket(double a){ return a + 3; } doub

2015-08-10 18:08:47 4229

原创 C++_布局(placement)new操作符

#include #include using namespace std;struct chaff{char dross[20];int slap;};char buffer1[50];char buffer2[500];int main(){chaff *p1, *p2;int *p3, *p4;p1 = new chaff;p3 = new int[20];p2 = new(buffer

2015-08-10 17:27:43 1522

原创 C/C++关键字中的extern 和 static

extern 关键字的用法,示例:在tet.cpp中声明了一个变量,而想在main的主文件中使用这个变量,就可以使用extern关键字来找到这个变量。不需要包含 .h 的方法。项目目录:tet.cppint a = 5;static int z = 7;void swap_b(int a, int b){ int temp; temp = a; a = b;

2015-08-10 16:52:16 637

转载 C/C++_static函数与普通函数

全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不

2015-08-10 16:33:43 4748

转载 C/C++ extern与static关键字

1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。      也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数

2015-08-10 16:23:47 464

原创 C++_模板的实例化与具体化。

模板声明 template,  typename比class最近后添加到C++标准。常规模板,具体化模板,非模板函数的优先调用顺序。非模板函数(普通函数)> 具体化模板函数 > 常规模板VS2013支持性不好显示具体化:具体化表示为某一特定的类型重写函数模板,声明的含义是使用独立的,专门的函数定义显示地为 特定类型生成函数定义。显示具体化

2015-08-10 15:21:29 2851

原创 C++_引用与const

在引用与传递参数中,尽可能使用const。将参数声明为常量数据的引用原因有3条1.使用const 可以避免无意中修改数据的错误编程。2.使用const 使函数能够处理const 和非const 实参,否则将只能接受非const 数据。实验如下:#include using namespace std;void swap(int &a, int &b){ int

2015-08-10 12:14:44 799

转载 杂谈_我希望在软件开发生涯初期就知道的 4 件事

原文链接:http://www.apkbus.com/android-5897-1.html摘要: 我的软件开发生涯开始于15年前。但是直到最近的5年,我才真正开始看到自己在软件开发领域的巨大进步。这里有一些感悟是我希望能够在我进入软件开发领域时所知道的事情,如果我早一些领悟到,相信会比现在更加成功, ...我的软件开发生

2015-08-10 11:52:43 632

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除