Time of Update: 2018-12-03
範例代碼如下:#include <stdio.h>#include <stdarg.h>// gcc -o arg stdarg.cvoid Print(const char *fmt, ...){char text[256];// 儲存字串va_list ap;// 指向一個變數列表的指標if (fmt == NULL)return;va_start(ap, fmt);// 分析可變參數vsprintf(text, fmt, ap);// 把參數值寫入字串va_end(
Time of Update: 2018-12-03
#i nclude <stdio.h>#i nclude <dos.h>#i nclude <conio.h>#i nclude <graphics.h>#i nclude <stdlib.h> #ifdef __cplusplus #define __CPPARGS ...#else#define __CPPARGS#endif#define MINBOXSIZE 15 /* 最小方塊的尺寸 */#define BGCOLOR 7
Time of Update: 2018-12-03
求點P(x0, y0)關於直線Ax+Bx+C=0的對稱點M(x1, y1),滿足兩個條件:(1)線段PM的中點在直線上(2)PM與直線垂直/* 點關於直線的對稱點 */Point SymmetricalPoint(Point p, Line l){Point s;double tmp = l.A * l.A + l.B * l.B;s.x = (l.B *l.B*p.x - l.A*l.A*p.x - 2*l.A*l.B*p.y - 2*l.A*l.C) / tmp;s.y =
Time of Update: 2018-12-03
求平面中兩直線的交點,當兩直線不平行時,必定只有一個交點。/* 返回兩直線的交點 */Point LinesIntersection(Line m, Line n, int *flag){double d = n.A * m.B - m.A * n.B;if (d == 0){*flag = 0;return;}Point i;i.x = (n.B * m.C - m.B * n.C) / d;i.y = (m.A * n.C - n.A * m.C) / d;*flag = 1;return
Time of Update: 2018-12-03
1. Windows環境下 首先,如果配置了boost庫,可以通過boost庫的filesysterm中的path類來擷取。如果沒有配置boost庫,可以通過調用系統命令sysytem("dir > test.txt")將某個檔案夾下的所有檔案名稱寫到test.txt文本中,然後再從文字檔中中讀取即可。假設我要擷取D盤Test檔案夾下的所有檔案名稱,則可以通過如下代碼實現 system("dir D:\\Test /B > D:\\fname.txt");ifstream
Time of Update: 2018-12-03
共用記憶體的函數有以下幾個:(1)int shmget(key_t key, int size, int shmflg),開闢或使用一塊共用記憶體。(2)void *shmat(int shmid, const void *shmaddr, int shmflg), 將參數shmid所指向的共用記憶體與當前進程串連。當使用某共用記憶體時,需要先使用shmat,達成串連。(3)int shmdt(const void
Time of Update: 2018-12-03
原始碼工程檔案(vs2005)http://d.download.csdn.net/down/1018461/cctt_1過去在網上找了段代碼,發現寫的代碼要改些地方,而且也想順便練習下自己的c++編碼。首先我要建立一個真正的樹形結構。於是使用了自己過去的GeneralTree.h(當然這裡還是改動些GeneralTree的代碼例如增添了些函數,另外把有些私人函數變成了公有函數)。訓練文字格式設定如下:並命名為decision2.txt 並發在自己的工程目錄下。當然你也可以改改相關原始碼 概念
Time of Update: 2018-12-03
(1)C語言的創立早期的UNIX是用組合語言編寫的,但很笨拙,系統難以調試,理解困難。Thompson想利用進階語言的一些優點,幾經嘗試後建立了B語言。B語言是對BCPL的簡化,常駐記憶體。由於記憶體的限制,記憶體中只能放置解譯器,而不是編譯器,效率低下,同時,B語言無法表達不同的資料類型。Dennis Retchie利用PDP-11的強大效能,創立了能夠同時解決多種資料類型和效率的“New B“語言。這個名字很快就變成了"C",這就是C語言。BCPL:基本組合程式設計語言(Basic
Time of Update: 2018-12-03
三角形的外心,就是其外接圓的圓心。三角形三邊的垂直平分線相交於一點,該點即為外心。/* 三角形的外心 */Point Excenter(Triangle t){Line l1 = PerpendicularBisector(t.A, t.B);Line l2 = PerpendicularBisector(t.A, t.C);int flag;return LinesIntersection(l1, l2, &flag);// flag返回0,兩直線平行}/* 三角形的外接圓
Time of Update: 2018-12-03
這裡犯得錯誤是使用c++的先行編譯頭去編譯c語言。如果解決C1853這個錯誤呢?其實就是對每一個.c檔案加上#include "stdafx.h" 然後把.c檔案改為.cpp檔案然後在把工程屬性中的configuration properties中的c/c++中的Precompiled Header中的Create / use Precompile Header 中的User precompile Header 改為Create precompile Header How to compile
Time of Update: 2018-12-03
首先static變數只有一次初始化,不管在類中還是在函數中..有這樣一個函數:void Foo(){static int a=3; // initializestd::cout << a;a++;}這裡的static int a=3隻執行了一次。在main中調用Foo()兩次,結果為34.將上面的函數改為void Foo(){static int a; a=3; // not initializestd::cout << a;a++;}
Time of Update: 2018-12-03
class Base{ public: void NoVirtualFun() { printf("Base::NoVirtualFun()!/n"); } virtual void VirtualFun() { printf("Base::VirtualFun()!/n"); } }; class ClassA{ private: Base* m_pBase; public: ClassA() :
Time of Update: 2018-12-03
截取案頭映像,比較簡單,只需要簡單的調用Graphics的CopyFromScreen方法即可以實現; 關於將映像繪製到視窗上很容易實現,但是卻很少看到有文章介紹從視窗上截取映像的。下面主要介紹一下關於視窗映像截取的方法。 要截取視窗的映像,需要用到系統提供的BitBlt函數,這個函數的作用就是從源裝置的上下文中拷貝一張Bitmap映像至目標裝置。具體參數介紹請參見MSDN文檔 下面是C#對該函數的引入操作: [DllImport("gdi32.dll",
Time of Update: 2018-12-03
Android 不支援 C/C++ 開發? 虛擬機器以上的程式是 JAVA開發,但是底層可以用 C/C++ 跑一些 後台 程式啊, 大不了用 soket 通訊嘛. 計劃在 rootfs 裡存放一套自己的 busybox, 自己的 Bash, 自己的 command 等,command 完全可以做成靜態, Android 裡的 shell 實在太難用了。用 Android.mk 的方式去編譯 C 程式也實在是太麻煩, 打算整理出一套 其他的編譯 C 程式的方法.NDK? NDK 只是
Time of Update: 2018-12-03
常見人問起,學C/C++,在Linux下用什麼工具好。有推薦vi/vim和emacs的,個人認為,那太難為像我們這樣的初學者了。印象中,KDE中的KDeveloper非常的不錯,簡直就跟VC是一樣的強大和方便。幾年沒用過了,現在不知怎麼樣了。
Time of Update: 2018-12-03
Java中這個三個保留字用來修飾類的資料成員和成員函數,以及類本身,而C++中修飾類的資料成員和成員函數,以及類的繼承,但不用來修飾類本身。◆ C++中應用: 1.Public, Private, and Protected 的成員如果使用 class 關鍵字來定義類,那麼定義在第一個訪問標號前的任何成員都隱式指定為 private;如果使用 struct 關鍵字,那麼這些成員都是 public。使用 class 還是 struct
Time of Update: 2018-12-03
去Intel面試的同學說面試官考了這個問題,一時真不知道,只好問度娘了。看來C的基礎還是很薄弱了,枉我還敢寫精通C語言。。。轉自:http://qin8.blog.163.com/blog/static/189699090200992034421125/C++中的const正常情況下是看成編譯期的常量,編譯器並不為const分配空間,只是在編譯的時候將期值儲存在名字表中,並在適當的時候摺合在代碼中.所以,以下代碼:#include <iostream>using namespace
Time of Update: 2018-12-03
成員函數的重載(overload)、覆蓋(override)與隱藏很容易混淆,C++程式員必須要搞清楚概念,否則錯誤將防不勝防。1 重載與覆蓋成員函數被重載的特徵:(1)相同的範圍(在同一個類中);(2)函數名字相同;(3)參數不同;(4)virtual關鍵字可有可無。覆蓋是指衍生類別函數覆蓋基類函數,特徵是:(1)不同的範圍(分別位於衍生類別與基類);(2)函數名字相同;(3)參數相同;(4)基類函數必須有 virtual關鍵字。樣本 1中,函數 Base::f(int)與
Time of Update: 2018-12-03
4.2 多角度保證測試效果 對於代碼品質要求很高的項目來說,僅有白盒覆蓋是遠遠不夠的。白盒覆蓋不能發現代碼缺失,白盒覆蓋基於現有代碼,如果代碼不存在,當然不能發現。為了檢測代碼缺失,需要人工對測試資料進行檢查。白盒覆蓋也不能發現用例未反映功能。如果設計用例時,測試員不瞭解代碼的功能,通過閱讀代碼來設計用例,這叫跟著代碼走,這樣測試的話,再高的覆蓋率也沒有意義。這也從另一個角度說明了自動用例的局限性,完全由工具自動產生的用例,效果顯然還比不上跟著代碼走。
Time of Update: 2018-12-03