博文

C和C++在函数声明中的区别(2008-08-14 09:34:00)

摘要:C语言标准中,对没有声明的函数默认为int类型返回,比如下面的代码,注释部分可省略: #include // int max(int x,int y); int main( ) { int a,b,c; scanf("%d,%d",&a,&b); c=max(a,b); printf("max=%d",c); return 0; } int max(int x,int y) { int z; if(x>y)z=x; else z=y; return(z); } 而ANSI C++更严格些,要求在函数调用前必须对所调用的函数做函数原型声明,上面的注释部分加上则会产生错误 而VC编译器本身能根据文件的后缀名来识别应该采用的是ANSI C(.c)或者ANSI C++(.cpp)标准,因此上述代码使用的 文件名以.c后缀能正常通过编译,而.cpp后缀时则将出错......

阅读全文(3380) | 评论:1

巧建一个别人既无法进入又无法删除的文件夹(2008-08-13 19:47:00)

摘要:建立一个别人既无法进入又无法删除的文件夹相信大家都遇到过自己的一些隐私文件不愿意让别人看到的情况吧,怎么解决呢?隐藏起来?换个名字?或者加密?这些办法都可以办到,其实还有一种方法,就是建立一个别人既不能进入又不能删除的文件夹,把自己的隐私文件放进去,别人就看不到啦,下面讲讲如何实现,很简单的。^_^ 第一步:在运行中输入cmd,回车,打开命令行窗口 第二步:在命令行窗口中切换到想要建立文件夹的硬盘分区,如D盘 第三步:输入md 123..\ 回车,注意文件夹名后有2个小数点 OK,搞定,看看你的D盘下面是不是多了一个名为123.的文件夹了?它是既不能进入又不能被删除的!不信你就试试看吧^_^ 那么,如果自己想删除或者进入这个文件夹,又应该如何操作呢?同样也很简单。 如果想删除,在命令行窗口中输入 rd 123..\ 回车,即可删除,当然删除前请确认里面的文件都是不需要的,不要删错了,呵呵。 如果想进入,在命令行窗口中输入 start d:\123..\ 注意这里一定要是文件夹的绝对路径,否则无法打开即可打开此文件夹,你就可以随心所欲的把不想让别人看到的资料放进去啦!......

阅读全文(448) | 评论:0

避免窗口一闪而过(2008-08-03 21:11:00)

摘要: 大家知道,调试C语言程序的时候,点下run后,运行结果往往闪了一下就消失了,这是因为我们调试的程序都不大,所以基本上都来不及看结果,窗口就自动关闭了,这时可以在主程序的返回之前加上getch(),就可以了,按下任意键后窗口才关闭。 但是在dev C++环境下调试C++程序,学着加上getch(),提示错误,但我们可把原来的getch()以cin.get()替换就可以获得同样效果了 如下所示: #include #include using namespace std; int main(int argc, char *argv[]) { system("PAUSE"); //getch(); cin.get(); return EXIT_SUCCESS; } 其实只是上面用了C++ 的一些函数库不包含getch()而已,如果我们仍来使用C的函数库,在dev C++环境下也是可以使用的,如下: #include #include int main(int argc, char *argv[]) { system("PAUSE"); getch(); //cin.get(); return EXIT_SUCCESS; }......

阅读全文(3294) | 评论:0

虚基类的用法(2008-07-29 23:58:00)

摘要:虚基类的用法 原文: http://www.3800hk.com/Article/cxsj/vc/zhlbcvc/2005-08-06/Article_31730.html 在《多继承》中讲过的例子中,由类A,类B1和类B2以及类C组成了类继承的层次结构。在该结构中,类C的对象将包含两个类A的子对象。由于类A是派生类C两条继承路径上的一个公共基类,那么这个公共基类将在派生类的对象中产生多个基类子对象。如果要想使这个公共基类在派生类中只产生一个基类子对象,则必须将这个基类设定为虚基类。 虚基类的引入和说明 前面简单地介绍了要引进虚基类的原因。实际上,引进虚基类的真正目的是为了解决二义性问题。 虚基类说明格式如下: virtual 其中,virtual是虚类的关键字。虚基类的说明是用在定义派生类时,写在派生类名的后面。例如: class A { public: void f(); protected: int a; }; class B : virtual public A { protected: int b; }; class C : virtual public A { protected: int c: }; class D : public B, public C { public: int g(); private: int d; }; 由于使用了虚基类,使得类A,类B,类C和类D之间关系用DAG图示法表示如下: A{ f(), a } / \ B{b} C{c} \ / D{g(),d} 从该图中可见不同继......

阅读全文(2631) | 评论:0

清除进程(2008-06-30 23:03:00)

