Time of Update: 2018-12-03
忘了在那看到的了,寫到這,記錄一下 1)access2)fopen3)stat fstat?>>>>>應當使用函數access,標頭檔是io.h,原型: int access(const char *filename, int amode); amode參數為0時表示檢查檔案的存在性,如果檔案存在,返回0,不存在,返回-1。 這個函數還可以檢查其它檔案屬性: 06 檢查讀寫權限 04 檢查讀許可權
Time of Update: 2018-12-03
ODBC(Open Database Conectivity)即開放式資料庫互聯,作為Windows開放性結構的一個重要部分已經為很多的Windows程式員所熟悉,ODBC的工作依賴於資料庫製造商提供的驅動程式,使用ODBC API的時候,Windows的ODBC管理程式,把資料庫訪問的請求傳遞給正確的驅動程式,驅動程式再使用SQL語句指示DBMS完成資料庫訪問工作,因此,ODBC的存在為我們開發應用程式資料庫程式提供了非常強大的能力和靈活性。----
Time of Update: 2018-12-03
範例代碼如下:#include <stdio.h>#include <stdarg.h>// gcc -o arg stdarg.cvoid Print(const char *fmt, ...){char text[256];// 儲存字串va_list ap;// 指向一個變數列表的指標if (fmt == NULL)return;va_start(ap, fmt);// 分析可變參數vsprintf(text, fmt, ap);// 把參數值寫入字串va_end(
Time of Update: 2018-12-03
#i nclude <stdio.h>#i nclude <dos.h>#i nclude <conio.h>#i nclude <graphics.h>#i nclude <stdlib.h> #ifdef __cplusplus #define __CPPARGS ...#else#define __CPPARGS#endif#define MINBOXSIZE 15 /* 最小方塊的尺寸 */#define BGCOLOR 7
Time of Update: 2018-12-03
Linux系統下的多線程遵循POSIX線程介面,稱為pthread。編寫Linux下的多線程程式,需要使用標頭檔pthread.h,編譯需要在後面加-lpthread。關於多線程,主要有以下幾個過程:1,建立線程2,各個線程的執行3,等待線程的結束涉及的線程函數主要有:1,int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void *(*start_rtn)(void), void
Time of Update: 2018-12-03
求點P(x0, y0)關於直線Ax+Bx+C=0的對稱點M(x1, y1),滿足兩個條件:(1)線段PM的中點在直線上(2)PM與直線垂直/* 點關於直線的對稱點 */Point SymmetricalPoint(Point p, Line l){Point s;double tmp = l.A * l.A + l.B * l.B;s.x = (l.B *l.B*p.x - l.A*l.A*p.x - 2*l.A*l.B*p.y - 2*l.A*l.C) / tmp;s.y =
Time of Update: 2018-12-03
求平面中兩直線的交點,當兩直線不平行時,必定只有一個交點。/* 返回兩直線的交點 */Point LinesIntersection(Line m, Line n, int *flag){double d = n.A * m.B - m.A * n.B;if (d == 0){*flag = 0;return;}Point i;i.x = (n.B * m.C - m.B * n.C) / d;i.y = (m.A * n.C - n.A * m.C) / d;*flag = 1;return
Time of Update: 2018-12-03
一、在網上找到了BOOL和bool的區別:1、類型不同BOOL為int型bool為布爾型2、長度不同bool只有一個位元組BOOL長度視實際環境來定,一般可認為是4個位元組3、取值不同bool取值false和true,是0和1的區別BOOL取值FALSE和TRUE,是0和非0的區別二、bool是標準C++資料類型,可取值true和false。單獨佔一個位元組,如果數個bool對象列在一起,可能會各佔一個bit,這取決於編譯器。BOOL是微軟定義的typedef int
Time of Update: 2018-12-03
1. Windows環境下 首先,如果配置了boost庫,可以通過boost庫的filesysterm中的path類來擷取。如果沒有配置boost庫,可以通過調用系統命令sysytem("dir > test.txt")將某個檔案夾下的所有檔案名稱寫到test.txt文本中,然後再從文字檔中中讀取即可。假設我要擷取D盤Test檔案夾下的所有檔案名稱,則可以通過如下代碼實現 system("dir D:\\Test /B > D:\\fname.txt");ifstream
Time of Update: 2018-12-03
共用記憶體的函數有以下幾個:(1)int shmget(key_t key, int size, int shmflg),開闢或使用一塊共用記憶體。(2)void *shmat(int shmid, const void *shmaddr, int shmflg), 將參數shmid所指向的共用記憶體與當前進程串連。當使用某共用記憶體時,需要先使用shmat,達成串連。(3)int shmdt(const void
Time of Update: 2018-12-03
原始碼工程檔案(vs2005)http://d.download.csdn.net/down/1018461/cctt_1過去在網上找了段代碼,發現寫的代碼要改些地方,而且也想順便練習下自己的c++編碼。首先我要建立一個真正的樹形結構。於是使用了自己過去的GeneralTree.h(當然這裡還是改動些GeneralTree的代碼例如增添了些函數,另外把有些私人函數變成了公有函數)。訓練文字格式設定如下:並命名為decision2.txt 並發在自己的工程目錄下。當然你也可以改改相關原始碼 概念
Time of Update: 2018-12-03
首先Mutx m = new Mutex();在一個函數中 m.WaitOne();然後 m.ReleaseMutex();在另一個函數中 同樣 m.WaitOne();m.ReleaseMutex();你要寫的只能一個進程訪問的程式碼片段就放在m.WaitOne();和m.ReleaseMutex();中間 private Mutex mutF = new Mutex(); private Mutex mutH = new Mutex();
Time of Update: 2018-12-03
(1)C語言的創立早期的UNIX是用組合語言編寫的,但很笨拙,系統難以調試,理解困難。Thompson想利用進階語言的一些優點,幾經嘗試後建立了B語言。B語言是對BCPL的簡化,常駐記憶體。由於記憶體的限制,記憶體中只能放置解譯器,而不是編譯器,效率低下,同時,B語言無法表達不同的資料類型。Dennis Retchie利用PDP-11的強大效能,創立了能夠同時解決多種資料類型和效率的“New B“語言。這個名字很快就變成了"C",這就是C語言。BCPL:基本組合程式設計語言(Basic
Time of Update: 2018-12-03
三角形的外心,就是其外接圓的圓心。三角形三邊的垂直平分線相交於一點,該點即為外心。/* 三角形的外心 */Point Excenter(Triangle t){Line l1 = PerpendicularBisector(t.A, t.B);Line l2 = PerpendicularBisector(t.A, t.C);int flag;return LinesIntersection(l1, l2, &flag);// flag返回0,兩直線平行}/* 三角形的外接圓
Time of Update: 2018-12-03
角平分線的求解思路,,求∠ABC的角平分線:(1)在BC(或BC的延長線)上取一點D,使|AB|=|BD|。(2)求線段AD的中點E,則直線BE即為∠ABC的角平分線。點D的座標可以根據三角形相似來求解,如x滿足|BD|/|BC|=(D.x-B.x)/(C.x-B.x)。/* 角平分線,輸入:角ABC<180度 */Line AngleBisector(Point A, Point B, Point C){double ba = DistanceOfPoints(A, B);double
Time of Update: 2018-12-03
用C#的Thread做了一個簡單計時器。為了讓自己45分鐘後就可以休息一次,45分鐘過後會響音樂提示。開始使用的TimeSpan相減的方式,在Thread的啟動函數中也就是這樣寫的:public void CountTime(){ while (true) { TimeSpan tsNew = new TimeSpan(DateTime.Now.Ticks); TimeSpan tsIn = tsNew - tsOld; if (ts
Time of Update: 2018-12-03
這裡犯得錯誤是使用c++的先行編譯頭去編譯c語言。如果解決C1853這個錯誤呢?其實就是對每一個.c檔案加上#include "stdafx.h" 然後把.c檔案改為.cpp檔案然後在把工程屬性中的configuration properties中的c/c++中的Precompiled Header中的Create / use Precompile Header 中的User precompile Header 改為Create precompile Header How to compile
Time of Update: 2018-12-03
首先static變數只有一次初始化,不管在類中還是在函數中..有這樣一個函數:void Foo(){static int a=3; // initializestd::cout << a;a++;}這裡的static int a=3隻執行了一次。在main中調用Foo()兩次,結果為34.將上面的函數改為void Foo(){static int a; a=3; // not initializestd::cout << a;a++;}
Time of Update: 2018-12-03
昨天看了新泰科技的筆試題。第一個感覺...下屆的基礎太差。然後發現一個有趣的題:c++全域變數在其他的cpp檔案中怎麼使用?我的第一感覺是直接使用。不過感覺加"include"和"::"這樣回答更好,順便問了下同寢的人。發現完全不同的答案,他說要使用每一個cpp裡都要加extern...我倆僵持不下,於是開啟vs2005,開始編程驗證。然後發現如果是一個cpp檔案,怎麼做都是對的。如果兩個或多個cpp檔案,正確的格式是這樣的oo.h中#ifndef OO#define OOextern int
Time of Update: 2018-12-03
class Base{ public: void NoVirtualFun() { printf("Base::NoVirtualFun()!/n"); } virtual void VirtualFun() { printf("Base::VirtualFun()!/n"); } }; class ClassA{ private: Base* m_pBase; public: ClassA() :