Time of Update: 2017-01-19
問題:break在for迴圈、while迴圈等迴圈流程式控制制中起的作用是停止執行break後面的語句,跳出本次迴圈,並跳出該迴圈控制體;在switch條件選擇中,沒有了迴圈控制,break又起什麼作用呢?解決辦法:1.
Time of Update: 2017-01-19
問題:從c++檔案中將std:string轉換為char*後,返回包含IP地址的char*,需要將該字串char*中的IP地址提取出來;解決辦法:1. 解決思路:IP地址最長為12字元+3句點=15字元,一般性表示為192.168.111.111;可以從第一個字元開始解析,當不是'.'時,將所有字元儲存下來,然後把所有儲存下來的字元轉換為16進位就可以了;2. 程式如下:複製代碼 代碼如下:typedef struct { char addr_ipv4[4];
Time of Update: 2017-01-19
我們先來看個例子char * strcpy(char * strDest,const char * strSrc) { if ((NULL==strDest) || (NULL==strSrc)) throw "Invalid argument(s)"; char * strDestCopy = strDest; while ((*strDestCopy++ = *strSrc++) != '\0'); return strDest;}突然想到之前做過的一個試題題目:
Time of Update: 2017-01-19
本文執行個體講述了C++刪除指定檔案夾下N天及之前記錄檔的方法。分享給大家供大家參考。具體如下:// 功能:刪除nDays天及之前的記錄檔// @nDays: 0-不刪除日誌,3-刪除3天及之前的日誌(保留今天、昨天、前天的日誌) ...void CRecordLog::ClearLog(UINT nDays) // 刪除N天前的日誌{ if (nDays > 0) { WIN32_FIND_DATA FindFileData; CString sAllFile =
Time of Update: 2017-01-19
二進位檔案不是以ASCII代碼存放資料的,它將記憶體中資料存放區形式不加轉換地傳送到磁碟檔案,因此它又稱為記憶體資料的映像檔案。因為檔案中的資訊不是字元資料,而是位元組中的二進位形式的資訊,因此它又稱為位元組檔案。對二進位檔案的操作也需要先開啟檔案,用完後要關閉檔案。在開啟時要用ios::binary指定為以二進位形式傳送和儲存。二進位檔案除了可以作為輸入檔案或輸出檔案外,還可以是既能輸入又能輸出的檔案。這是和ASCII檔案不同的地方。用成員函數read和write讀寫二進位檔案對二進位檔案的讀
Time of Update: 2017-01-19
C++ get()函數讀入一個字元get()函數是cin輸入資料流對象的成員函數,它有3種形式:無參數的,有一個參數的,有3個參數的。1) 不帶參數的get函數其調用形式為 cin.get()用來從指定的輸入資料流中提取一個字元(包括空白字元),函數的傳回值就是讀入的字元。 若遇到輸入資料流中的檔案結束符,則函數值返迴文件結束標誌EOF(End Of File),一般以-1代表EOF,用-1而不用0或正值,是考慮到不與字元的ASCII代碼混淆,但不同的C
Time of Update: 2017-01-19
程式中的錯誤分為編譯時間的錯誤和運行時的錯誤。編譯時間的錯誤主要是語法錯誤,比如:句尾沒有加分號,括弧不匹配,關鍵字錯誤等,這類錯誤比較容易修改,因為編譯系統會指出錯誤在第幾行,什麼錯誤。而運行時的錯誤則不容易修改,因為其中的錯誤是不可預料的,或者可以預料但無法避免的,比如記憶體空間不夠,或者在調用函數時,出現數組越界等錯誤。如果對於這些錯誤沒有採取有效防範措施,那麼往往會得不到正確的運行結果,程式不正常終止或嚴重的會出現死機現象。我們把程式運行時的錯誤統稱為異常,對異常處理稱為異常處理。C++
Time of Update: 2017-01-19
在C++中,函數的形參可以是指向函數的指標,函數也可以返回函數的指標。例如:int (*ff(int)) (int *,int);表示:ff(int)是一個函數,帶有一個int型的形參,該函數返回int (*) (int *,int),它是一個指向函數的指標,所指向的函數返回int型並帶有兩個分別是Int*和int型的形參。使用typedef可使得定義更加易懂:typedef int (*PF) (int *,int);PF ff(int);下面給出一個例子:複製代碼
Time of Update: 2017-01-19
C++允許重載的運算子和不允許重載的運算子C++中絕大部分的運算子允許重載,具體規定見表不能重載的運算子只有5個:. (成員訪問運算子).* (成員指標訪問運算子):: (域運算子)sizeof (長度運算子)?: (條件運算子)前兩個運算子不能重載是為了保證訪問成員的功能不能被改變,域運算子和sizeof
Time of Update: 2017-01-19
一、字串字面值字串字面值是一串常量字元,字串字面值常量用雙引號括起來的零個或多個字元表示,為相容C語言,C++中所有的字串字面值都由編譯器自動在末尾添加一個Null 字元。字串沒有變數名字,自身表示自身複製代碼 代碼如下:"Hello World!" //simple string literal"" //empty string literal"\nCC\toptions\tfile.[cC]\n" //string literal using newlines and tabs字元字面值:
Time of Update: 2017-01-19
#include <string>#include <iostream>using namespace std; void main(){複製代碼 代碼如下: ////find函數傳回型別 size_typestring s("1a2b3c4d5e6f7g8h9i1a2b3c4d5e6f7g8ha9i");string flag;string::size_type position;//find 函數 返回jk 在s 中的下標位置 position =
Time of Update: 2017-01-19
C++結構體類型的定義和初始化有時需要將不同類型的資料群組合成一個有機的整體,以供使用者方便地使用。這些組合在一個整體中的資料是互相聯絡的。例如,一個學生的學號、姓名、性別、年齡、成績、家庭地址等項,都是這個學生的屬性,見圖可以看到學號(num)、姓名(name)、性別(sex)、年齡(age)、成績(score )、地址(addr)是與姓名為“Li
Time of Update: 2017-01-19
C語言getcwd()函數:取得當前的工作目錄標頭檔:#include <unistd.h>定義函數:char * getcwd(char * buf, size_t size);函數說明:getcwd()會將當前的工作目錄絕對路徑複製到參數buf 所指的記憶體空間,參數size 為buf 的空間大小。註:1、在調用此函數時,buf 所指的記憶體空間要足夠大。若工作目錄絕對路徑的字串長度超過參數size 大小,則返回NULL,errno 的值則為ERANGE。2、倘若參數buf
Time of Update: 2017-01-19
C語言chmod()函數:修改檔案許可權標頭檔:#include <sys/types.h> #include <sys/stat.h>定義函數:int chmod(const char * path, mode_t mode);函數說明:chmod()會依參數mode 許可權來更改參數path 指定檔案的許可權。參數 mode 有下列數種組合:1、S_ISUID 04000 檔案的 (set user-id on execution)位2、S_ISGID 02000
Time of Update: 2017-01-19
C語言system()函數:執行shell命令標頭檔: #include <stdlib.h>定義函數:int system(const char * string);函數說明:system()會調用fork()產生子進程, 由子進程來調用/bin/sh-c string 來執行參數string 字串所代表的命令, 此命令執行完後隨即返回原調用的進程. 在調用system()期間SIGCHLD 訊號會被暫時擱置,SIGINT 和SIGQUIT 訊號則會被忽略.傳回值:1、如果
Time of Update: 2017-01-19
isatty()函數標頭檔:#include <unistd.h>定義函數:int isatty(int desc);函數說明:如果參數 desc 所代表的檔案描述詞為一終端機則返回1, 否則返回0.傳回值:如果檔案為終端機則返回1, 否則返回0.C語言ttyname()函數:返回一終端機名稱標頭檔:#include <unistd.h>定義函數:char * ttyname(int desc);函數說明:如果參數desc 所代表的檔案描述詞為一終端機,
Time of Update: 2017-01-19
C語言ttyname()函數:返回一終端機名稱標頭檔:#include <unistd.h>定義函數:char * ttyname(int desc);函數說明:如果參數desc 所代表的檔案描述詞為一終端機, 則會將此終端機名稱由一字串指標返回, 否則返回NULL.傳回值:如果成功則返回指向終端機名稱的字串指標, 有錯誤情況發生時則返回NULL.範例#include <unistd.h>#include <sys/types.h>#include
Time of Update: 2017-01-19
C語言putenv()函數:改變或增加環境變數標頭檔:#include4<stdlib.h>定義函數:int putenv(const char * string);函數說明:putenv()用來改變或增加環境變數的內容. 參數string 的格式為name=value, 如果該環境變數原先存在, 則變數內容會依參數string 改變, 否則此參數內容會成為新的環境變數.傳回值:執行成功則返回0, 有錯誤發生則返回-1.錯誤碼:ENOMEM 記憶體不足,
Time of Update: 2017-01-19
C語言accept()函數:接受socket連線標頭檔:#include <sys/types.h> #include <sys/socket.h>定義函數:int accept(int s, struct sockaddr * addr, int * addrlen);函數說明:accept()用來接受參數s 的socket 連線. 參數s 的socket 必需先經bind()、listen()函數處理過, 當有連線進來時accept()會返回一個新的socket
Time of Update: 2017-01-19
C語言sigprocmask()函數:查詢或設定訊號遮罩標頭檔:#include <signal.h>定義函數:int sigprocmask(int how, const sigset_t *set, sigset_t * oldset);函數說明:sigprocmask()可以用來改變目前的訊號遮罩, 其操作依參數how 來決定:1、SIG_BLOCK 新的訊號遮罩由目前的訊號遮罩和參數set 指定的訊號遮罩作聯集2、SIG_UNBLOCK 將目前的訊號遮罩刪除掉參數set