
c/c++
Miibotree
这个作者很懒,什么都没留下…
展开
-
在c语言中使用转义字符和格式字符
学习过转义字符以后,大家都明白 例如 \t (横向跳格) \n(换行) \\(输出一个\) \' (输出一个 ') \" (输出 ") \ddd (ASCIi为八进制所代表的字符) \xhh (ASCII为十六进制所代表的字符)说到这里,我碰到了一个问题,如何输出%呢?如果直接 printf("%");在执行的时候是没原创 2011-10-31 10:23:42 · 1067 阅读 · 0 评论 -
SVN的使用
最近想看一个彻底删除文件的软件,有人推荐我看Eraser。这是一个开源项目,我尝试了下载它的客户端。用起来感觉还不错。由于是开源项目,我就想找到它的源码来研究一下。https://sourceforge.net/account/watching看了这个介绍,得知它是使用SVN来保存获取源代码的。自己是在windows下面,于是就下了个TortoiseSVN来玩玩了。下面是它的官方下原创 2012-07-16 14:44:40 · 1035 阅读 · 1 评论 -
关于socket中recv的返回值
最近在做一个利用socket下载图片的小程序。基本思路就是建立socket以后自己组包然后发送过去,然后recv接收里面的数据里面就包含了图片数据信息。一开始自己在写的时候,一直会遇到问题。关键代码如下:char* WriteBuffer = (char *)malloc(1024 * 1024 * 2); //创建足够大的Buffer原创 2012-07-23 17:23:12 · 7648 阅读 · 1 评论 -
windows自带计算器模式切换的实现研究
本来说想写个跟windows一摸一样的计算器,一开始都不是什么大问题。但是到模式切换的时候却卡住了。windows自带的计算器是可以切换型号的,从标准型到科学型到程序员到统计信息共有很多种模式。标准型科学型仔细想想会发现,他们公用了一个菜单栏,标准型的所有功能在科学型里面都有。所以我做如下推测:整个大的计算器是一个窗口,下面还注册了很多子窗口,但是根据菜单选项选择模原创 2012-09-07 22:30:47 · 3300 阅读 · 0 评论 -
C++类和对象 新手学习问题小结(一)
c++类与对象(1)F&AQ1:定义或说明对象时,系统会自动调用构造函数为创建的对象初始化。如果类中没有定义任何构造函数时,就无法给定义的对象初始化。这句话是错误的。如果没有定义任何构造函数的时候,系统会调用默认构造函数。这里我的疑问是:什么是默认构造函数呢?查到了下面的解释:http://blog.youkuaiyun.com/gengshenghong/article/detail原创 2012-09-18 16:19:26 · 3894 阅读 · 0 评论 -
ICTCLAS2012分词库在C环境下的使用
最近帮同学做一个数据库搜索比较统计功能的项目。项目流程大概如下:(一)抓取信息源,生成数据库。(二)提取数据库中的中文信息。(三)将中文信息进行分词操作。(四)利用tf-idf算法统计对文本中得词进行加权统计。(五)利用加权统计结果 获得相似度高的文件组。(六)将相似度相关的文件组利用图形方式描述并且关联出来,看到直观的统计效果。这里顺便说一句。在做第二步的时候原创 2012-09-13 13:24:11 · 3579 阅读 · 1 评论 -
算法与编程--信号初步处理
这几天做简单的算法题目,在学校发的教材里面挑选了几道稍微难一点的题目做了一下。花了一天时间做了出来。如此一来稍微找回了一点编程的感觉。下面是题目:下面是我的代码: #include #include typedef struct My_Plural{ //定义复数结构体 double RP; double VP;}Plural;原创 2012-09-11 15:17:55 · 939 阅读 · 0 评论 -
tf-idf算法
原理TFIDF的主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。TFIDF实际上是:TF * IDF,TF词频(Term Frequency),IDF反文档频率(Inverse Document Frequency)。TF表示词条在文档d中出现的频率。IDF的主要思想是:如果包含词条t的文档越少,也就是转载 2012-09-14 13:09:32 · 7732 阅读 · 0 评论 -
Scintilla控件在Win32环境下的使用(二)
这节的目标就是写出语法高亮,代码折叠这两个效果。还是首先给大家发个效果图看一下:主要参考文档:http://www.cnblogs.com/superanyi/archive/2011/04/07/2008632.htmlhttp://www.cnblogs.com/superanyi/archive/2011/04/07/2008636.html当然官方文档是必不原创 2012-09-17 18:11:37 · 4345 阅读 · 0 评论 -
Scintilla控件在Win32环境下的使用(一)
原本想要学习一下语法高亮功能,做一个像Notepad++一样的编辑器。然后就兴冲冲的下载了Notepad++的开源代码准备开始看。但是整个框架比较复杂,看了一会之后突然发现Notepad++使用的是Scintilla这个很强大的控件,而且也是开源的。所以最后决定在分析Notepad++源代码之前先使用一下Scintilla,然后研究一下Scintilla的源码。下面是Scintilla原创 2012-09-17 16:48:51 · 3913 阅读 · 2 评论 -
c++新手学习笔记之多态性和虚函数(1)
c++多态性主要表现在下面几个方面。1.函数重载2.运算符重载3.虚函数书上着重介绍了运算符的重载。自己看了半天概念性的东西也没看懂多少,还是不明白运算符重载的意义。于是就在网上搜索,看到了下面这个例子:http://www.pconline.com.cn/pcedu/empolder/gj/c/0503/581281.htmlclass Test {原创 2012-10-14 11:56:04 · 2620 阅读 · 0 评论 -
free函数在操作系统内存中的实现
昨天在写单项链表的时候碰到这样一个问题。我一次性malloc十个单位节点的内存空间出来赋值给L, 现在我想一次性删除从第3个到第6个节点,我是这么做的:1.将第六个节点的next指针指向NULL2.将L指针指向第三个单位空间的地址,再free(L)。等到把代码写完之后,才发现其中的问题:这里我的free(L)用的对吗?编译运行了一下才发现了问题所在。为了清楚地看到这原创 2012-10-15 13:04:05 · 4538 阅读 · 0 评论 -
windows内存堆的数据结构
还是紧接着昨天的问题,很想明白到底在内存中堆的数据结构到底是怎么样的?究竟是不是别人回答的红黑树的结构?在网上搜索了一番好像也鲜有答案。后来在《0day 安全 软件漏洞分析技术》一书里面找到了这个问题的部分答案。不同平台操作系统对内存的管理机制是不一样的。上面这本书里面主要讲了对windows2000 - windows xp1 平台的堆管理策略。对于基本的操作系统中堆的一些特征,原创 2012-10-16 19:52:21 · 7578 阅读 · 4 评论 -
动态联编 和 静态联编
关于 动态联编 和 静态联编 这个概念,自己听了老师上课讲的课仍然没有明白原理。那么既然这样,只能自己去学习了。首先我们知道的是,动态联编 和 静态联编 都是多态性的一种体现。关于面向对象的三个基本要素:封装(类型抽象), 继承 和 多态。首先我们从概念性上面了解了 动态联编 和 静态联编 的功能:实现了多态性。然后我们从最最基本的开始讲解。1.什么原创 2012-12-15 11:06:43 · 25253 阅读 · 13 评论 -
多重继承--读松本行弘的程序世界
这个学期是简单的学习了基本的C++。感觉C++中最复杂的还是后面的多重继承和多态性。多重继承有以下几个优点:很自然地做到了单一继承的扩展;可以继承多个类的功能;虽然说多重继承的好处很明显,但是缺点也是相当明显的:单一继承的时候,类之间的关系就是一条直线,很明白;而到了多重继承的时候,类之间的关系就变成了一个网状图,类之间的关系图就变的很不明确了。此外,多重继承让类关系复原创 2013-01-22 15:51:30 · 2759 阅读 · 0 评论 -
c语言数组变量在内存中的连续分配情况
今天在做题目的时候碰到一个很奇怪的现象。先看代码:#include #include int main(){ char a[100]; int i,len; scanf("%s",a); len = strlen(a); printf("%d\n",len); a[100] = '0'; //请注意a[100] prin原创 2011-11-02 21:32:33 · 4728 阅读 · 6 评论 -
使用AES加密算法
上几天大概了解了一下AES算法,具体的加密算法现在不想很清楚的了解,只是能够拿来用就好了。这里有份c++的AES。Aes.h #include //enum KeySize { Bits128, Bits192, Bits256 }; // key size, in bits, for construtor#define Bits128 16#define Bits1原创 2012-07-03 22:10:21 · 20802 阅读 · 1 评论 -
关于main函数的三个参数
每一C 程序都必须有一main()函数, 可以根据自己的爱好把它放在程序的某个地方。有些程序员把它放在最前面, 而另一些程序员把它放在最后面, 无论放在哪个地方, 以下几点说明都是适合的。1. main() 参数在Turbo C2.0启动过程中, 传递main()函数三个参数: argc, argv和env。* argc: 整数, 为传给main()的命令行参数个数。* a转载 2011-10-31 21:39:01 · 118 阅读 · 0 评论 -
关于VC6.0++中以及VS2008中编译出现的LINK错误
在使用古董级版本的VC6.0++的时候,经常会出现编译后运行程序,然后修改了程序之后会出现如下错误:--------------------Configuration: 123 - Win32 Debug--------------------Linking...LINK : fatal error LNK1168: cannot open Debug/123.exe for writ原创 2011-10-29 22:30:51 · 2950 阅读 · 0 评论 -
关于二级指针与c++中的引用
最近开始看数据结构。不过没有学过c++直接看数据结构。借了本书本也没有说用的是c还是c++语言进行描述。结果才刚开始看链表就遇到了很多问题。。。下面这段代码是单链表里面尾插法建表的函数,是从《数据结构教程 第2版 》李春葆编里摘抄下来的:#define ElemType inttypedef struct LNode{ ElemType data; struct LNode *n原创 2012-03-08 18:30:08 · 3338 阅读 · 0 评论 -
Writefile与SetFilePointer函数的使用
尝试着在磁盘中修改PE文件。用到writefile和SetFilePointer这两个函数下面先来看看这两个函数:SyntaxDWORD WINAPI SetFilePointer( __in HANDLE hFile, __in LONG lDistanceToMove, __inout_opt PLONG lpDis原创 2012-04-10 15:01:11 · 17527 阅读 · 0 评论 -
野指针<转>
今天同学在写MFC的时候碰到了一个关于野指针的问题。自己还没有学过C++。这个问题先保留。找到一篇文档,留着以后参考。文章出处http://www.cnblogs.com/yc_sunniwell/archive/2010/06/28/1766854.html讨论一什么是野指针? 一个母亲有两个小孩(两个指针),一个在厨房,一个在卧室,(属于不同的代码块,其生存期转载 2012-04-12 21:58:49 · 1131 阅读 · 0 评论 -
如何判断一个文件是否被关闭?
做项目的时候遇到了下面这个问题:如何判断一个打开的txt文件是否被关闭?在打开一个txt文件的时候,notepad程序是自动通过文件路径的参数首先复制文件,然后马上就关闭了文件通道,这个时候打开的其实只是notepad程序而不是文件本身。文件本身的打开与关闭是一瞬间的事情。也就是说notepad程序在读取了文件以后就马上将文件关闭了。(不知道这样讲对不对,还请大家指正。)那么我们判断一个t原创 2012-06-16 21:59:23 · 6549 阅读 · 1 评论 -
内存泄露,缓冲区溢出,堆破坏 的问题
今天在用c语言写socket的AES加解密的时候,由于是直接操作内存,错误百出,调了整整三天才把加解密的问题给搞出来。。。。整死我了。。。总结一下,是自己使用malloc动态分配内存不当,没有掌握sizeof 的用法, 还有没有深刻理解strcpy, strcat函数导致的。1.使用malloc动态分配内存之后,一定要把内存free掉,然后指向NULL,不然会造成内存泄露一般我们常说的原创 2012-07-07 16:52:15 · 3758 阅读 · 1 评论 -
自动读取USB设备文件
期末考试终于全部考完了,终于开始写代码了。这几天先解决一下这个历史遗留问题。问题是这样的:PC 端自动获取USB设备盘符并且读取特定文件夹下面的文件。首先找到下面这些资料来参考:如何获得U盘盘符:http://topic.youkuaiyun.com/u/20081118/14/dc0ab5bd-3a1d-4868-bb1e-4ff638fc82c2.htmlhttp:原创 2012-06-14 22:17:44 · 4381 阅读 · 1 评论 -
给VC应用程序换皮肤的几种方法
这几天想给我们的主界面换好看一点的皮肤。下面介绍三种可能实现的方法:1.使用Skin++Skin++,系统软件,采用独特的软件界面开发技术,让原本复杂繁琐的界面编程变得轻松自如,随着换肤技术的不断进步,Skin++不仅是功能强大的换 肤控件,而且是一款非常通用的换肤插件。只需要在您的程序中添加一句代码,Skin++就能让您的界面焕然一新,并拥有多种主题风格和色调的动态切换功 能。原创 2012-06-25 22:14:13 · 3760 阅读 · 3 评论 -
<转>VC++实现Vista和Win7系统低权限程序向高权限程序发消息
Windows 7已经隆重发布,但是很多程序员已经通过RTM等版本尝到了Windows 7的甜处。那么在Windows 7下用户界面特权隔离,将是本文我们介绍的重点。我们介绍了操作系统服务的Session 0隔离,通过Session 0隔离,Windows 7实现了各个Session之间的独立和更加安全的互访,使得操作系统的安全性有了较大的提高。从操作系统服务的Session 0隔离尝到了甜头转载 2012-07-09 20:44:20 · 4217 阅读 · 0 评论 -
Windows环境下Unicode编程总结和将ANSI转换到Unicode 将Unicode转换到ANSI
Windows环境下Unicode编程总结 UNICODE环境设置在安装Visual Studio时,在选择VC++时需要加入unicode选项,保证相关的库文件可以拷贝到system32下。 UNICODE编译设置:C/C++, Preprocessor difinitions 去除_MBCS,加_UNICODE,UNICODE在ProjectSetting/link转载 2012-06-27 16:42:24 · 915 阅读 · 0 评论 -
socket通信中的动态分配内存导致的错误
今天在调试socket的时候遇到了这样一个比较奇怪的问题。我在单步调试多线程程序的时候是没有错误的,但是一运行程序马上崩溃了。原来以为是多线程的问题,但是我在程序崩溃之后调试了一下,找到出错的地方,发现是在使用数组的时候出错了。这个数组是动态分配内存malloc出来的,百度了一下,看到有人跟我遇到了相同的问题:时间问题.你单步,.每一步花的时间多,所以程序执行完成了,没有错原创 2012-06-29 21:55:10 · 1535 阅读 · 0 评论 -
源码阅读之函数指针
很久没有在优快云上面更新博客了。主要是因为自己觉得博客的文章太水,不好意思发到优快云上面,所以就全部发到了自己的个人博客上面。当然如果大家有兴趣,可以去 miibotree.com光临我的个人技术博客。最近想提高一下阅读源码的水平,主要是因为拿到一份源代码之后自己连编译都要编译半天。面对编译时候产生的各种各样错误,毫无头绪的感觉很糟糕。所以下定决心要多阅读别人的源代码,学习开源代码原创 2013-03-31 13:43:45 · 2691 阅读 · 0 评论