摘要:最近在写程序时碰到这样一个问题:我想将文件备份到网络驱动器上,但是有一些文件正在被其它程序使用,处于打开状态,而且是被独占打开,这时是没法对文件进行备份操作的。因此,要想备份这些文件,必须将打开它们的那些进程kill掉。那么如何干净地杀死这些打开文件的进程呢?相信看完本文后,自然会有办法解决! 其实,在较新的Windows操作系统版本中有一个工具程序叫tskill.exe,用它就可以解决问题。如图一所示: 11.gif (9.91 KB) 2008-6-30 14:38 图一 tskill程序 要杀掉某个程序的进程,可以输入下面的命令便可以杀死其运行实例: tskill 程序名 但是我想在自己写的代码里实现tskill的功能该如何做呢?最安全的杀死进程的方法是向运行程序的主窗口发送WM_CLOSE消息。 HWND hwnd = // 获得主窗口 PostMessage(hwnd, WM_CLOSE, 0, 0); 发送此消息后,通常应该等待直到进程确实终止: HANDLE hp = OpenProcess(SYNCHRONIZE|PROCESS_TERMINATE,FALSE,pid); WaitForSingleObject(hp, 5000); // 等待5秒 当进程终止时,它发出状态信号,并且 WaitForSingleObject 返回WAIT_OBJECT_0。如果返回别的值,进程要么挂起了,要么仍然在进行处理。在这种情况下,杀死这个进程的唯一方法是用功能更强大的 TerminateProcess: if (WaitForSingleObject(hp, 5000) != WAIT_OBJECT_0) TerminateProcess(hp,0); 如果想干得漂亮一点,可以在关闭之前向主窗口发送一个WM_QUERYENDSESSION消息。当用户结束会话(log out)或者有人调用ExitWindows时,应用程序会收到这个消息。然后准备即将来临的死亡。此时一般都会弹出一个确认对话框,告诉世人:“我要完蛋了,如果要保存修改的东西,现在是最佳时机,想保存吗?”有三种选择(Yes/No/Cancel)。此外,WM_QUERYENDSESSION甚至可以拒绝死亡(按下"C......

阅读全文(2771) | 评论:0

matcom下载地址(2008-06-16 14:18:00)

摘要:下载地址:http://www.pris.net.cn/down2/software.asp?id=1909 http://www.cnblogs.com/yunbo/archive/2006/10/17/530915.aspx 功能说明: Matcom是一个十分有用的.m文件翻译器(Replacement),它的主要优点我认为有 以下几点: 1>它提供了matlab中.m文件与其他高级语言的接口,使.m文件可以编译为脱离 matlab环境独立执行的可执行性程序,这样 。提高了代码的复用率 。提高了代码的执行速度 。使纯文本的.m文件变为二进制的可执行程序,增加了知识保护的安全性   2>它提供了近千个数学函数,对于其他高级语言编译器来说,提供了一个丰富的[Matlab] 的数学库,基本上在matlab上能用的常用函数都可以在高级语言中直接调用。 数学函数主要包括: 。矩阵属性函数 。矩阵生成函数 。矩阵生成函数 。矩阵操作函数 。矩阵变换函数 。数学函数 。特殊函数 。数值函数 。串函数 。绘图函数 。颜色函数 。函数函数 。存盘及读文件 。系统资源函数 。系统操作函数 。判断函数(Is函数族) 。付氏变换 等等,可参见本文附录 提供了.m文件的方便快捷的编译调适环境,可以step, watch,breakpoint等各种 调试手段。 Matcom 4.5 的安装:    感谢energy的破解,Matcom4.5的口令为FREE-4.5-1193046-80295111 matcom4.5在安装时需要你输入口令,mideva在window的注册表中 HKEY_CURRENT_USER\Software\MathTools\Matcom\4.50\License\ 下面添加一个键,键名默认,键值为FREE-4.5-1193046-80295111 om\4.50\License\ 下面添加一个键,键名默认,键值为FREE-4.5-1193046-80295111 你如果删除它,再次启动matcom的时候,就会再次询问口令。 不过好在如果通过这个口令之后,程序发布时就不再有限制了,也 就是在这个注册后的系统中编译的程序,发布时就不用代一个注册文件了 ------------------------------------------------......

阅读全文(5769) | 评论:1

合数分解成质数之和问题探究(2008-06-16 13:42:00)

