Time of Update: 2018-12-05
一、流式檔案操作 這種方式的檔案操作有一個重要的結構FILE,FILE在stdio.h中定義如下: typedef struct { int level; /* fill/empty level of buffer */ unsigned flags; /* File status flags */ char fd; /* File descriptor */ unsigned char hold; /* Ungetc char if no buffer */ int bsize; /
Time of Update: 2018-12-05
class Program { static void Main(string[] args) { string[] arr = { "趙(ZHAO)", "錢(QIAN)", "孫(SUN)", "李(LI)", "周(ZHOU)", "吳(WU)", "鄭(ZHENG)", "王(WANG)"}; //發音 LCID:0x00000804 CultureInfo PronoCi = new
Time of Update: 2018-12-05
pair<T1,T2>P1;pair<T1,T2>p1(v1,v2);//v1為T1類型,v2為T2類型make_pair(v1,v2);//返回一個pair對象p.first;p.second;關聯容器不能通過容器大小定義,不能用resize。map<k,v>m(m2);map<k,v>m;map<k,v>m(b,e); //b,e為map迭代器。鍵必須支援<。map<k,v>::value_type為pair類型
Time of Update: 2018-12-05
URL 重寫是截取傳入 Web 請求並自動將請求重新導向到其他 URL 的過程。 比如瀏覽器發來請求hostname/101.aspx ,伺服器自動將這個請求中定向為http://hostname/list.aspx?id=101。url重寫的優點在於: 縮短url,隱藏實際路徑提高安全性 易於使用者記憶和鍵入。 易於被搜尋引擎收錄二 實現url重寫的基本方法
Time of Update: 2018-12-05
繼承後的可見度Protected的使命:因為基類的私人成員是不可被繼承的,從而不能在衍生類別中直接存取。那麼如果私人資料想要被衍生類別繼承呢?我們可以去除private的可見度限制,改為public,以此完成上述目標。但是這樣一來,該資料就能被程式中的所有其他函數訪問,就喪失了資料隱藏的優勢。Protected的出現解決了這一難題。Protected可見度修飾符來進行限定目的的繼承任務。聲明為protected的成員可有類內的成員函數訪問,也可由繼承類訪問。但是它不能由基類和繼承類之外的函數訪問
Time of Update: 2018-12-05
1.把C 當成一門新的語言學習(和C沒啥關係!真的。); 2.看《Thinking In C 》,不要看《C 變成死相》(C 編程思想,翻譯的非常差); 3.看《The C Programming Language》(這本東西有影印板的)和《Inside The C Object Model》(http://www.csdn.net/exper......side-cpp-object-model.htm這本 東西候sir翻譯了),不要因為他們很難而我們自己是初學者所以就不看; 4.不要被VC、
Time of Update: 2018-12-05
出處:部落格 八月初十先耐心看看代碼#include <stdio.h> typedef /*auto*/ char * pchar; // 指標定義;/*注釋的地方,主要是為說明,typedef也是一個儲存類型關鍵字(register, auto, static一樣),如果開啟注釋,會報“錯誤:聲明指定了多個儲存類” */typedef /*static*/ int iarray[2]; // int數組定義typedef char
Time of Update: 2018-12-05
(一)菜單和加速鍵 #include<windows.h>#include"Resource.h"TCHARszBuffer[128];TCHARszClassName[] = TEXT("Menu Example");TCHARszCaptionMain[] = TEXT("Menu");TCHAR szCaption[] = TEXT("菜單選擇");TCHARszMenuHelp[] = TEXT("說明主題(&H)");TCHARszMenuAbout[] =
Time of Update: 2018-12-05
本文主要解決以下幾個問題1 為什麼要使用庫?2 庫的分類3 建立自己的庫或許大家對自己初學linux時的情形仍記憶尤新吧。如果沒有一個能較好的解決依賴關係的包管理器,在linux下安裝軟體將是一件及其痛苦的工作。你裝a包時,可能會提示你要先裝b包,當你費盡心力找到b包時,可能又會提示你要先安裝c包。我就曾被這樣的事搞的焦頭爛額,至今一提起rpm仍心有餘悸,頭皮發麻。說是一朝被蛇咬,十年怕井繩怕也不為過。linux下之所以有這許多的依賴關係,其中一個開發原則真是功不可沒。這個原則就是:盡量不重複做
Time of Update: 2018-12-05
CSV逗點分隔值檔案(Comma Separated value),是一種用來儲存資料的純文字檔案格式,通常用於試算表或資料庫軟體。 0 開頭是不留空,以行為單位。 1 可含或不含列名,含列名則居檔案第一行。 2 一行資料不垮行,無空行。 3 以半形符號,作分隔字元,列為空白也要表達其存在。 4 列內容如存在半形逗號(即,)則用半形引號(即"")將該欄位值包含起來。 5 列內容如存在半形引號(即")則應替換成半形雙引號("")轉義。 6
Time of Update: 2018-12-05
namespace std{template<class T>void swap(T&a,T&b){T temp(a);a=b;b=temp;}}//T支援copying函數即可。//pimpl手法:以指標指向一個對象,內含真正資料。//在namespace std中只能全特化,不能偏特化,//如namspace std{template<> void swap<A>(A&a,A&b){.....}} 介面:使用者和代碼的互動。
Time of Update: 2018-12-05
當你有下面這樣一個需求的時候,擴充方法就會起到作用:在項目中,類A需要添加功能,我們想到的就是在類A中添加公用方法,這個顯而易見肯定可以,但是由於某種原因,你不能修改類A本身的代碼,但是確實又需要增加功能到類A中去,怎麼辦? 這個時候擴充方法(Extension Methods)就會協助你完成上述功能了。現在舉例如下:類A:簡單起見,類A中只有一個自己的方法。using System;namespace TestApp.Method{ public class Test {
Time of Update: 2018-12-05
在C++中,可以通過@eax查看函數的傳回值。在C#中,根據MSDN上所言,也可以。VS2012支援的偽變數有:偽變數功能$handles顯示應用程式中分配的控制代碼數。$vframe顯示當前堆疊框架的地址。$tid顯示當前線程的線程 ID。$env在字串瀏覽器顯示該環境塊。$cmdline顯示啟動程式的命令列字串。$pid顯示進程ID.$寄存器名 或@寄存器名 顯示寄存器 寄存器名 的內容。通常,只需輸入寄存器名便可以顯示寄存器的內容。 僅在寄存器名重載變數名時才需要使用此文法。
Time of Update: 2018-12-05
"C語言中的數組是按行排列的。"——譚老師在書裡這樣說。那麼,什麼是按行排列呢?有兩個地方的規則值得思考:1,多維陣列定義和初始化的時候。多維陣列定義同時初始化的時候,可以不指定第一維的數目,比如二維數組:int a[][5] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};這樣實際上定義了一個3行5列的二維數組。第1維的長度可以不寫,但第2維的長度是必寫。反過來,卻不能唯寫第1維的長度,省略第二維不寫,像這樣是不行的:int a[3][] = {1,2,3,4,
Time of Update: 2018-12-05
文章目錄 虛函數表一般繼承(無虛函數覆蓋)一般繼承(有虛函數覆蓋)多重繼承(無虛函數覆蓋)多重繼承(有虛函數覆蓋)安全性 虛函數的定義要遵循以下重要規則: 1.如果虛函數在基類與衍生類別中出現,僅僅是名字相同,而形式參數不同,或者是傳回型別不同,那麼即使加上了virtual關鍵字,也是不會進行滯後聯編的。 2.只有類的成員函數才能說明為虛函數,因為虛函數僅適合用與有繼承關係的類對象,所以普通函數不能說明為虛函數。
Time of Update: 2018-12-05
文章目錄 1、類2、單例類3、實用類
Time of Update: 2018-12-05
1 c++的類最好定義在單獨的標頭檔中,標頭檔名稱為類名。 如要定義一個名為IntArray的類, 最好在標頭檔IntArray.h中定義class IntArray{};2 類中的成員函數必須定義在單獨的.cpp檔案中,檔案名稱為類名。 如類IntArray中定義了5個成員函數,那麼這五個成員函數的具體實現必須定義在IntArray.cpp檔案中。 以上只是在編寫工程檔案時需要注意的一些地方。
Time of Update: 2018-12-05
string ipLimit = "192.168.152.x,192.168.153.x,192.168.154.x,192.168.155.x,192.168.156.x,192.168.157.x,192.168.158.x,192.168.159.x,192.168.x.x"; string[] arrSeperators = { "," }; string[] ipList = ipLimit.Split(arrSeperators,
Time of Update: 2018-12-05
What is software architecture? The answer is multitiered. At the highest level, there are the architecture patterns that define the overall shape and structure of software applications. Down a level is the architecture that is specifically related
Time of Update: 2018-12-05
[DllImport("user32.dll", EntryPoint = "ShowWindow", SetLastError = true)] static extern bool ShowWindow(IntPtr hWnd, uint nCmdShow); [DllImport("user32.dll", EntryPoint = "FindWindow", SetLastError = true)] public static