C、C++语言编程
干了这一碗BUG
学习让人进步,学习使我快乐
展开
-
C++模板学习
1、什么是模板我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。//函数1.int max(int x,int y);{return(x>y)?x:y ;}//函数2.float max( float x,原创 2015-06-29 22:53:46 · 1751 阅读 · 0 评论 -
堆和栈的区别
一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(原创 2013-12-04 00:12:16 · 2250 阅读 · 0 评论 -
网络程序设计--UDP通信(客户端)
代码中包含自己头文件见:http://blog.csdn.net/jianxia_wzx/article/details/8515585//////////////////////////////////////////////////////////// UDPClient文件#include "../common/InitSock.h"#include CInitSock原创 2013-01-22 12:16:17 · 898 阅读 · 0 评论 -
网络程序设计--网络对时
代码中包含自己头文件见:http://blog.csdn.net/jianxia_wzx/article/details/8515585//////////////////////////////////////////////////////////// NetTime.cpp文件#include "../common/InitSock.h"#include CInitSoc原创 2013-01-25 09:10:00 · 741 阅读 · 0 评论 -
C++文件编码由GBK转换UTF-8的解决方法
原帖地址:馍励网http://www.dabenmo.com/thread-22315-1-1.htmlColor="#000">在VS下面开发Cocos程序的时候,他的默认编码是GBK的,但是在迁移或者是编译调试的时候要求UTF的编码更为方便。因此便有了将C++文件的编码格式转换为UTF-8的需求问题。这个问题,当然可以在建立文件保存的时候选择高级保存选择,然后选择保原创 2015-03-25 10:30:09 · 2143 阅读 · 0 评论 -
手把手教你写游戏修改器(终极版)
关于怎样写植物大战僵尸游戏修改器的详细过程,在手把手教你写游戏修改器里面已经详细介绍了,这里就不再说了。前面那个修改器是基于控制台程序下面的,紧紧对于植物大战僵尸有用,采用上面那个教程已经将游戏修改器的制作流程和原理讲清楚了,现在我们开始做一个完整的游戏修改器。1、建立一个对话框工程,建立过程VC怎样建立对话框工程中已经介绍了。这里不再介绍2、绘制如下界面其中个控件ID如下:列原创 2012-07-31 21:50:48 · 9617 阅读 · 0 评论 -
网络程序设计--TCP通信(客户端)
代码中包含自己头文件见:http://blog.csdn.net/jianxia_wzx/article/details/8515585//////////////////////////////////////////////////////////// TCPClient.cpp文件#include "../common/InitSock.h"#include CInitS原创 2013-03-11 17:18:17 · 746 阅读 · 0 评论 -
C语言做渐变动画
在学习flash制作的时候,制作渐变动画是一门必修的功课,flash制作渐变动画一般有两种:帧变换和连续变幻。帧变换是从开始到结束这两个关键帧之间插入多个中间帧利用视觉暂留现象来达到连续变幻的效果,连续变幻就是直接设定为渐变动画,由软件自己来完成中间的填补。 具体的关于flash动画的制作这里就不多说了,那么C语言画图,能不能达到动画的效果呢?当然可以,为了方便画图,老方法采用Eas原创 2012-08-03 23:07:10 · 7157 阅读 · 3 评论 -
MFC类继承关系图
原创 2012-07-24 20:18:01 · 1455 阅读 · 0 评论 -
如何在win32 Application 中使用MFC
在Virtual C++ 6.0创建的Win32 Application 和 Win32 Console Application 中使用 MFC 是可能的,主要的困难在于绕过MFC提供的WinMain函数。下面我提供一个方法以供参考:进入 Project-->Setting--> C/C++ Page,做以下修改:1. 在Preprocessor definitions中加入转载 2012-07-24 19:29:13 · 908 阅读 · 3 评论 -
手把手教你写游戏修改器
转载请注明出处!!!谢谢!!!在玩游戏的时候,很多人还是喜欢用修改器的(本人一样哈)但是很多网上下的修改器,要么不能用,要么有毒,很不爽,因此还是自己动手丰衣足食吧。下面就以植物大战僵尸为例,一步一步教大家写植物大战僵尸的修改器。首先大家应该对进程有一定的认识。说下大体思路吧,我们知道一个进程在运行时系统会分配一定的内存供这个进程存储自己的数据,因此我们修改某个进程的数据就应该从这个进原创 2012-07-28 00:25:59 · 4506 阅读 · 4 评论 -
二进制与十进制转换
二进制转换在程序处理的过程中,我们经常需要将一个整数转换成二进制或者将一个二进制数转换成整数。二进制转换成整数主要是计算各个位置的权值并记录,然后逐次查找二进制序列的每一位如果为一则将结果加上对应位置的权值作为新的结果以此类推。整数转换成二进制主要是进行移位相与操作,例如我们的整数范围在2^16-1的范围内,则每次移位与0x8000相与,如果为一则输出1,为0则输出零。代码如下:原创 2012-08-18 21:00:35 · 1201 阅读 · 3 评论 -
曼德罗伯特集代码
#include #include #include #include #include /*#define rmin -0.67058#define rmax -0.67008#define imin -0.45820#define imax -0.45770*/#define rmin -2.0#define rmax 2.0#define i原创 2013-01-17 22:32:25 · 1252 阅读 · 0 评论 -
网络程序设计--打印本机IP、子网掩码、MAC地址
代码中包含自己头文件见:http://blog.csdn.net/jianxia_wzx/article/details/8515585////////////////////////////////////////////////// LocalHostInfo.cpp文件#include #include #include "Iphlpapi.h"#pragma comm原创 2013-01-30 13:49:46 · 701 阅读 · 0 评论 -
网络程序设计--TCP通信(服务器端)
代码中包含自己头文件见:http://blog.csdn.net/jianxia_wzx/article/details/8515585//////////////////////////////////////////////////// TCPServer.cpp文件#include "../common/InitSock.h"#include CInitSock init原创 2013-03-11 17:17:20 · 624 阅读 · 0 评论 -
C++类与对象详解
类和对象作为面向对象中重要部分,本文详细的介绍其中的内存管理、继承、虚函数与多态、拷贝构造函数等基本原理,使大家对其原理有一个系统的认识原创 2015-06-04 20:52:11 · 5118 阅读 · 2 评论 -
高效计算二进制序列1的个数
记的遇到过一道程序题:判断两个整数二进制形式中1的个数多少。很明显的方法是分别写出这两个数的二进制形式计算每个的二进制个数,进行比较,然而如何高效的计算某个整数的1的个数成为了算法设计的优劣比较。这里采用8位的二进制作为说明。第一种方法我们知道一个整数每次除以2就会减少一个0,因此只需对这个数对二取余数,然后依次除二即可。算法如下:int count(int num){int原创 2012-08-18 20:45:36 · 1207 阅读 · 0 评论 -
网络程序设计--UDP通信(服务器)
代码中包含自己头文件见:http://blog.csdn.net/jianxia_wzx/article/details/8515585//////////////////////////////////////////////////////////// UDPServer.cpp文件#include "../common/InitSock.h"#include CInitS原创 2013-01-22 12:16:47 · 882 阅读 · 0 评论 -
C语言怎样获取鼠标坐标?
想要获取鼠标坐标并不那女,还是一样需要调用两个API函数GetCursorPos() 获取鼠标指针位置(屏幕坐标)然后采用ScreenToClient() 将鼠标指针位置转换为窗口坐标输出即可。上例子。// 程序名称:通过 API 获取鼠标状态//#include #include void main(){ initgraph(640, 480); // 初始化绘图窗原创 2012-07-22 13:48:40 · 9526 阅读 · 4 评论 -
深度剖析C语言自增自减运算
在C语言的学习中大家都会遇到C语言的自增自减运算,很多人多对其运算赶到迷惑,下面通过简单的几分钟的分析让你对自增自减运算了如指掌,不再迷惑。自增运算符就是++,自减就是--,两个运算相同以自增为例。自增分为前增运算符和后增运算符,前增就是在计算一个式子之前线对具有前增运算符的变量进行加一,注意是在一个式子计算之前就对变量加一,不管表达式里面有几个几百个括号啥的,不管,看完表达式发现有前增运原创 2012-07-25 21:05:05 · 2229 阅读 · 3 评论 -
scanf怎样才能输入带空格字符串?
我们到知道采用scanf("%s",a);当遇到空格就自动截断了,怎样才能输入带空格的字符串呢?是不是只能用gets()?????明显不是,scanf是可以实现的。目前的scanf支持一种类似于正则表达式样式的输入,关于正则表达式的内容,大家可以自行解决。我们知道在正则表达式中[^\n]表示除了回车以外的所有字符,当然也包括空格啦!!!就用这个。代码如下:#includeint main(原创 2012-07-23 23:16:35 · 7536 阅读 · 7 评论 -
scanf()为什么要输入两次才出结果?
编写程序如下int main(){ int n; printf("请输入一个数"); scanf("%d\n",&n); printf("\n"); return 0;}为什么要输入两下才出结果呢?这是因为scanf中写了\n,scanf与printf不同,需要敲击一个回车才能进行读入操作。因此不能将两者的用法混淆了原创 2012-07-23 23:10:35 · 7215 阅读 · 6 评论 -
C语言位运算
位运算应用口诀 清零取反要用与,某位置一可用或 若要取反和交换,轻轻松松用异或 移位运算 要点 1 它们都是双目运算符,两个运算分量都是整形,结果也是整形。 2 " 3 ">>"右移:右边的位被挤掉。对于左边移出的空位,如果是正数则空位补0,若为负数,可能补0或补1,这取决于所用的计算机系统。 4 ">>>"运算符,右边的位被挤掉,对于左边移出的原创 2012-08-07 23:28:50 · 1157 阅读 · 5 评论 -
C语言怎样播放音乐
想必大家都想在程序中播放音乐吧,怎样播放呢?很简单只需要一个API函数就可以了mciSendString(),函数原型请参考MSDN介绍。不多说上例子。// 编译该范例前,请把 background.mp3 放在项目文件夹中// 发布时,请把 background.mp3 和编译的 exe 放在一起// 编译环境:VC6 + EasyX v20100825//#include原创 2012-07-22 13:28:20 · 11939 阅读 · 4 评论 -
C语言播放视频
想必大家都想用C语言进行简单的视频播放,感觉貌似很难的样子,现在告诉大家既不用C++也不用MFC,只需要一个API函数MCIWndCreate()即可,具体参数内容参考MSDN。下面给出简单的例子,想必看完谁都会了。#include#include#include "Vfw.h"#pragma comment (lib, "Vfw32.lib")int main(){原创 2012-07-23 01:09:26 · 6285 阅读 · 17 评论 -
C语言怎样随机画线并产生模糊效果?
C语言随机画线很简单就是不停地随机产生左边,随机的改变运动方向,但是线条颜色和模糊怎样实现呢?明显如果不进行模糊处理的话,一段时间后就会出现满屏的彩线,因此必须进行模糊处理,方法就是不停地根据周围点的像素进行相加取平均,这样线条就会逐渐模糊。上例子。#include #include #include #include #include #define PI 3.14159原创 2012-07-22 13:37:12 · 1047 阅读 · 4 评论 -
C语言怎样改变鼠标样式
鼠标的样式很多,但是一般C语言默认的鼠标都是个箭头,当运行是鼠标放到黑屏框上面时显示的是一个箭头,怎样改变鼠标的样式呢?很简单,请看下面代码#include #include #include void main(){ int i; // 绘图环境初始化 initgraph(640, 480); setbkcolor(BLACK); cleardevice(原创 2012-07-22 13:19:52 · 3349 阅读 · 5 评论 -
C语言模拟LED流水灯代码
为了更好的采用C语言画图,建议安装EasyX,这样可以方便的在VC下进行C语言绘图操作。C语言模拟LED流水灯原理很简单,先画好几个灯,然后涂黑,模拟灯灭的情况,然后逐次给各个圆圈进行涂色,并将其他圆圈涂成背景色,并进行延时,这样就可以模拟出LED流水灯的效果啦。。。代码如下#include #include#include#include#includeint Col原创 2012-07-22 12:44:43 · 3491 阅读 · 5 评论 -
操作系统——存储管理
存储管理1、常见的存储结构有:寄存器——内存——外存、寄存器——快速缓存——内存——外存2、当程序被装入内存时,程序的逻辑地址转化成内存的物理地址的过程称之为地址重定位。3、地址重定位的方式:1、绝对装入,程序地址再定位在执行前被确定。优点,装入过程简单、缺点,过于依赖硬件结构,不适合多道程序系统。2、可重地位装入,在执行文件中列出各个需要重定位的地址单元和相对地值,装入时再根据内存地原创 2012-08-02 22:25:51 · 943 阅读 · 3 评论 -
操作系统——死锁介绍
死锁1、死锁是一种发生在一组相互竞争或同步的进程之间的现象。2、死锁主要是由两个或者两个以上的进程对资源需求的冲突引起的。3、独占资源:在任意一时刻只允许一个进程独占的资源称之为独占资源。 永久性资源就是指独占资源,可以重复使用。临时性资源是指可消耗资源。4、独占资源分为可剥夺式和不可剥夺式资源。5、死锁条件;互斥使用,进程对其申请的资源具有排他性、非剥夺式控制(不可抢原创 2012-08-02 22:24:19 · 833 阅读 · 3 评论 -
怎样编写自己的DLL库文件?
转载请声明出处!!!谢谢!!!经常我们需要利用我们以前编写某些程序里面的某些函数,但是我们总不能每次都把原来文件打开然后复制粘贴吧,太麻烦了,有人想到了一些暴力的方法,如果那个文件只是一个实现函数的功能的文件,没有主函数的话,就#include,然后编译相当暴力。明显这样会急剧增大我们最终生成的.exe文件大小。所以我们就要自已写一个库,以后需要的时候然后调用就行了。现在我们就来讨论怎样编写自原创 2012-07-30 19:58:03 · 1916 阅读 · 4 评论 -
C语言也能干大事板书(一)
板书: 1、C语言不是只能开发黑底白字的控制台界面程序。学习本课的基础:本课程不讲C语言基础知识,C语言考及格,学的过程中配合复习,有不懂的回去翻书。2、学完本课程以后同学们做的一些作品赏析:计算器、俄罗斯方块、音乐播放器、学生管理系统(http://www.rupeng.com/forum/thread-2487-1-1.html ),邮件客户端(http://www.rupen转载 2012-08-01 19:47:27 · 859 阅读 · 3 评论 -
VC怎样建立对话框工程?
前面几篇文章绘图都是采用EasyX提供的TC的graphics.h的图形库,但是明显汇出的图形是在黑屏下面,难免让人感觉不爽,同时我们想编写按钮类的软件即对话框软件,又不知道从何入手,翻开教材都是直接进行switch(message)操作,比如我们想在对话框中画图,翻开API参考书,很多都是直接在WndProc()函数下面直接操作,但是这个前期的对话框工程怎样构建呢?同时怎样在上面画图呢?下面一步原创 2012-07-23 20:34:03 · 2703 阅读 · 3 评论 -
模式匹配KMP算法实现
KMP模式匹配算法原理大家可以参见任何一本数据结构课本,原理这里就不多少了。实现KMP算法主要就是根据输入的模式串构造出模式串的next数组,这个数组决定了当某一次匹配失败后应该从哪个位置开始进行匹配,因此KMP算法的精髓就是正确算出模式串的next数组。实现代码如下在构造出next数组后就可以实现KMP算法了。这里采用源串acabaabaabcacaabc,模式串abaabcac进行测试原创 2012-08-01 20:46:33 · 820 阅读 · 3 评论 -
网络程序设计(一)必要文件
comm.cpp//////////////////////////////////////////////////// comm.cpp文件#include #include #include "Ws2tcpip.h"#include "comm.h"USHORT checksum(USHORT* buff, int size){ unsigned long cks原创 2013-01-17 23:32:57 · 1907 阅读 · 0 评论 -
C语言宏定义精析
在C语言的学习中对于经常使用的常量我们经常使用宏定义,最常用的是#define PI 3.1415926 以后在程序中遇到PI编译器自动将PI替换成3.1415926,非常的方便,因此都很喜欢采用宏定义。宏定义具有简单方便已于修改的特点,但是并不是宏定义没有缺点,因为宏定义采用的是原地替换的策略,因此对于大型程序的调试带来很大不便。因此在C++中便提倡采用const去替换宏,然而宏定义作为C语言一原创 2012-08-18 20:59:34 · 1650 阅读 · 0 评论 -
C语言编程程序的内存如何布局
重点关注以下内容: C语言程序在内存中各个段的组成 C语言程序连接过程中的特性和常见错误 C语言程序的运行方式 一:C语言程序的存储区域 由C语言代码(文本文件)形成可执行程序(二进制文件),需要经过编译-汇编-连接三个阶段。编译过程把C语言文本文件生成汇编程序,汇编过程把汇编程序形成二进制机器代码,连接过程则将各个源文件生成的二进制机器代码文件组转载 2012-08-01 20:58:23 · 604 阅读 · 3 评论 -
C语言也能干大事板书(六)
作业点评: 文件操作。自己动手写记事本。RichEdit控件。LoadLibrary( "riched32.dll" );参考资料:http://msdn.microsoft.com/en-us/library/bb787605(VS.85).aspx5、给结构体所有字段置零复习一下C语言中memset以及结构体的应用。C语言中声明一个结构体变量之后,在使用这个变量之前要首先用me转载 2012-08-01 19:52:55 · 784 阅读 · 3 评论 -
C语言也能干大事板书(五)
上节课作业:学生管理系统(画原型界面布置)增、删、查(双击)、搜接下来我们要实现小时钟。涉及到的主要知识点是定时器的使用,涉及到的C知识就是函数指针(回调函数)使用定时器回调就是不是你调别人,而是别人调你。时间到了会叫你,没到的时候不会烦你。让Windows直接将定时器消息发送给您程序的另一个函数。我们把以下的callback函数称为TimerProc(您能够选择与其它一些用语转载 2012-08-01 19:51:59 · 693 阅读 · 3 评论 -
C语言也能干大事板书(三)
1、怎么修改程序图标,引入一个ico文件(可以用一些工具制作ico图标,网上搜“制作ico”),然后命名ID为1,重新构建。2、在编写控制台程序的时候一切流程都是有先后关系、并行的,而且所有函数都是由我们来调用的,比如下面的实例性代码:printf("确定请输入y,取消输入n");char c = getchar();//scanfif(c=='y'){///}转载 2012-08-01 19:49:05 · 756 阅读 · 3 评论