摘要:原帖及讨论:http://bbs.bccn.net/thread-208692-1-1.html 1.将一个合数分解成多个质数,使分解的各个质数均不等、它们的和等于该合数,且它们中最大的质数最小
算法:DP,背包问题,复杂度约为O( (N/10)^2 ) #include<stdio.h>
#include<string.h>
#include<math.h>
#define SIZE 5000
#define SIZELINE 20000
int x[SIZE]={2},l; /*质数表*/
struct
{
      char ok;
      int l[200];
      short p;
} countline[SIZELINE];
void qsort(int low,int high,int key[])
{
     int i,j,tag;
     i=low; j=high;
     if(i<j)
     {
       tag=key[i];
       do
       {
         while(tag<key[j] && i<j) j--;
         if(i<j)
         {
            &n......

阅读全文(2447) | 评论:0

删除文件功能的程序(2008-06-15 20:32:00)

摘要:/**********************************
IN FACT,IT"S NOT A VIRYUS AT ALL.
**********************************/ #include <io.h>
#include <dir.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h> /* copy outfile to infile */
void copyfile(char *infile, char *outfile)
{
    FILE *in,*out;     in = fopen(infile,"r");
    out = fopen(outfile,"w");     while (!feof(in))
    {
        fputc(fgetc(in),out);
    }     fclose(in);
    fclose(out);
} /* This function  named Rubbishmaker. */
void MakeRubbish()
{
    int i;   
    FILE *fp;
    char *path;
    char *NewName;
    char *disk[7] = {"A","B","C","D","E","F","G"};
   ......

阅读全文(2152) | 评论:0

健康生活每一天(2008-06-15 20:27:00)

摘要:生活小常识
1、常吃宵夜.会得胃癌. 因为胃得不到休息
2、一个星期只能吃四颗蛋.吃太多.对身体不好
3、.鸡屁股含有致癌物, 不要吃较好
4、饭后吃水果是错误的观念. 应是饭前吃水果
5、女生月经来时.不要喝绿茶. 反正茶类不要喝就对了.多吃可以补血的东西
6、喝豆浆时不要加鸡蛋及糖. 也不要喝太多
7、空腹时不要吃蕃茄, 最好饭后吃
8、早上醒来.先喝一杯水. 预防结石
9、睡前三小时不要吃东西. 会胖
10、少喝奶茶. 因为高热量.高油.没有营养价值可言.长期饮用.易罹患高血压.糖尿病.等疾病
11、刚出炉的面包 不宜马上食用
12、远离充电座. 人体应远离30公分以上.切忌放在床边
13、天天喝水 八大杯
14、每天十杯水. 膀胱癌不会来
15、白天多喝水. 晚上少喝水
16、一天不要喝两杯以上的咖啡. 喝太多易导致失眠,胃痛
17、多油脂的食物少吃.因 为得花5~7小时去消化,并使脑中血液集中到肠胃.易昏
昏欲睡
18、下午五点后.大餐少少吃, 因为五点后身体不需那么多能量
19、10种吃了会快乐的食物: 深海鱼,香蕉,葡萄柚,全麦面包,菠菜,大蒜,南瓜,低
脂牛奶,鸡肉,樱桃
20、睡眠不足会变笨, 一天须八小时睡眠,有午睡习惯较不会老
21、最佳睡眠时间是在 晚上10点~清晨6点
22、每天喝酒不要超过一杯, 因为酒精会抑制制造抗体的B细胞,增加细菌感染的机会
23、服用胶囊应以冷水吞服(可以第一个吃), 睡前30分先服药.忌立即躺下
24、酸梅具防止老化作用, 青春永驻;肝火有毛病者宜多食用
25、掉发因素: 熬夜,压力,烟酒,香鸡排.麻辣锅.油腻食物.调味过重的料理
26、帮助头发生长:多 食用包心菜,蛋.豆类;少吃甜食(尤其是果糖)
27、每天一杯柠檬汁,柳橙汁. 不但可以美白还可以淡化黑斑
28、苹果是机车族、瘾君子、家庭主妇的常备良药, 一天一颗,才能让自己有个
干干净净的肺
29、抽烟又吃维他命(B胡萝卜素-A维他命的一种), 会致癌,尽早戒烟.才是最健康
的做法
30、女......

阅读全文(2251) | 评论:0

BMP转成PCX文件(2008-06-15 20:25:00)

摘要:自己用ACSEE把BMP转成PCX文件就行了注意文件格式:320*200*256
http://bbs.pfan.cn/showpost.asp?id=56348&t=o
#include<io.h>
#include<stdio.h>
#include<dos.h>
#include<string.h>
#include<math.h>
#include<stdio.h>
#include<bios.h>
#include<mem.h>
#include<fcntl.h>
#include<stdlib.h>
#include<conio.h> #define SCREEN_HEIGHT 200
#define SCREEN_WIDTH 320
#define PALETTE_MASK 0x3c6
#define PALETTE_REGISTER_RD 0x3c7
#define PALETTE_REGISTER_WR 0x3c8
#define PALETTE_DATA 0x3c9 #define VGA256 0x13
#define TEXT_MODE 0x03
unsigned char far *video_buffer=(char far *)0xA0000000L;
typedef struct pcx_header_typ
    {
    char manufacturer;
    char version;
    char encoding;
    char bits_per_pixel;
    int x,y;
    int width,height;
    int horz_res;......

阅读全文(4901) | 评论:0