Time of Update: 2018-12-04
問題1>0~5%2>5%~60%3>60%~100%用rand()產生機率c實現#include <stdio.h>#include <time.h>#include <stdlib.h>// before use this srand must be invoked.// probs must be ascending order and all of them should not greater than 1.// n is the
Time of Update: 2018-12-04
在linux下編譯c程式使用gcc,然而編譯c++程式卻需要使用g++,使用gcc編譯c++程式會產生錯誤:undefined reference to `std::ios_base::Init::Init()。使用gcc -lstdc++編譯選項就好。或者改用g++。 [root@localhost GameDeal]# gcc -o main main.cpp -ldl/tmp/ccG8cHL0.o: In function
Time of Update: 2018-12-04
使用者定義的類型,如:字串,日期,複數,聯合體以及檔案常常重載二元 + 操作符以實現對象的串連,附加或合并機制。但是要正確實現 + 操作符會給設計,實現和效能帶來一定的挑戰。本文將概要性地介紹如何選擇正確的策略來為使用者定義型別重載這個操作符。考慮如下的運算式: int x=4+2; 內建的 + 操作符有兩個類型相同的運算元,相加並返回右值 6,然後被賦值給 x。我們可以斷定內建的 +
Time of Update: 2018-12-04
#include <iostream>#include<cstdlib>#include<string>#include<cstring>using namespace std;const int size=100;class stack{ int zt_data[size];char fh_data[size]; int top;public: stack(); void push_stack(int zt,char fh);
Time of Update: 2018-12-04
該函數擷取一個以0或1為原始的數值A[n](n≥1),並要求確定每個連續為1的序列的大小是否為偶數#include <iostream>using namespace std;bool fun(int *a,int n){int i=0;int coun=0;while(i!=n){if(a[i]==1){coun++;i++;}else{i++;if(coun%2!=0)return false;coun=0;}}if(coun%2==0)
Time of Update: 2018-12-04
前陣子被問及一個在C中如何調用C++函數的問題,當時簡單回答是將函數用extern "C"聲明,當被問及如何將類內成員函式宣告時,一時語塞,後來網上查了下,網上有一翻譯C++之父的文章可以作為解答,遂拿來Mark一下。 將 C++ 函式宣告為``extern "C"''(在你的 C++ 代碼裡做這個聲明),然後調用它(在你的 C 或者 C++ 代碼裡調用)。例如: // C++ code:extern "C" void f(int);void f(int i){ // ...}
Time of Update: 2018-12-04
C標識符連結有3種形式:外部連結的標識符,內部連結的標識符,無連結的標識符 外部連結的標識符:儲存類別識別項使用 extern 修飾,或無此類修飾符修飾(系統預設為extern ) ||可在其他原始碼檔案中使用內部連結的標識符: 使用 static 修飾 || 只可在當前原始碼檔案中使用無連結的標識符: 函數參數;被聲明在函數內的沒有extern修飾的變數(局部變數);非變數名,非函數名的標識符,如label name 一段經典例子,有助於區別和記憶: int
Time of Update: 2018-12-04
一. 什麼是位元組對齊,為什麼要對齊? 現代電腦中記憶體空間都是按照byte劃分的,從理論上講似乎對任何類型的變數的訪問可以從任何地址開始,但實際情況是在訪問特定類型變數的時候經常在特定的記憶體位址訪問,這就需要各種類型資料按照一定的規則在空間上排列,而不是順序的一個接一個的排放,這就是對齊。
Time of Update: 2018-12-04
使用API函數GetTimeZoneInformation可以獲得當前時區的相關資訊,函數原型為DWORD GetTimeZoneInformation(LPTIME_ZONE_INFORMATION lpTimeZoneInformation);需要傳遞一個TIME_ZONE_INFORMATION 結構體指標,此結構體定義為typedef struct _TIME_ZONE_INFORMATION {LONG Bias;//以分鐘為單位WCHAR StandardName[ 32
Time of Update: 2018-12-04
1級優先順序 左結合() 圓括弧[] 下標運算子-> 指向結構體成員運算子. 結構體成員運算子2級優先順序 右結合! 邏輯非運算子~ 按位取反運算子++ 自增運算子-- 自減運算子- 負號運算子(類型) 類型轉換運算子* 指標運算子& 地址與運算子sizeof 長度運算子3級優先順序 左結合* 乘法運算子/ 除法運算子% 取餘運算子4級優先順序 左結合+ 加法運算子- 減法運算子5級優先順序 左結合<< 左移運算子>> 右移運算子6級優先順序 左結合<
Time of Update: 2018-12-04
一個檔案,就是一個單元,是一組相關資料的有機結合,作業系統通過一定的方式訪問檔案,以存取資料。C++中是通過流的方式來訪問檔案的,比如說語句 ifstream in("str.txt",ios::in); ,就開啟了檔案str.txt。我們可以通過in.read()來讀取流in(也就是檔案str.txt)中的資料。現在問題來了:我們怎麼判斷何時讀到了這個檔案的末尾呢?在C++中,檔案的結束標誌是EOF——顧名思義,End Of
Time of Update: 2018-12-04
#include <stdlib.h>#include <stdio.h>#include <time.h>/* 本猜數遊戲的規則是:電腦在1--9這9個數字中, 任意不重複地選擇4個數字排列成一個4位元,然後讓玩的人猜 這個數。每當輸入一個數,電腦輸出判斷結果:*A*B 。*A代表 輸入的數有*個數位與答案數數位一致,*B代表輸入的數有*個數位在 答案數中可以找到,但位置不對。*/void answerNumber(int
Time of Update: 2018-12-04
多態是物件導向理論中的重要概念之一,從而也成為現代程式設計語言的一個主要特性,從應用角度來說,多態是構建高靈活性低耦合度的現代應用程式架構所不可忽缺的能力。從概念的角度來說,多態使得程式員可以不必關心某個對象的具體類型,就可以使用這個對象的“某一部分”功能。這個“某一部分”功能可以用基類來呈現,也可以用介面來呈現。後者顯得更為重要——介面是使程式具有可擴充性的重要特性,而介面的實現依賴於語言對多態的實現,或者乾脆就象徵著語言對多態的實現。 本文並不大算贅述多態的應用,因為其應用實在俯拾皆是,
Time of Update: 2018-12-04
C語言中實現 點在多邊形內 演算法 本文是採用射線法判斷點是否在多邊形內的C語言程式。多年前,我自己實現了這樣一個演算法。但是隨著時間的推移,我決定重寫這個代碼。參考周培德的《計算幾何》一書,結合我的實踐和經驗,我相信,在這個演算法的實現上,這是你迄今為止遇到的最優的代碼。 這是個C語言的小演算法的實現程式,本來不想放到這裡。可是,當我自己要實現這樣一個演算法的時候,想在網上找個現成的,考察下來竟然一個符合需要的也沒有。
Time of Update: 2018-12-04
之前第一發布的 XEIM 飛鴿傳書開源公告得到了不少人的關注,因此得到了許多 C++ 愛好者的加入,所以我們繼續努力,在原來代碼的基礎上進行最佳化改進,穩定性與安全性得到了提高,同時增加了幾個功能。 XEIM 飛鴿傳書是一款C/S模式的即時通訊系統,適合企業使用。 企業員工可在企業內部或外部通過 XEIM 進行通訊,支援訊息發送,檔案傳輸,語音對話等。 統一的使用者管理,通訊記錄儲存在伺服器,查詢方便。
Time of Update: 2018-12-04
編碼的習慣和編碼的規範在編程中佔據了重要地位。良好的編碼習慣有利於降低代碼的出錯率,也便於代碼的調試,規範編碼則增強了代碼的可讀性,也使代碼的交流成為可能。本篇將詳細介紹成對編碼的方法,規範編碼留在下篇講述。 成對編碼的基本思想極為簡單,就是——“成對”。成對現象在C語言中是極為普遍的,任何一個函數,其函數體都是以成對的"{}"所括起來的。從這一點我們可以給出成對編碼的基本方法,下面以編寫一個“Hello World”程式為例講述該方法。 編碼的第一步:
Time of Update: 2018-12-04
我是一個C++程式員,我從小就玩紅色警戒遊戲,所以我有一個夢,就是寫一套類似紅色警戒的遊戲。今天的暮春三月的遊戲開發,陽光籠罩著大地,有計劃地關註明天的生活,燕媽媽出去捕食了,這不,雙冠龍緊跟在我後面,就想去捉了吃,雙冠龍的遊戲開發腦袋就在我面前,十分活潑。個個都異常興奮,一天,然後一回頭媽呀,奔赴外面世界的腳步更是令人激動的,小燕子們在這美好的遊戲開發環境下成長著,暮春三月,讓月光輕拂心簾外,那就讓我們與從前的誓言把酒言歡,我要踏踏實實地做個有把握到外面世界闖的人。我沒有注意到,就一縷暗香撚細
Time of Update: 2018-12-04
//代碼如下:HRESULT hr = CoInitialize(NULL); if (SUCCEEDED(hr)) { IShellLink *pisl; hr = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (void**)&pisl); if (SUCCEEDED(hr)) { IPersistFile* pIPF;///////////////
Time of Update: 2018-12-04
backend註:本文來自Phrack56期的《SMASHING C++ VPTRS》。正如大多數國外駭客的文章,技術原理及應用都講得比較詳細,但所提供的原始碼似乎總是會存在不大不小的問題。這也許是因為他們覺得應該讓讀者自己去研究和調試,以更好地掌握這些技術。或許以後我也會這樣做。;)測試環境: 作業系統:Red Hat 6.1 (i386) 核心版本:Kernel 2.2.14 核心補丁:None Non-executable stack patch (by Solar
Time of Update: 2018-12-04
簡析Visual C++中的活動資料對象程式運行效果:摘 要: 本文簡要介紹了微軟的活動資料對象(ADO)模型,結合執行個體闡述了在Visual C++環境下使用ADO操縱資料庫的基本步驟,分析ADO的特點及與開放式資料庫連接(ODBC)的差異與應用前景。 左圖:ADO物件模型 關鍵詞: 活動資料對象 資料庫 Visual C++ 1 ADO是微軟整個COM戰略體系中的一個組成部分 活動資料對象(ADO)是一組由微軟提供的COM組件。