Time of Update: 2018-12-07
void clearerr(FILE * stream); 相關函數 feof 函數說明 clearerr()清除參數stream指定的檔案流所使用的錯誤旗標。int fclose(FILE * stream); 相關函數 close,fflush,fopen,setbuf 函數說明 fclose()用來關閉先前fopen()開啟的檔案。此動作會讓緩衝區內的資料寫入檔案中,並釋放系統所提供的檔案資源。 傳回值 若關檔案動作成功則返回0,有錯誤發生時則返回EOF並把錯誤碼存到errno。
Time of Update: 2018-12-07
C++強大的功能來源於其豐富的類庫及庫函數資源。C++標準庫的內容總共在50個標準標頭檔中定義。在C++開發中,要儘可能地利用標準庫完成。這樣做的直接好處包括:(1)成本:已經作為標準提供,何苦再花費時間、人力重新開發呢;(2)品質:標準庫的都是經過嚴格測試的,正確性有保證;(3)效率:關於人的效率已經體現在成本中了,關於代碼的執行效率要相信實現標準庫的大牛們的水平;(4)良好的編程風格:採用行業中普遍的做法進行開發。 在C++程式設計課程中,尤其是作為第一門程式設計課程,我們注重了文法、語言
Time of Update: 2018-12-07
對於一個c/c++程式員來說,記憶體流失是一個常見的也是令人頭疼的問題。已經有許多技術被研究出來以應對這個問題,比如Smart Pointer,Garbage Collection等。Smart Pointer技術比較成熟,STL中已經包含支援Smart Pointer的class,但是它的使用似乎並不廣泛,而且它也不能解決所有的問題;Garbage
Time of Update: 2018-12-07
Console.WriteLine("投擲100次的實驗:"); //提示資訊 Random randomNum = new Random(); //建立一個隨機數 int num1 = 0; //定義出現1的次數 int num2 = 0; //定義出現2的次數 int num3 = 0; //定義出現3的次數 int num4 = 0; //定義出現4的次數
Time of Update: 2018-12-07
某些特定的函數叫方法!這裡要注意函數的作用就是當使用很多重複出現的代碼的時候,可能需要修改部門代碼,導致錯誤,所以引用函數。對不同的資料執行相同的操作-函數。class Program {static void Speaking() //靜態無傳回值無參數的函數,static具有全域變數 { Console.WriteLine("I can Speaking!"); }static void Main(string[] args)
Time of Update: 2018-12-07
static 有兩種用法:面向過程程式設計中的static 和物件導向程式設計中的static。前者應用於普通變數和函數,不涉及類;後者主要說明 static 在類中的作用。 一、面向過程設計中的static 全域變數、局部變數、靜態全域變數、靜態局部變數的區別 C++變數根據定義的位置的不同的生命週期,具有不同的範圍,範圍可分為 6種:全域範圍,局部範圍,語句範圍,類範圍,命名空間範圍和檔案範圍。 從範圍看:
Time of Update: 2018-12-07
我們知道,MFC中可以調用宏TRACE等十分方便的輸出調試資訊到Visual Studio輸出視窗,但C++中沒人類似的函數,最近我在開發一個小程式時跟蹤了一下MFC的TRACE宏,發現它映像了atltrace.h中的ATLTRACE宏,因些,我們也想在C++中使用TRace可以用如下方式:#include <atltrace.h>#define TRACE ATLTRACETRACE("");在C++中可以直接使用下面的函數OutputDebugString Function
Time of Update: 2018-12-07
Package vs. Namespace我們知道,重用性(reusebility)是軟體工程中一個非常重要的目標。重用,不僅僅指自己所寫的軟體(代碼、組件等等)可以被重複利用;更廣義的重用是指不同的人,不同的團隊,不同的公司之間可以互相利用別人的成果。另外,對於大型軟體,往往是由多個團隊共同開發的,這些團隊有可能分佈於不同的城市、地區、甚至國家。由於這些原因,名字管理成為一個非常重要的因素。由於C語言本身不提供名字管理的機制(C語言的static命名解決的是可見度問題,這些名字不會輸出給外部,
Time of Update: 2018-12-07
1.C++裡有區別true是bool型的;TRUE是int型的,VC裡這個是ms自己定義的;C++規定不允許只通過傳回型別不同區別兩個函數================================================你寫錯了吧……原函式宣告是virtual BOOL InitInstance(
Time of Update: 2018-12-07
liblogger待選為 glog、log4cplus、log4cpp、log4cxx目前準備使用glog,使用方便,效能也不錯,待進一步實驗,如果有不能滿足的功能就轉用 log4cplus,功能很全面,不過稍複雜些。其它兩個都是三年前就沒更新,沒好感,暫不準備使用。1.log4cplus最新版本:1.1.0 2012-03-11:http://sourceforge.net/projects/log4cplus/files/log4cplus-stable/1.1.0功能全面,使用稍複雜。
Time of Update: 2018-12-07
1.首先要陸避免標頭檔的相互引用: 解決方案: 有兩個類A和B, 在各自的標頭檔中聲明對方,而不能用包含, 即要用class 而不能用 include2. 兩個類的初始化順序: 一定要明確兩個類的初始化順序, 如果在類A中初始化B, 就不要再在B中初始化A; 即可以在A的建構函式中m_b(new B());3.在各自的標頭檔中應只聲明對方的指標對像,而不要試圖在標頭檔中去執行個體化;否則你會發現 這樣的錯誤: 錯誤 1 error C2146: 語法錯誤 : 缺少“;”(
Time of Update: 2018-12-07
要是換在C#或Java,各種資料類型隨便轉換,有各種函數隨便挑。但是在C++中還真沒有那麼簡單。我本來是希望能夠將123,這樣的int類型轉換的“123”這樣的string,或者C-style也可以。我仔細查了一下C++string可用的方法:當然有瞭解了一下C++ 中String是什麼!官方解釋中,string是一種特殊的容器,用於儲存字元集。它是basic_string模板類的char實現,可知另外一個就是wchar咯typedef basic_string<char>
Time of Update: 2018-12-07
1、int WriteToLog(char* str){FILE* log;log = fopen("D:\\testlog.txt", "a+");if (log == NULL){//OutputDebugString("Log file open failed.");return -1;}fprintf(log, "%s\n", str);fclose(log);return 0;} 2、帶時間的實現void WriteLog(char * szLog) {
Time of Update: 2018-12-07
一、C++編譯模式通常,在一個C++程式中,只包含兩類檔案——.cpp檔案和.h檔案。其中,.cpp檔案被稱作C++源檔案,裡面放的都是C++的原始碼;而.h檔案則被稱作C++標頭檔,裡面放的也是C++的原始碼。C+ +語言支援“分別編譯”(separate compilation)。也就是說,一個程式所有的內容,可以分成不同的部分分別放在不同的.cpp檔案裡。.cpp檔案裡的東西都是相對獨立的,在編
Time of Update: 2018-12-07
我們知道在.net裡class是參考型別,在函數參數表中的對象傳遞的都是對象的引用,所以在函數體內對其對象參數的修改會影響函數外對應的對象本身,例如下面的程式: class Program { static void Main(string[] args) { TestClass objA = new TestClass(); objA.Name = "I am ObjA";
Time of Update: 2018-12-07
一、已最小化的視窗點擊“X”或“Alt+F4”時,已最小化的視窗,如:protected override void WndProc(ref Message m){const int WM_SYSCOMMAND = 0×0112;const int SC_CLOSE = 0xF060;if (m.Msg == WM_SYSCOMMAND && (int) m.WParam == SC_CLOSE){// User clicked close
Time of Update: 2018-12-07
1.設定表單內容showinTask=false 2.加notifyicon控制項notifyIcon1,為控制項notifyIcon1的屬性Icon添加一個icon表徵圖。 3.添加表單最小化事件(首先需要添加事件引用): // this.SizeChanged += new System.EventHandler(this.Form1_SizeChanged); //上面一行是主表單InitializeComponent()方法中需要添加的引用 private void
Time of Update: 2018-12-07
Donet基礎類庫的System.Threading命名空間提供了大量的類和介面支援多線程。這個命名空間有很多的類,下面是Thread的資料。
Time of Update: 2018-12-07
今天開始這個系列之前,心裡有些恐慌,畢竟園子裡的高手關於設計模式的經典文章很多很多,特別是大俠李會軍、呂震宇 老師的文章更是堪稱經典。他們的文筆如行雲流水,例子活潑生動,講解深入淺出。好在他們都是用C#描述,也沒有提供必要的源碼下載,所以我這裡用C++實現。首先我想聲明的是我的文筆絕對不如他們的好,例子也沒有他們的形象,不過我打算把C++的代碼實現和類圖提供給大家,就算作為一種補充吧。
Time of Update: 2018-12-07
1.System.Globalization.NumberFormatInfo provider = new System.Globalization.NumberFormatInfo();provider.NumberDecimalDigits =intDecLength; //要設定的小數位元double strCashAmt=Convert.ToDouble(this.txtCashAmt.Text); //先把控制項內的值轉成doublethis.txtCashAmt.Text =