1. C++ËäÈ»Ö÷ÒªÊÇÒÔCµÄ»ù´¡·¢Õ¹ÆðÀ´µÄÒ»ÃÅÐÂÓïÑÔ£¬µ«Ëý²»ÊÇCµÄÌæ´úÆ·£¬²»ÊÇCµÄÉý¼¶£¬C++ºÍCÊÇÐֵܹØÏµ¡£Ã»ÓÐ˱ÈËÏȽøµÄ˵·¨£¬¸üÖØÒªµÄÒ»µãÊÇCºÍC++¸÷×Եıê׼ίԱ»áÊǶÀÁ¢µÄ£¬×îеÄC++±ê×¼ÊÇC++98£¬×îеÄC±ê×¼ÊÇC99¡£Òò´ËҲûÓÐÏÈѧCÔÙ˵C++µÄ˵·¨£¬Ò²²»ÔÙ£¨×¢ÒâÕâ¸ö"²»ÔÙ"£©ÓÐC++Óï·¨ÊÇCÓï·¨µÄ³¬¼¯µÄ˵·¨¡£
2. C++/CLI ºÍ C# ÊÇ΢ÈíµÄ£¬ËüÃÇÓëCºÍC++ûÓÐÈκιØÏµ£¬ËäÈ»²¿·ÖÓï·¨ÏàËÆ¡£µ«ÄÄÁ½ÖÖÓïÑÔ²»ÏàËÆÄØ£¿¶¼ÊÇabcÕâ26¸ö×Öĸ¡£
3. ²»ÒªÊ¹ÓÃTC/TC++/BC/CBµÈ¹ÅÀϵıàÒëÆ÷À´Ñ§Ï°C/C++£¬ÒòΪËüÃÇÌ«¹ÅÀÏÁË£¬²»Ö§³ÖеÄC/C++±ê×¼¡£²»ÒªÊ¹ÓÃCBX/VC++6.0/VC2005µÈ¶ÔC/C++±ê×¼Ö§³Ö²»ºÃµÄ±àÒëÆ÷£¬ËäÈ»ÕâЩ±àÒëÆ÷ÊʺϹ¤×÷£¬µ«²»ÊʺÏѧϰ£¬ÒòΪËüÃÇÖеÄÓï·¨ÏÝÚåºÜ¶à¡£¼ÇסΨһÊʺÏѧϰµÄ±àÒëÆ÷ÊÇgcc/mingw¡£[antigloss×¢£ºDev-C++ ʹÓõıàÒëÆ÷¾ÍÊÇgcc & g++]
4. ²»ÒªÓÃ""´úÌæ<>À´°üº¬ÏµÍ³Í·Îļþ£¬ËäÈ»ÓÐЩ±àÒëÆ÷ÔÊÐíÄãÕâÑù×ö£¬µ«Ëü²»·ûºÏC/C++±ê×¼¡£
´íÎóµÄʾÀý£º#include "stdio.h"£¬#include "iostream"¡£[antigloss×¢£ºÏ°¹ßÉÏ£¬<> ÓÃÓÚ°üº¬±ê׼ͷÎļþºÍϵͳͷÎļþ£¬"" ÓÃÓÚ°üº¬×Ô¶¨ÒåÍ·Îļþ¡£±ê×¼ËÆºõûÓÐÃ÷È·¹æ¶¨²»×¼Óà "" °üº¬±ê׼ͷÎļþºÍϵͳͷÎļþ¡£Ê ......
1. C++ËäÈ»Ö÷ÒªÊÇÒÔCµÄ»ù´¡·¢Õ¹ÆðÀ´µÄÒ»ÃÅÐÂÓïÑÔ£¬µ«Ëý²»ÊÇCµÄÌæ´úÆ·£¬²»ÊÇCµÄÉý¼¶£¬C++ºÍCÊÇÐֵܹØÏµ¡£Ã»ÓÐ˱ÈËÏȽøµÄ˵·¨£¬¸üÖØÒªµÄÒ»µãÊÇCºÍC++¸÷×Եıê׼ίԱ»áÊǶÀÁ¢µÄ£¬×îеÄC++±ê×¼ÊÇC++98£¬×îеÄC±ê×¼ÊÇC99¡£Òò´ËҲûÓÐÏÈѧCÔÙ˵C++µÄ˵·¨£¬Ò²²»ÔÙ£¨×¢ÒâÕâ¸ö"²»ÔÙ"£©ÓÐC++Óï·¨ÊÇCÓï·¨µÄ³¬¼¯µÄ˵·¨¡£
2. C++/CLI ºÍ C# ÊÇ΢ÈíµÄ£¬ËüÃÇÓëCºÍC++ûÓÐÈκιØÏµ£¬ËäÈ»²¿·ÖÓï·¨ÏàËÆ¡£µ«ÄÄÁ½ÖÖÓïÑÔ²»ÏàËÆÄØ£¿¶¼ÊÇabcÕâ26¸ö×Öĸ¡£
3. ²»ÒªÊ¹ÓÃTC/TC++/BC/CBµÈ¹ÅÀϵıàÒëÆ÷À´Ñ§Ï°C/C++£¬ÒòΪËüÃÇÌ«¹ÅÀÏÁË£¬²»Ö§³ÖеÄC/C++±ê×¼¡£²»ÒªÊ¹ÓÃCBX/VC++6.0/VC2005µÈ¶ÔC/C++±ê×¼Ö§³Ö²»ºÃµÄ±àÒëÆ÷£¬ËäÈ»ÕâЩ±àÒëÆ÷ÊʺϹ¤×÷£¬µ«²»ÊʺÏѧϰ£¬ÒòΪËüÃÇÖеÄÓï·¨ÏÝÚåºÜ¶à¡£¼ÇסΨһÊʺÏѧϰµÄ±àÒëÆ÷ÊÇgcc/mingw¡£[antigloss×¢£ºDev-C++ ʹÓõıàÒëÆ÷¾ÍÊÇgcc & g++]
4. ²»ÒªÓÃ""´úÌæ<>À´°üº¬ÏµÍ³Í·Îļþ£¬ËäÈ»ÓÐЩ±àÒëÆ÷ÔÊÐíÄãÕâÑù×ö£¬µ«Ëü²»·ûºÏC/C++±ê×¼¡£
´íÎóµÄʾÀý£º#include "stdio.h"£¬#include "iostream"¡£[antigloss×¢£ºÏ°¹ßÉÏ£¬<> ÓÃÓÚ°üº¬±ê׼ͷÎļþºÍϵͳͷÎļþ£¬"" ÓÃÓÚ°üº¬×Ô¶¨ÒåÍ·Îļþ¡£±ê×¼ËÆºõûÓÐÃ÷È·¹æ¶¨²»×¼Óà "" °üº¬±ê׼ͷÎļþºÍϵͳͷÎļþ¡£Ê ......
µ±Òª½»»»Á½¸öÊýµÄֵʱ£¬Í¨³£µÄ×ö·¨ÊǶ¨ÒåÒ»¸öÁÙʱ±äÁ¿£¬È»ºóÔÙ½øÐн»»»¡£ÄÇôÄܲ»Äܲ»ÓÃÁÙʱ±äÁ¿¶ø½»»»Á½¸öÊýµÄֵĨ£¿¿ÉÒԵģ¡CÓïÑÔÌṩµÄÒì»òÔËËã¾Í¿ÉÒÔʵÏÖÕâÑùµÄ²Ù×÷¡£
Òì»òÔËËã·û^Ò²³ÆXORÔËËã·û£¬ËüµÄ¹æÔòÊÇÈô²Î¼ÓÔËËãµÄÁ½¸ö¶þ½øÎ»Í¬ºÅ£¬Ôò½á¹ûΪ0£¨¼Ù£©£»ÒìºÅΪ1£¨Õ棩¡£¼´0 ^ 0 = 0, 0 ^ 1 = 1, 1 ^ 0 = 1, 1 ^ 1 = 0¡£
Àý£º
#include <stdio.h>
int main(int argc, char *argv[])
{
int a = 2, b = 6;
a = a ^ b;
b = b ^ a;
a = a ^ b;
printf("a = %d b = %d\n", a, b);
return 0;
}
½á¹ûÈçÏÂ: a = 6 b = 2
·ÖÎö£ºÇ°Á½¸ö¸³ÖµÓï¾ä£º“a = a ^ b£»”ºÍ“b = b ^ a£»”Ï൱ÓÚb = b ^ (a ^ b)£¬¶øb ^ a ^ bµÈÓÚa ^ b ^ b¡£b ^ bµÄ½á¹ûΪ0£¬ÒòΪͬһ¸öÊýÓëÏàÏòÏà^£¬½á¹û±ØÎª0¡£Òò´ËbµÄÖµµÈÓÚa ^ 0£¬¼´a£¬ÆäֵΪ2¡£
ÔÙÖ´ÐеÚÈý¸ö¸³ÖµÓï¾ä£º“a = a ^ b”¡£ÓÉÓÚaµÄÖµµÈÓÚ(a ^ b)£¬bµÄÖµµÈÓÚ(b ^ a ^ b)£¬Òò´Ë£¬Ï൱ÓÚa = a ^ b ^ b ^ a ^ b£¬¼´aµÄ ......
#include <windows.h>
int WINAPI WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nShowCmd )
{
OPENFILENAME ofn;
//ÔÚÄÚ´æÖпª±ÙÒ»¿é¿Õ¼ä£¬´æ·ÅÓû§Ñ¡È¡µÄÎļþÃû
char szFile[MAX_PATH];//MAX_PATHÊÇϵͳ¶¨ÒåµÄÒ»¸öºêֵΪ260£¬Windows²Ù×÷ϵͳÎļþ·¾¶µÄ×î´ó³¤¶È
ZeroMemory(&ofn,sizeof(ofn));//½«Õâ¸ö½á¹¹Ìå±äÁ¿¶¨ÒåΪ0
ofn.lStructSize = sizeof(ofn);//»ñÈ¡½á¹¹ÌåµÄ´óС
ofn.lpstrFile = szFile;//szFileÊÇÒ»¸ö×Ö·ûÊý×飬ÄÇôszFileÕâ¸öÃû×־ʹú±íÕâ¸ö×Ö·ûÊý×éµÄÊ×µØÖ·ÕâÊÇÒ»¸öÖ¸ÕëµÄÓ¦Ó㬰ѽÓÊÕÑ¡ÔñÎļþÃûµÄÊý×éµÄµØÖ·´«µÝµ½GetOpenFileNameº¯ÊýÖС£
ofn.lpstrFile[0] = TEXT('\0');//Ч¹ûµÈ¼ÛÓÚZeroMemory(szFile,sizeof(szFile));
ofn.nMaxFile = sizeof(szFile);
ofn.lpstrFilter = TEXT("ËùÓÐÎļþ(*.*)\0*.*\0Text(*.TXT)\0*.TXT\0");
ofn.nFilterIndex = 1;//ĬÈÏÑ¡ÔñµÄ¹ýÂËÆ÷£¬Ë÷Òý´Ó1¿ªÊ¼
// Ö¸Ïò½ÓÊÕÑ¡ÔñµÄÎļþµÄÎļþÃûºÍÀ©Õ¹ÃûµÄ»º³å£¨²»´øÂ·¾¶ÐÅÏ¢£©¡£Õâ¸ö³ÉÔ±¿ÉÒÔÊÇNULL¡£
of ......
#include <windows.h>
int WINAPI WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nShowCmd )
{
OPENFILENAME ofn;
//ÔÚÄÚ´æÖпª±ÙÒ»¿é¿Õ¼ä£¬´æ·ÅÓû§Ñ¡È¡µÄÎļþÃû
char szFile[MAX_PATH];//MAX_PATHÊÇϵͳ¶¨ÒåµÄÒ»¸öºêֵΪ260£¬Windows²Ù×÷ϵͳÎļþ·¾¶µÄ×î´ó³¤¶È
ZeroMemory(&ofn,sizeof(ofn));//½«Õâ¸ö½á¹¹Ìå±äÁ¿¶¨ÒåΪ0
ofn.lStructSize = sizeof(ofn);//»ñÈ¡½á¹¹ÌåµÄ´óС
ofn.lpstrFile = szFile;//szFileÊÇÒ»¸ö×Ö·ûÊý×飬ÄÇôszFileÕâ¸öÃû×־ʹú±íÕâ¸ö×Ö·ûÊý×éµÄÊ×µØÖ·ÕâÊÇÒ»¸öÖ¸ÕëµÄÓ¦Ó㬰ѽÓÊÕÑ¡ÔñÎļþÃûµÄÊý×éµÄµØÖ·´«µÝµ½GetOpenFileNameº¯ÊýÖС£
ofn.lpstrFile[0] = TEXT('\0');//Ч¹ûµÈ¼ÛÓÚZeroMemory(szFile,sizeof(szFile));
ofn.nMaxFile = sizeof(szFile);
ofn.lpstrFilter = TEXT("ËùÓÐÎļþ(*.*)\0*.*\0Text(*.TXT)\0*.TXT\0");
ofn.nFilterIndex = 1;//ĬÈÏÑ¡ÔñµÄ¹ýÂËÆ÷£¬Ë÷Òý´Ó1¿ªÊ¼
// Ö¸Ïò½ÓÊÕÑ¡ÔñµÄÎļþµÄÎļþÃûºÍÀ©Õ¹ÃûµÄ»º³å£¨²»´øÂ·¾¶ÐÅÏ¢£©¡£Õâ¸ö³ÉÔ±¿ÉÒÔÊÇNULL¡£
of ......
//#include "stdafx.h"
/*
ÃèÊö:´¿cÄ£ÄâÀà,´¿c±àдc++Àà,´¿cʵÏÖc++ÀàµÄ¼òµ¥·¶Àý,½á¹¹Ä£ÄâÀà,struct ±àдclass.
c±àдÀàÊÇʵÏÖ´¿c±àдcom×é¼þµÄ»ù´¡¡£
*/
#include <stdio.h>
typedef struct _Vtbl
{
void (*AddRef)(struct CObject* obj,int);//ËùÓеĺ¯ÊýµÄµÚÒ»¸ö²ÎÊýÀàËÆclassµÄÒþÄäµÄthisÖ¸Õë
void (*Release)(struct CObject* obj);
}Vtbl;//º¯ÊýÖ¸ÕëÊý×é
typedef struct CObject
{
Vtbl vtbl;//º¯ÊýÖ¸ÕëÊý×éÖ¸Ïò³ÉÔ±º¯Êý
int a;
int b;
}Cobj;//½á¹¹Ä£ÄâÀàµÄ¼òµ¥¶¨Òå
void fun1(Cobj *obj,int count)//³ÉÔ±º¯Êý
{
obj->a+=count;
printf("CObject::a=%d\n",obj->a);
}
void fun2(Cobj *obj)//³ÉÔ±º¯Êý
{
obj->a--;
printf("CObject::a=%d\n",obj->a);
}
static Vtbl vt={fun1,fun2};//ÉùÃ÷Ò»¸ö¾²Ì¬º¯ÊýÖ¸ÕëÊý×é
int main()
{
Cobj obj;//¶¨Òå¶ÔÏó
obj.vtbl=vt;
obj.a= 10 ......
//#include "stdafx.h"
/*
ÃèÊö:´¿cÄ£ÄâÀà,´¿c±àдc++Àà,´¿cʵÏÖc++ÀàµÄ¼òµ¥·¶Àý,½á¹¹Ä£ÄâÀà,struct ±àдclass.
c±àдÀàÊÇʵÏÖ´¿c±àдcom×é¼þµÄ»ù´¡¡£
*/
#include <stdio.h>
typedef struct _Vtbl
{
void (*AddRef)(struct CObject* obj,int);//ËùÓеĺ¯ÊýµÄµÚÒ»¸ö²ÎÊýÀàËÆclassµÄÒþÄäµÄthisÖ¸Õë
void (*Release)(struct CObject* obj);
}Vtbl;//º¯ÊýÖ¸ÕëÊý×é
typedef struct CObject
{
Vtbl vtbl;//º¯ÊýÖ¸ÕëÊý×éÖ¸Ïò³ÉÔ±º¯Êý
int a;
int b;
}Cobj;//½á¹¹Ä£ÄâÀàµÄ¼òµ¥¶¨Òå
void fun1(Cobj *obj,int count)//³ÉÔ±º¯Êý
{
obj->a+=count;
printf("CObject::a=%d\n",obj->a);
}
void fun2(Cobj *obj)//³ÉÔ±º¯Êý
{
obj->a--;
printf("CObject::a=%d\n",obj->a);
}
static Vtbl vt={fun1,fun2};//ÉùÃ÷Ò»¸ö¾²Ì¬º¯ÊýÖ¸ÕëÊý×é
int main()
{
Cobj obj;//¶¨Òå¶ÔÏó
obj.vtbl=vt;
obj.a= 10 ......
http://www.ddj.com/cpp/221600722
Q: HOW DO I... put timers with default actions in my C code?
A: Many times, we need to write programs that will only wait a certain specified amount of time for a user to do something. After that time, we need to assume that the user isn't going to do anything and move on to some specified default action. This Snippet works exactly like the get_ch() function in most PC C compiler libraries, except that it will only wait as long as you tell it for the user to hit a key. If no key is pressed within the time limit, the function returns with an EOF. As usual, a test harness has been added to allow for stand-alone testing. To compile the stand-alone test, simply define the TEST macro.
/*
** TIMEGETC.C - waits for a given number of seconds for the user to press
** a key. Returns the key pressed, or EOF if time expires
**
** Public domain by Bob Jarvis
** Test harness added by Bob Stout
**
** Note: This relies on the non-standard ......