
C /C++编程学习
文章平均质量分 69
wesleyluo
一切都还没有。
展开
-
scanf()与sscanf()学习,简单的字符串处理。
scanf()大家都比较熟悉了,主要讨论下sscanf() 函数.名称:sscanf() --从一个字符中读进与指定格式相符的数据.函数原型:int sscanf(string str,string fmt,mixed var1,mixed var2 ....)int scanf(const char* format,[,argument]....)说明:sscanf(翻译 2009-11-14 10:19:00 · 1563 阅读 · 0 评论 -
rand()与srand()函解析!
rand函数和srand函数首先我们要对rand&srand有个总体的看法:srand初始化随机种子,rand产生随机数,下面将详细说明。rand(产生随机数)表头文件: #include定义函数 :int rand(void)函数说明 :因为rand的内部实现是用线性同余法做的,他不是真的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是随机的,rand()会原创 2009-11-13 21:40:00 · 1073 阅读 · 0 评论 -
Linux 中C语言如何清空标准输入流
今天在Linux程序设计的时候需要清空标准输入缓冲区,于是使用了如下Windows程序设计中的方法:1.fflush(stdin);这个fflush()函数根本不是标准C中的函数,只是标准C的扩展,所以在Linux中使用根本不行;2.中网上搜索了下,发现有网友建议使用rewind(stdin);这个函数其实是将指针指向流的开始处。但是它是文件操作中的一个函数,操作的是FILE型流,在Win原创 2009-11-17 20:57:00 · 10155 阅读 · 2 评论 -
VC++ CString操作总结
原著:Joseph M. Newcomer翻译:littleloach原文出处:codeproject:CString Management通过阅读本文你可以学习如何有效地使用 CString。 CString 是一种很有用的数据类型。它们很大程度上简化了MFC中的许多操作,使得MFC在做字符串操作的时候方便了很多。不管怎样,使用CString有很多特殊的技巧,特别是对于纯C背转载 2009-11-25 16:11:00 · 1296 阅读 · 0 评论 -
VC++ 如何创建一个线程并传递参数
近来做个项目需要写点程序,比较烦.net写的老是需要背着.net包走,所以准备用VC++来写,其中用到了线程方面的知识这里记录下来以备后用。 创建一个工作线程十分简单,只需要两步你的线程就能跑了:(1)实现线程函数和(2)开始线程。不需要由CWinThread派生类,你可以不加修改地使用CWinThread。下面我们来看看如何开始一个线程。 AfxBeginThread有原创 2009-11-26 11:04:00 · 6238 阅读 · 0 评论 -
解决unresolved external symbol "protected: virtual struct AFX_EVENTSINKMAP const * __thiscall 错误。
刚开始学习VC++,对它的东西都不懂,其中最使用DECLARE_EVENTSINK_MAP时出现了一个错误,Linking...LegendWin.obj : error LNK2001: unresolved external symbol "protected: virtual struct AFX_EVENTSINKMAP const * __thiscall CLegendWin::原创 2009-11-27 16:44:00 · 10034 阅读 · 8 评论 -
C语言中与零值的比较
1.bool型变量与零值比较bool值与零值比较的if语句如下几种:bool bTestFlag=FALSE;a). if(bTestFlag==0); if(bTestFlag==1);b). if(bTestFlag==TRUE); if(bTestFlag==FALSE);c). if(bTestFlag); if(!bTestFlag); a的写法:bTestF原创 2010-01-27 16:58:00 · 2670 阅读 · 4 评论 -
VC2005使用MSCOMM编写串口通讯程序
进来又要做个串口通信的程序,由于以前没有做过,所以不知道怎么写,网上搜了一圈,全是在VC6.0下写的,于是找葫芦画瓢,好不容易总算成功了,只是我这里用的是VC2005,但是VC2005中是没有MSCOMM的,所以我们需要借助VC6.0的MSCOMM控件;首先去网上下载MSCOMM32.OCX,MSCOMM32.DEP,MSCOMM.SRG三个文档,然后把它拷贝到c:/windows/syst原创 2009-11-27 16:50:00 · 5381 阅读 · 5 评论 -
char*转换为wchar_t*
把char*转换为wchar_t*用stdlib.h中的mbstowcs_s函数,可以通过下面的例子了解其用法: char *CStr = "string to convert";size_t len = strlen(CStr) + 1;size_t converted = 0;wchar_t *WStr;WStr=(wchar_t*)malloc(len*sizeo原创 2009-12-14 13:56:00 · 2697 阅读 · 1 评论 -
C/C++得到日期字符串
C语言版的: char buf[20]={0}; time_t timep; struct tm *p; time(&timep); p=gmtime(&timep); strftime(buf,20,"%Y%m%d",p);//关键是要明白这个函数的使用方法。 delete p; VC++版的: CTime t=CTime::GetCurrentTim原创 2009-12-11 14:54:00 · 1024 阅读 · 0 评论 -
全面解析MFC应用程序中处理消息的顺序(转)
全面解析MFC应用程序中处理消息的顺序(转)1.AfxWndProc() 该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc 2.AfxCallWndProc() 该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用,然后调用WindowProc()函数 3.WindowProc() 该函数负责发送消息到OnWnd转载 2009-12-15 08:46:00 · 910 阅读 · 0 评论 -
VC中 WM_SHOWWINDOW 与ShowWindow()的区别
WM_SHOWWINDOW VS ShowWindow今天在遍一个程序的时候发现这个小问题: 使用SendDlgItemMessage(hWnd,WM_SHOWWINDOW,(WPARAM)(TRUE),(LPARAM)(0));并不能使窗口的控件从不可见到可见显示。 而使用ShowWindow(hWnd,SW_SHOW);则能正常显示。事实应该是调用ShowWindow()原创 2009-12-15 09:58:00 · 17871 阅读 · 3 评论 -
什么是FOURCC
什么是FOURCCFOURCC全称Four-Character Codes,是在编程中非常常用的东西,一般用作标示符。比如wav、avi等RIFF文件的标签头标示,Quake 3的模型文件.md3中也大量存在等于“IDP3”的FOURCC。它是一个32位的标示符,其实就是typedef unsigned long FOURCC用宏生成FOURCCFOURCC是由四个字符拼接而成的。生成FOURCC转载 2010-02-24 14:46:00 · 2629 阅读 · 0 评论 -
linux c alarm(0)的含义
Linux C alarm函数---请看最后 alarm也称为闹钟函数,它可以再进程中设置一个定时器,当定时器指定的时间到时,它向进城发送SIGALARM信号。要注意的是,一个进程只能有一个闹钟时间,如果在调用alarm之前已设置过闹钟时间,则任何以前的闹钟时间都被新值所代替。 所需头文件 #include 函数原型 unsigned int alarm(unsigne原创 2010-03-03 10:47:00 · 5673 阅读 · 0 评论 -
全面了解setjmp与longjmp的使用
全面了解setjmp与longjmp的使用将对setjmp与longjmp的具体使用方法和适用的场合,进行一个非常全面的阐述。 另外请特别注意,setjmp函数与longjmp函数总是组合起来使用,它们是紧密相关的一对操作,只有将它们结合起来使用,才能达到程序控制流有效转移的目的,才能按照程序员的预先设计的意图,去实现对程序中可能出现的异常进行集中处理。 与goto语句的作用类似,它转载 2010-03-02 11:09:00 · 680 阅读 · 0 评论 -
C语言异常处理机制--setjmp的返回值
使用setjmp时必须使用头文件setjmp.h。#include "setjmp.h"jmp_buf jmpbuffer; int setjmp(jmp_buf jmpbuffer); void longjmp(jmp_buf jumpbuffer, int retval); 其中 jmpbuffer 是相关的程序栈的环境上下文。 初始化jmpbuffer之后, setjmp第一原创 2010-03-03 10:44:00 · 2960 阅读 · 0 评论 -
linux C使用管道通信(一)
Linux中的进程通信1.管道 函数原型:int pipe(int filedes[2]); 函数返回值: 正确返回0;错误返回-1 其中的文件描述符filedes[0]是用来读取数据的,filedes[1]是用来写数据的。 例子1:#include#include#include#include#define MAXLINE 1024原创 2010-03-16 09:01:00 · 2056 阅读 · 0 评论 -
QT编程入门--用代码创建简单的窗口
你在看这篇文章的时候,需要对C++有一定的了解。 首先我们用QT建立一个空的qt4项目,然后添加头文件MessageButDlg.h内容如下:#ifndef MESSAGEBUTDLG_H#define MESSAGEBUTDLG_H#include#include#include#include//定义一个继承于QDialog的类class M原创 2010-04-12 09:03:00 · 4564 阅读 · 2 评论 -
gsoap使用方法及心得
gSOAP是一个夸平台的,用于开发Web Service服务端和客户端的工具,在Windows、Linux、MAC OS和UNIX下使用C和C++语言编码,集成了SSL功能。 下载地址:http://sourceforge.net/projects/gsoap2官方网站:http://genivia.com/Products/gsoap/index.html 对于Window转载 2010-04-27 09:48:00 · 19056 阅读 · 2 评论 -
gsoap入门使用
学习笔记:正好这两天需要在linux客户端使用别人的web services,所以就找了两天的资料学习了下,下面记下以备后用。通过搜索资料我发现了gsoap这个开源的软件开发工具包,听说是跨平台,封装的很好的,反正就是很牛x的。 既然要使用gsaop工具包肯定第一步是下载,安装。这步应该没什么问题,就是去官方网站下载对应系统的压缩包回来安装。 安装Ok后,我们到gsaop的原创 2010-04-28 15:29:00 · 1904 阅读 · 0 评论 -
浅析gethostbyname函数
最近在学习unix/linux的socket编程的时候,使用了struct hostent *gethostbyname(const char *name);虽然给我的程序移植性带来了一定的好处,但是与此同时可带了一些副作用。本片文章将主要描述使用此函数时候的注意点,希望能够网友带来一些启迪。 gethostbyname将返回一个struct hostent的指针,这个结构定义如下:转载 2010-05-04 14:03:00 · 4291 阅读 · 0 评论 -
typedef 与函数指针的用法
在网上搜索函数指针,看到一个例子。开始没看懂,想放弃,可是转念一想,这个用法迟早要弄懂的,现在多花点时间看懂它,好过以后碰到了要再花一倍时间来弄懂它。其实很多时候都是这样,如果每次到难一点的内容,总想着下次我再来解决它,那就永远也学不到东西。 后面那个例子加了注释,是我对这种用法的理解,希望对新手有所帮助。 进入正文: 代码简化, 促进跨平台开发的目的. typedef 行转载 2010-05-12 08:45:00 · 589 阅读 · 0 评论 -
C++的纯虚函数,抽象类讲解
纯虚函数是指不必在基类中定义,但必须在派生类中被覆盖(override)的函数。通过新奇的“=0”语法可将虚函数声明为纯虚函数。例如: class Base { public: void f1(); // 不是虚函数 virtual void f2(); // 是虚函数,但不是纯虚函数转载 2010-05-14 14:59:00 · 1005 阅读 · 1 评论 -
C++使用STL 把有序序列 生成 随机序列
请看下面的例子ptrdiff_t myrandom(ptrdiff_t i){return rand()%i;}ptrdiff_t (*p_myrandom)(ptrdiff_t)=myrandom;//此处定义一个函数指针,指向产生随机数的方法函数template void vrand(vector &v,ptrdiff_t (*p_myrandom)(ptrdiff_t))//原创 2010-05-14 15:01:00 · 2143 阅读 · 0 评论 -
C++的复制构造函数讲解
复制构造函数,直接初始化,复制初始化,赋值,临时对象 复制构造函数应弄清的几个问题:何时调用复制构造函数,复制构造函数有何功能,为什么要定义自已的复制构造函数。 1.复制构造函数:当用户没有定义自已的复制构造函数时系统将生成一个默认的复制构造函数。当按值传递对象时,就会创建一个形参的临时对象,然后调用复制构造函数把临时对象的值复制给实参。 2.默认复制构造函数的功能:将一个对象的转载 2010-05-13 17:12:00 · 1214 阅读 · 0 评论 -
C++类的成员初始化 与 赋值
条款12: 尽量使用初始化而不要在构造函数里赋值 看这样一个模板,它生成的类使得一个名字和一个t类型的对象的指针关联起来。 template class namedptr { public: namedptr(const string& initname, t *initptr); ...原创 2010-05-14 15:49:00 · 2742 阅读 · 0 评论 -
50个C/C++源码网站
C/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建议,以进一步加强这方面的清单。 1、http://snippets.dzone.com/tag/c/ --数以千计的有用的C语言源代码片段 2、http://转载 2010-05-14 20:55:00 · 1164 阅读 · 0 评论 -
纯DOS下的 TCP/IP编程
DOS下的SOCKET编程 这是我摘抄的别人的心得,呵呵。 为了实现DOS机与PC机之间的TCP/IP通信,必须找到相关控制SOCKET的库。本来有个国外网站www.wattcp.com免费提供WATTCP库了实现DOS中的TCP/IP协议栈,但是它却不提供说明文档,所以这块鸡肋先放哪吧。 话说那个写心得的又到一个叫ERTOS的库,是从WATCP库拓展来的(不仅实现了T原创 2010-05-18 16:07:00 · 3710 阅读 · 0 评论 -
linux下的C延时操作
linux下的C延时操作原创 2010-07-15 10:42:00 · 3574 阅读 · 0 评论 -
C++ 中谓词是什么?
个人也是初学根本就不了解谓词是什么意思,通过下面的例子大家自己体会吧。 下面程序演示了count_if();该程序创建一个包含数字1-19的矢量,然后统计能够被3整除的元素个数。为了达到这个目的,程序首先创建了一个称为dividesby3()的一元谓词,如果谓词的参数能够被3整除,该谓词返回ture。 #include#include#includeusing na原创 2010-05-19 13:14:00 · 8863 阅读 · 3 评论 -
C++中自己定义函数对象
创建函数对象 除了使用内置的函数对象外,我们还可以创建自己的函数对象,为了达到这个目的,只需要创建一个重载operator()函数的对象。然而,为了获得最大的灵活性,你会希望使用下面的这些类中的一个,这些类被STL定义为你所创建的函数对象的基类。template struct unary_function{ typedef Argument argument_typ原创 2010-05-19 13:53:00 · 2270 阅读 · 2 评论 -
C++ 为什么类的构造函数可以访问类的私有成员?解惑
看下面的例子程序:class Point{public:Point(int xx=0,int yy=0){x=xx;y=yy;}Point(Point &p){x=p.x; //这里访问了p对象的私有成员y=p.y; //这里访问了p对象的私有成员}private:int x,y;}; 很多初学者都对类的权限有个误解原创 2010-05-20 08:51:00 · 4102 阅读 · 2 评论 -
Vector容器 构造函数
=====Vector constructors(Vector 构造函数)=====+Syntax:+语法:+++ #include + using namespace std;+ vector();+ vector( con原创 2010-05-19 08:03:00 · 5374 阅读 · 0 评论 -
C/C++中 宏定义字符串 操作
关于记号粘贴操作符(token paste operator): ##1. 简单的说,“##”是一种分隔连接方式,它的作用是先分隔,然后进行强制连接。 其中,分隔的作用类似于空格。我们知道在普通的宏定义中,预处理器一般把空格 解释成分段标志,对于每一段和前面比较,相同的就被替换。但是这样做的结果是, 被替换段之间存在一些空格。如果我们不希望出现这些空格,就可以通过添加一些转载 2010-05-21 13:36:00 · 7220 阅读 · 1 评论 -
VC++ 大文件读写(大于4G)
VC++中使用内存映射文件处理大文件 摘要: 本文给出了一种方便实用的解决大文件的读取、存储等处理的方法,并结合相关程序代码对具体的实现过程进行了介绍。 引言 文件操作是应用程序最为基本的功能之一,Win32 API和MFC均提供有支持文件处理的函数和类,常用的有Win32 API的CreateFile()、WriteFile()、ReadFile()和MFC提供的CFile类等。一般转载 2010-05-26 07:53:00 · 13171 阅读 · 1 评论 -
Linux 下 C语言大文件读写(大于4G)
以下的做法整理自论坛上的帖子。 如何create大文件要大就非常大,1T吧。有两种方法: 一.dddd if=/dev/zero of=1T.img bs=1G seek=1024 count=0bs=1G表示每一次读写1G数据,count=0表示读写0次,seek=1024表示略过1024个Block不写,前面block size是1G,所以共略过1T!这是创建大型sparse文件最简单的方法。原创 2010-05-26 08:04:00 · 4435 阅读 · 0 评论 -
C++两个不同的类数据访问(友元函数)
看到C++书上说友元函数就是为了别人能访问类中的私有成员设计,感觉挺好就给记下了。 看下面的例子:#include #include using namespace std;class C2;class C1{ private: int a; int b; public:原创 2010-05-27 11:35:00 · 2019 阅读 · 0 评论 -
linux 程序在高版本编译后到低版本运行报错:Floating point exception ,解决方法。
linux 程序在高版本编译后到低版本运行报错:Floating point exception ,解决方法。原创 2010-07-29 10:48:00 · 4864 阅读 · 0 评论 -
Linux -gcc 简单使用
Linux -gcc 简单使用原创 2010-10-01 17:44:00 · 849 阅读 · 0 评论 -
C语言内存分配示例 与 字节对齐示例
C语言内存分配示例 与 字节对齐示例原创 2010-10-14 20:01:00 · 1040 阅读 · 0 评论