Time of Update: 2018-12-03
socketsocket()我們使用系統調用socket()來獲得檔案描述符:#include<sys/types.h>#include<sys/socket.h>int socket(int domain,int type,int protocol);第一個參數domain設定為“AF_INET”。第二個參數是套介面的類型:SOCK_STREAM或SOCK_DGRAM。第三個參數設定為0。系統調用socket()只返回一個套介面描述符,如果出錯,則返回-1。
Time of Update: 2018-12-03
struct A{int func(){return 0;}int val;};struct B{int func(){return 0;}int val;};struct C{static int A::*pval_A, B::*pval_B;//成員變數的指標(位移量)static int (A::*pfunc_A)(), (B::*pfunc_B)();};int A::* C::pval_A= &A::val;int B::* C::pval_B=
Time of Update: 2018-12-03
要實現的效果://main.cpp :: main()map<char, vector<bool> > temp= make_test_val();cout<< toString(temp);用模板實現toString(任意類型) 然後就方便了以下是代碼://tools.h#include<map>#include<vector>using namespace std;//---toString---//builderclass
Time of Update: 2018-12-03
P60: cpp的文法,太複雜了,不止cpp. 很多語言也是這樣甚至更甚(對比是lisp-1). P76: const 的設計引發的問題不少(比如在模板 的時候 const會讓代碼指數級膨脹(雖然remove_refance能修補一些)). 如果在const引入之前引入了多重繼承的話 也許有更好的解決方案. P83: 構造/析構 函數的命名. 用類型名做建構函式名字, 在某些(比如模板)產生代碼的時候 會產生一些困惑 (pf= T::T /* ::後面應該是symbol但是是type*/) .
Time of Update: 2018-12-03
(1)Trim方法string tt=" aaa "; tt=tt.Trim() 去字串首尾空格的函數tt=tt.TrimEnd() 去掉字串尾空格tt=tt.TrimStart() 去掉字串首空格(2)通過ASCII碼值去掉字元中的空格由於空格的ASCII碼值是32,因此,在去掉字串中所有的空格時,只需逐一查看字串中的所有字元,並判斷它們的ASCII碼值是不是32即可。去掉字串中所有空格的關鍵代碼如下:CharEnumerator CEnumerator =
Time of Update: 2018-12-03
前天偶然將一段在 Win 6.0 的代碼,放在 PC 上運行。可結果出人意科,Debug 時“居然”彈框提示錯誤。所以將代碼拿出來,對比 MSDN 來看看。程式碼片段1:ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.en/dv_vccrt/html/4ae51618-a4e6-4172-b324-b99d86d1bdca.htmint * i = new int(6);printf("%d\n", *i);delete
Time of Update: 2018-12-03
函數名: strcmp 功 能: 串比較 用 法: int strcmp(char *str1, char *str2); 看Asic碼,str1>str2,傳回值 > 0;兩串相等,返回0 程式例: #include <string.h> #include <stdio.h> int main(void) { char *buf1 = "aaa", *buf2 = "bbb", *buf3 = "ccc"; int ptr; ptr =
Time of Update: 2018-12-03
C語言規定:變數必須是以英文字母或底線開頭的,由字母、數字和底線組成的字元 序列那C變數為什麼不能以數字打頭呢?你有想過這個問題嗎?嘻嘻,這裡我給你總結一下。(摘自各個網站)1、通俗的說法:假如變數名允許以數字開頭的話,那麼文法分析器在解析一個全部為數位字串的時候,就無法判斷它是一個數字常量還是一個變數名了;因為這是為了製作編譯器的方便,如果你學過編譯原理的話,你會知道如果開始第一個字元可以是數字,那會是相當痛苦的,這會增加此法分析的難度,所以C語言變數拒絕使用數字開頭這種方式。 這個沒有原因,
Time of Update: 2018-12-03
命令格式:ls directory_name (directory_name 就是檔案夾目錄)如使用有問題, 歡迎提問.代碼如下int main(int argc, char *argv[]){DIR *dp;struct dirent *dirp;// check the enterif (argc != 2){printf("Error: enter false!!!!\nRetry:");return 1;}// check the directorif ( (dp = opendir(
Time of Update: 2018-12-03
C++ 的詞法分析詞法分析是指原檔案被分解為詞法符號的過程,通常是整個編譯過程的第一步。雖然通常認為瞭解 C++ 的詞法分析過程對於大多數一輩子都不會編寫 C++ 編譯器的程式員來說意義不大,但這篇文章不僅僅是為了滿足某些人的好奇心而寫的,因為我覺得任意一個嚴謹的 C++ 程式員都應該對 C++ 的詞法分析有所瞭解,以避免一些偶然情況下會發生的錯誤(我們花了若干年去熟悉 C++ 的文法,為什麼不花上一天時間隨便熟悉一下 C++ 的詞法呢?;) )。隨文附上兩年前寫的一個 C++
Time of Update: 2018-12-03
學習過C#語言的對於abstract這個關鍵字應該是很熟悉的了。我一開始也是這麼認為的。不信,那我就來考考你。提問:什麼情況下一定要在一個類的定義前面加上abstract這個關鍵字?挺清楚是*一定*哦。我的第一反應是你希望這個類裡的某個方法,屬性,事件為abstract的時候,一定要在類的定義前面也加上abstract修飾。還有沒有呢?好好想想。還有一種情況是說,如果你定義的的是一個子類,父類是用abstract修飾了,在這個子類裡如果不想把所有父類裡用abstract修飾的方法,屬性,時間都
Time of Update: 2018-12-03
關於C++函數重載及虛函數 學校要搞什麼知識點精講,今天下午臨時寫了兩篇關於C++中函數重載及虛函數的文章。只是打的講義草稿,所以很多用語都很隨便。 函數重載如何講函數重載:What——函數重載是什嗎?why——為什麼要用函數重載,沒有函數重載會怎樣?how——舉例說明怎麼使用函數重載************************************************************************
Time of Update: 2018-12-03
#include <stdio.h>void copy_string(char from[],char to[]){ /* 1、while迴圈在實現時,由於str字元數組的後面有結束符'\0',因此巧妙地將這一條件作為複製是否結束的標誌。 2、C語言的while迴圈不同與Java的while迴圈,繼續迴圈的條件為非零,由於'\0'字元與整數的相通性,所以當為字串結束 標誌'\0'時,while停止迴圈
Time of Update: 2018-12-03
在寫一個動態庫的時候,一直提示 Error 4430 錯誤,開始也沒太注意,後來一檢查,發現是聲明時沒有定義返回資料類型的緣故。 error C4430 在 VS2005 中經常會出現,特別是剛從VS6.0中轉過來的新手,因為在VS6.0裡,無類型標識時,預設為int類型,而在VS2005對編譯器進行了改進,進行了更加嚴格的限制,開發人員必須顯式的指定資料類型。 解決方案可以用到如下任意一種:#pragma warning(disable:
Time of Update: 2018-12-03
C/C++ 編程基礎篇之淺析堆&棧(轉)在C++中,記憶體分成5個區,他們分別是堆、棧、自由儲存區、全域/靜態儲存區和常量儲存區。1、棧:就是那些由編譯器在需要的時候分配,在不需要的時候自動清楚的變數的儲存區。裡面的變數通常是局部變數,函數參數等。 2、堆:就是那些由new分配的記憶體塊,他們的釋放編譯器不去管,由我們的應用程式去控制,一般一個new就要對應一個delete。如果程式員沒有釋
Time of Update: 2018-12-03
1.如果在基於 Windows Win32 的程式(純C++無法使用),即可以使用 GetTickCount() 函數實現。 精確到毫秒(ms)級。DWORD dwStart = GetTickCount();// 程式.......DWORD dwEnd = GetTickCount();DWORD dwTimeUsed = dwEnd - dwStart; 2. 使用 time 結構體擷取時間,在純 C++
Time of Update: 2018-12-03
昨天學會了編程實現擷取本地網卡資訊,今天再接再礪學會了修改本機ip地址。其實原理很簡單就是用c++調用一下dos命令而已,不得不說,dos命令實在是太強大了,當然聽說還有種修改註冊表的方法,不過沒有實驗過,所以放上調用dos命令修改本地ip地址的代碼,編譯環境依舊是code::block 10.05。#include <iostream>#include <string>#include <cstdlib>#include
Time of Update: 2018-12-03
經過一段日子的學習,PXE模擬器的console版本已經完成,於是正在著手用MFC來進行介面美化。為了類比多台機器同時向一個TFTP伺服器請求資料,並下載檔案。為了保持各個程式間的相對獨立,就用多進程代替多線程來予以實現。在這個過程中就牽扯到了字串的連結,同時在資料包構建的過程中,這個知識點也一直出現:下面將通過兩個執行個體來說明字串連結的一種常用的方法: //構造形如:“command param1”的dos命令//例:c:>TFTPmanagement.exe 5 TCHAR
Time of Update: 2018-12-03
ubuntu下的c/c++環境搭建是比較簡單,因為有apt和新立得的協助.1.首先是配置gcc,在ubuntu安裝完成已經有gcc了(gcc是由GNU之父Stallman所開發的linux下的編譯器,全稱為GNU Compiler Collection, 目前可以編譯的語言套件括:C, C++, Objective-C, Fortran, Java, and
Time of Update: 2018-12-03
聲音是人類傳遞資訊的重要途徑,如果應用程式中包含聲音資訊,就可以大大增強它的親合力;另外在科研開發過程中,聲音訊號的處理也是一個很重要的科學研究領域。Visual C++作為一個強大的開發工具,當然是聲音處理的首選工具,但是在當前Visual