欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

像素放大函數(shù)c語(yǔ)言,函數(shù)圖像放大

如何利用c語(yǔ)言實(shí)現(xiàn)像素圖形的輸出

1、可以變成灰度圖也可以不變。這里假設(shè)你的圖像都是IPL_DEPTH_8U類(lèi)型。

創(chuàng)新互聯(lián)建站專注于霍山企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城系統(tǒng)網(wǎng)站開(kāi)發(fā)。霍山網(wǎng)站建設(shè)公司,為霍山等地區(qū)提供建站服務(wù)。全流程按需開(kāi)發(fā),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)

2、如果變成灰度圖,就是單通道圖像,獲取的就是每一個(gè)像素點(diǎn)的灰度值。

IplImage* img = cvLoadImage("test.bmp", 0);

for (int i = 0; i img-height; i++)

{

for (int j = 0; j img-width; j++)

{

//方法一:使用cvGet2D()函數(shù)間接訪問(wèn)

CvScalar s = cvGet2D(img, i, j); //其中i代表y軸(第i行),即height;j代表x軸(第j列),即width。

printf("gray value=%f\n",s.val[0]);

//方法二:使用直接訪問(wèn)

uchar val = ((uchar *)(img-imageData + i*img-widthStep))[j]; //i和j的意義同上

printf("gray value=%d\n",val);

}

}

3、如果不變成灰度圖,就是3通道圖像,獲取的就是每一個(gè)像素點(diǎn)的BGR值,然后分別獲取B值,G值和R值。

IplImage* img = cvLoadImage("test.bmp", 1);

for (int i = 0; i img-height; i++)

{

for (int j = 0; j img-width; j++)

{

//方法一:使用cvGet2D()函數(shù)間接訪問(wèn)

CvScalar s=cvGet2D(img,i,j); //其中i代表y軸(第i行),即height;j代表x軸(第j列),即width。

printf("B=%f, G=%f, R=%f\n",s.val[0],s.val[1],s.val[2]); //注意是BGR順序

//方法二:使用直接訪問(wèn)

int bVal = ((uchar *)(img-imageData + i*img-widthStep))[j*img-nChannels + 0]; // B

int gVal = ((uchar *)(img-imageData + i*img-widthStep))[j*img-nChannels + 1]; // G

int rVal = ((uchar *)(img-imageData + i*img-widthStep))[j*img-nChannels + 2]; // R

printf("B=%d, G=%d, R=%d\n",bVal,gVal,rVal); //注意是BGR順序

}

}

我需要c語(yǔ)言每個(gè)頭文件里的所有函數(shù)介紹及用法!

分類(lèi)函數(shù),所在函數(shù)庫(kù)為ctype.h

int isalpha(int ch) 若ch是字母('A'-'Z','a'-'z')返回非0值,否則返回0

int isalnum(int ch) 若ch是字母('A'-'Z','a'-'z')或數(shù)字('0'-'9')

返回非0值,否則返回0

int isascii(int ch) 若ch是字符(ASCII碼中的0-127)返回非0值,否則返回0

int iscntrl(int ch) 若ch是作廢字符(0x7F)或普通控制字符(0x00-0x1F)

返回非0值,否則返回0

int isdigit(int ch) 若ch是數(shù)字('0'-'9')返回非0值,否則返回0

int isgraph(int ch) 若ch是可打印字符(不含空格)(0x21-0x7E)返回非0值,否則返回0

int islower(int ch) 若ch是小寫(xiě)字母('a'-'z')返回非0值,否則返回0

int isprint(int ch) 若ch是可打印字符(含空格)(0x20-0x7E)返回非0值,否則返回0

int ispunct(int ch) 若ch是標(biāo)點(diǎn)字符(0x00-0x1F)返回非0值,否則返回0

int isspace(int ch) 若ch是空格(' '),水平制表符('\t'),回車(chē)符('\r'),

走紙換行('\f'),垂直制表符('\v'),換行符('\n')

返回非0值,否則返回0

int isupper(int ch) 若ch是大寫(xiě)字母('A'-'Z')返回非0值,否則返回0

int isxdigit(int ch) 若ch是16進(jìn)制數(shù)('0'-'9','A'-'F','a'-'f')返回非0值,

否則返回0

int tolower(int ch) 若ch是大寫(xiě)字母('A'-'Z')返回相應(yīng)的小寫(xiě)字母('a'-'z')

int toupper(int ch) 若ch是小寫(xiě)字母('a'-'z')返回相應(yīng)的大寫(xiě)字母('A'-'Z')

數(shù)學(xué)函數(shù),所在函數(shù)庫(kù)為math.h、stdlib.h、string.h、float.h

int abs(int i) 返回整型參數(shù)i的絕對(duì)值

double cabs(struct complex znum) 返回復(fù)數(shù)znum的絕對(duì)值

double fabs(double x) 返回雙精度參數(shù)x的絕對(duì)值

long labs(long n) 返回長(zhǎng)整型參數(shù)n的絕對(duì)值

double exp(double x) 返回指數(shù)函數(shù)ex的值

double frexp(double value,int *eptr) 返回value=x*2n中x的值,n存貯在eptr中

double ldexp(double value,int exp); 返回value*2exp的值

double log(double x) 返回logex的值

double log10(double x) 返回log10x的值

double pow(double x,double y) 返回xy的值

double pow10(int p) 返回10p的值

double sqrt(double x) 返回+√x的值

double acos(double x) 返回x的反余弦cos-1(x)值,x為弧度

double asin(double x) 返回x的反正弦sin-1(x)值,x為弧度

double atan(double x) 返回x的反正切tan-1(x)值,x為弧度

double atan2(double y,double x) 返回y/x的反正切tan-1(x)值,y的x為弧度

double cos(double x) 返回x的余弦cos(x)值,x為弧度

double sin(double x) 返回x的正弦sin(x)值,x為弧度

double tan(double x) 返回x的正切tan(x)值,x為弧度

double cosh(double x) 返回x的雙曲余弦cosh(x)值,x為弧度

double sinh(double x) 返回x的雙曲正弦sinh(x)值,x為弧度

double tanh(double x) 返回x的雙曲正切tanh(x)值,x為弧度

double hypot(double x,double y) 返回直角三角形斜邊的長(zhǎng)度(z),

x和y為直角邊的長(zhǎng)度,z2=x2+y2

double ceil(double x) 返回不小于x的最小整數(shù)

double floor(double x) 返回不大于x的最大整數(shù)

void srand(unsigned seed) 初始化隨機(jī)數(shù)發(fā)生器

int rand() 產(chǎn)生一個(gè)隨機(jī)數(shù)并返回這個(gè)數(shù)

double poly(double x,int n,double c[])從參數(shù)產(chǎn)生一個(gè)多項(xiàng)式

double modf(double value,double *iptr)將雙精度數(shù)value分解成尾數(shù)和階

double fmod(double x,double y) 返回x/y的余數(shù)

double frexp(double value,int *eptr) 將雙精度數(shù)value分成尾數(shù)和階

double atof(char *nptr) 將字符串nptr轉(zhuǎn)換成浮點(diǎn)數(shù)并返回這個(gè)浮點(diǎn)數(shù)

double atoi(char *nptr) 將字符串nptr轉(zhuǎn)換成整數(shù)并返回這個(gè)整數(shù)

double atol(char *nptr) 將字符串nptr轉(zhuǎn)換成長(zhǎng)整數(shù)并返回這個(gè)整數(shù)

char *ecvt(double value,int ndigit,int *decpt,int *sign)

將浮點(diǎn)數(shù)value轉(zhuǎn)換成字符串并返回該字符串

char *fcvt(double value,int ndigit,int *decpt,int *sign)

將浮點(diǎn)數(shù)value轉(zhuǎn)換成字符串并返回該字符串

char *gcvt(double value,int ndigit,char *buf)

將數(shù)value轉(zhuǎn)換成字符串并存于buf中,并返回buf的指針

char *ultoa(unsigned long value,char *string,int radix)

將無(wú)符號(hào)整型數(shù)value轉(zhuǎn)換成字符串并返回該字符串,radix為轉(zhuǎn)換時(shí)所用基數(shù)

char *ltoa(long value,char *string,int radix)

將長(zhǎng)整型數(shù)value轉(zhuǎn)換成字符串并返回該字符串,radix為轉(zhuǎn)換時(shí)所用基數(shù)

char *itoa(int value,char *string,int radix)

將整數(shù)value轉(zhuǎn)換成字符串存入string,radix為轉(zhuǎn)換時(shí)所用基數(shù)

double atof(char *nptr) 將字符串nptr轉(zhuǎn)換成雙精度數(shù),并返回這個(gè)數(shù),錯(cuò)誤返回0

int atoi(char *nptr) 將字符串nptr轉(zhuǎn)換成整型數(shù), 并返回這個(gè)數(shù),錯(cuò)誤返回0

long atol(char *nptr) 將字符串nptr轉(zhuǎn)換成長(zhǎng)整型數(shù),并返回這個(gè)數(shù),錯(cuò)誤返回0

double strtod(char *str,char **endptr)將字符串str轉(zhuǎn)換成雙精度數(shù),并返回這個(gè)數(shù),

long strtol(char *str,char **endptr,int base)將字符串str轉(zhuǎn)換成長(zhǎng)整型數(shù),

并返回這個(gè)數(shù),

int matherr(struct exception *e)

用戶修改數(shù)學(xué)錯(cuò)誤返回信息函數(shù)(沒(méi)有必要使用)

double _matherr(_mexcep why,char *fun,double *arg1p,

double *arg2p,double retval)

用戶修改數(shù)學(xué)錯(cuò)誤返回信息函數(shù)(沒(méi)有必要使用)

unsigned int _clear87() 清除浮點(diǎn)狀態(tài)字并返回原來(lái)的浮點(diǎn)狀態(tài)

void _fpreset() 重新初使化浮點(diǎn)數(shù)學(xué)程序包

unsigned int _status87() 返回浮點(diǎn)狀態(tài)字

int chdir(char *path) 使指定的目錄path(如:"C:\\WPS")變成當(dāng)前的工作目錄,成

功返回0

int findfirst(char *pathname,struct ffblk *ffblk,int attrib)查找指定的文件,成功

返回0

pathname為指定的目錄名和文件名,如"C:\\WPS\\TXT"

ffblk為指定的保存文件信息的一個(gè)結(jié)構(gòu),定義如下:

┏━━━━━━━━━━━━━━━━━━━━┓

┃struct ffblk ┃

┃{ ┃

┃ char ff_reserved[21]; /*DOS保留字*/ ┃

┃ char ff_attrib; /*文件屬性*/ ┃

┃ int ff_ftime; /*文件時(shí)間*/ ┃

┃ int ff_fdate; /*文件日期*/ ┃

┃ long ff_fsize; /*文件長(zhǎng)度*/ ┃

┃ char ff_name[13]; /*文件名*/ ┃

┃} ┃

┗━━━━━━━━━━━━━━━━━━━━━┛

attrib為文件屬性,由以下字符代表

┏━━━━━━━━━┳━━━━━━━━━┓

┃FA_RDONLY 只讀文件┃FA_LABEL 卷標(biāo)號(hào) ┃

┃FA_HIDDEN 隱藏文件┃FA_DIREC 目錄 ┃

┃FA_SYSTEM 系統(tǒng)文件┃FA_ARCH 檔案 ┃

┗━━━━━━━━━┻━━━━━━━━━┛

例:

struct ffblk ff;

findfirst("*.wps",ff,FA_RDONLY);

int findnext(struct ffblk *ffblk) 取匹配finddirst的文件,成功返回0

void fumerge(char *path,char *drive,char *dir,char *name,char *ext)

此函數(shù)通過(guò)盤(pán)符drive(C:、A:等),路徑dir(\TC、\BC\LIB等),

文件名name(TC、WPS等),擴(kuò)展名ext(.EXE、.COM等)組成一個(gè)文件名

存與path中.

int fnsplit(char *path,char *drive,char *dir,char *name,char *ext)

此函數(shù)將文件名path分解成盤(pán)符drive(C:、A:等),路徑dir(\TC、\BC\LIB等),

文件名name(TC、WPS等),擴(kuò)展名ext(.EXE、.COM等),并分別存入相應(yīng)的變量中.

int getcurdir(int drive,char *direc) 此函數(shù)返回指定驅(qū)動(dòng)器的當(dāng)前工作目錄名稱

drive 指定的驅(qū)動(dòng)器(0=當(dāng)前,1=A,2=B,3=C等)

direc 保存指定驅(qū)動(dòng)器當(dāng)前工作路徑的變量 成功返回0

char *getcwd(char *buf,iint n) 此函數(shù)取當(dāng)前工作目錄并存入buf中,直到n個(gè)字

節(jié)長(zhǎng)為為止.錯(cuò)誤返回NULL

int getdisk() 取當(dāng)前正在使用的驅(qū)動(dòng)器,返回一個(gè)整數(shù)(0=A,1=B,2=C等)

int setdisk(int drive) 設(shè)置要使用的驅(qū)動(dòng)器drive(0=A,1=B,2=C等),

返回可使用驅(qū)動(dòng)器總數(shù)

int mkdir(char *pathname) 建立一個(gè)新的目錄pathname,成功返回0

int rmdir(char *pathname) 刪除一個(gè)目錄pathname,成功返回0

char *mktemp(char *template) 構(gòu)造一個(gè)當(dāng)前目錄上沒(méi)有的文件名并存于template中

char *searchpath(char *pathname) 利用MSDOS找出文件filename所在路徑,

,此函數(shù)使用DOS的PATH變量,未找到文件返回NULL

進(jìn)程函數(shù),所在函數(shù)庫(kù)為stdlib.h、process.h

void abort() 此函數(shù)通過(guò)調(diào)用具有出口代碼3的_exit寫(xiě)一個(gè)終止信息于stderr,

并異常終止程序。無(wú)返回值

int exec…裝入和運(yùn)行其它程序

int execl( char *pathname,char *arg0,char *arg1,…,char *argn,NULL)

int execle( char *pathname,char *arg0,char *arg1,…,

char *argn,NULL,char *envp[])

int execlp( char *pathname,char *arg0,char *arg1,…,NULL)

int execlpe(char *pathname,char *arg0,char *arg1,…,NULL,char *envp[])

int execv( char *pathname,char *argv[])

int execve( char *pathname,char *argv[],char *envp[])

int execvp( char *pathname,char *argv[])

int execvpe(char *pathname,char *argv[],char *envp[])

exec函數(shù)族裝入并運(yùn)行程序pathname,并將參數(shù)

arg0(arg1,arg2,argv[],envp[])傳遞給子程序,出錯(cuò)返回-1

在exec函數(shù)族中,后綴l、v、p、e添加到exec后,

所指定的函數(shù)將具有某種操作能力

有后綴 p時(shí),函數(shù)可以利用DOS的PATH變量查找子程序文件。

l時(shí),函數(shù)中被傳遞的參數(shù)個(gè)數(shù)固定。

v時(shí),函數(shù)中被傳遞的參數(shù)個(gè)數(shù)不固定。

e時(shí),函數(shù)傳遞指定參數(shù)envp,允許改變子進(jìn)程的環(huán)境,

無(wú)后綴e時(shí),子進(jìn)程使用當(dāng)前程序的環(huán)境。

void _exit(int status)終止當(dāng)前程序,但不清理現(xiàn)場(chǎng)

void exit(int status) 終止當(dāng)前程序,關(guān)閉所有文件,寫(xiě)緩沖區(qū)的輸出(等待輸出),

并調(diào)用任何寄存器的"出口函數(shù)",無(wú)返回值

int spawn…運(yùn)行子程序

int spawnl( int mode,char *pathname,char *arg0,char *arg1,…,

char *argn,NULL)

int spawnle( int mode,char *pathname,char *arg0,char *arg1,…,

char *argn,NULL,char *envp[])

int spawnlp( int mode,char *pathname,char *arg0,char *arg1,…,

char *argn,NULL)

int spawnlpe(int mode,char *pathname,char *arg0,char *arg1,…,

char *argn,NULL,char *envp[])

int spawnv( int mode,char *pathname,char *argv[])

int spawnve( int mode,char *pathname,char *argv[],char *envp[])

int spawnvp( int mode,char *pathname,char *argv[])

int spawnvpe(int mode,char *pathname,char *argv[],char *envp[])

spawn函數(shù)族在mode模式下運(yùn)行子程序pathname,并將參數(shù)

arg0(arg1,arg2,argv[],envp[])傳遞給子程序.出錯(cuò)返回-1

mode為運(yùn)行模式

mode為 P_WAIT 表示在子程序運(yùn)行完后返回本程序

P_NOWAIT 表示在子程序運(yùn)行時(shí)同時(shí)運(yùn)行本程序(不可用)

P_OVERLAY表示在本程序退出后運(yùn)行子程序

在spawn函數(shù)族中,后綴l、v、p、e添加到spawn后,

所指定的函數(shù)將具有某種操作能力

有后綴 p時(shí), 函數(shù)利用DOS的PATH查找子程序文件

l時(shí), 函數(shù)傳遞的參數(shù)個(gè)數(shù)固定.

v時(shí), 函數(shù)傳遞的參數(shù)個(gè)數(shù)不固定.

e時(shí), 指定參數(shù)envp可以傳遞給子程序,允許改變子程序運(yùn)行環(huán)境.

當(dāng)無(wú)后綴e時(shí),子程序使用本程序的環(huán)境.

int system(char *command) 將MSDOS命令command傳遞給DOS執(zhí)行

轉(zhuǎn)換子程序,函數(shù)庫(kù)為math.h、stdlib.h、ctype.h、float.h

char *ecvt(double value,int ndigit,int *decpt,int *sign)

將浮點(diǎn)數(shù)value轉(zhuǎn)換成字符串并返回該字符串

char *fcvt(double value,int ndigit,int *decpt,int *sign)

將浮點(diǎn)數(shù)value轉(zhuǎn)換成字符串并返回該字符串

char *gcvt(double value,int ndigit,char *buf)

將數(shù)value轉(zhuǎn)換成字符串并存于buf中,并返回buf的指針

char *ultoa(unsigned long value,char *string,int radix)

將無(wú)符號(hào)整型數(shù)value轉(zhuǎn)換成字符串并返回該字符串,radix為轉(zhuǎn)換時(shí)所用基數(shù)

char *ltoa(long value,char *string,int radix)

將長(zhǎng)整型數(shù)value轉(zhuǎn)換成字符串并返回該字符串,radix為轉(zhuǎn)換時(shí)所用基數(shù)

char *itoa(int value,char *string,int radix)

將整數(shù)value轉(zhuǎn)換成字符串存入string,radix為轉(zhuǎn)換時(shí)所用基數(shù)

double atof(char *nptr) 將字符串nptr轉(zhuǎn)換成雙精度數(shù),并返回這個(gè)數(shù),錯(cuò)誤返回0

int atoi(char *nptr) 將字符串nptr轉(zhuǎn)換成整型數(shù), 并返回這個(gè)數(shù),錯(cuò)誤返回0

long atol(char *nptr) 將字符串nptr轉(zhuǎn)換成長(zhǎng)整型數(shù),并返回這個(gè)數(shù),錯(cuò)誤返回0

double strtod(char *str,char **endptr)將字符串str轉(zhuǎn)換成雙精度數(shù),并返回這個(gè)數(shù),

long strtol(char *str,char **endptr,int base)將字符串str轉(zhuǎn)換成長(zhǎng)整型數(shù),

并返回這個(gè)數(shù),

int toascii(int c) 返回c相應(yīng)的ASCII

int tolower(int ch) 若ch是大寫(xiě)字母('A'-'Z')返回相應(yīng)的小寫(xiě)字母('a'-'z')

int _tolower(int ch) 返回ch相應(yīng)的小寫(xiě)字母('a'-'z')

int toupper(int ch) 若ch是小寫(xiě)字母('a'-'z')返回相應(yīng)的大寫(xiě)字母('A'-'Z')

int _toupper(int ch) 返回ch相應(yīng)的大寫(xiě)字母('A'-'Z')

診斷函數(shù),所在函數(shù)庫(kù)為assert.h、math.h

void assert(int test) 一個(gè)擴(kuò)展成if語(yǔ)句那樣的宏,如果test測(cè)試失敗,

就顯示一個(gè)信息并異常終止程序,無(wú)返回值

void perror(char *string) 本函數(shù)將顯示最近一次的錯(cuò)誤信息,格式如下:

字符串string:錯(cuò)誤信息

char *strerror(char *str) 本函數(shù)返回最近一次的錯(cuò)誤信息,格式如下:

字符串str:錯(cuò)誤信息

int matherr(struct exception *e)

用戶修改數(shù)學(xué)錯(cuò)誤返回信息函數(shù)(沒(méi)有必要使用)

double _matherr(_mexcep why,char *fun,double *arg1p,

double *arg2p,double retval)

用戶修改數(shù)學(xué)錯(cuò)誤返回信息函數(shù)(沒(méi)有必要使用)

c語(yǔ)言的圖形函數(shù)庫(kù)有哪些

圖形和圖像函數(shù)包含在graphics.h里面(一) 像素函數(shù)56. putpiel() 畫(huà)像素點(diǎn)函數(shù)57. getpixel()返回像素色函數(shù)(二) 直線和線型函數(shù)58. line() 畫(huà)線函數(shù)59. lineto() 畫(huà)線函數(shù)60. linerel() 相對(duì)畫(huà)線函數(shù)61. setlinestyle() 設(shè)置線型函數(shù)62. getlinesettings() 獲取線型設(shè)置函數(shù)63. setwritemode() 設(shè)置畫(huà)線模式函數(shù)(三)、多邊形函數(shù)64. rectangle() 畫(huà)矩形函數(shù)65. bar() 畫(huà)條函數(shù)66. bar3d() 畫(huà)條塊函數(shù)67. drawpoly() 畫(huà)多邊形函數(shù)(四)、 圓、弧和曲線函數(shù)68. getaspectratio()獲取縱橫比函數(shù)69. circle()畫(huà)圓函數(shù)70. arc() 畫(huà)圓弧函數(shù)71. ellipse()畫(huà)橢圓弧函數(shù)72. fillellipse() 畫(huà)橢圓區(qū)函數(shù)73. pieslice() 畫(huà)扇區(qū)函數(shù)74. sector() 畫(huà)橢圓扇區(qū)函數(shù)75. getarccoords()獲取圓弧坐標(biāo)函數(shù)(五)、 填充函數(shù)76. setfillstyle() 設(shè)置填充圖樣和顏色函數(shù)77. setfillpattern() 設(shè)置用戶圖樣函數(shù)78. floodfill() 填充閉域函數(shù)79. fillpoly() 填充多邊形函數(shù)80. getfillsettings() 獲取填充設(shè)置函數(shù)81. getfillpattern() 獲取用戶圖樣設(shè)置函數(shù)(六)、圖像函數(shù)82. imagesize() 圖像存儲(chǔ)大小函數(shù)83. getimage() 保存圖像函數(shù)84. putimage() 輸出圖像函數(shù)四、圖形和圖像函數(shù)對(duì)許多圖形應(yīng)用程序,直線和曲線是非常有用的。但對(duì)有些圖形只能靠操作單個(gè)像素才能畫(huà)出。當(dāng)然如果沒(méi)有畫(huà)像素的功能,就無(wú)法操作直線和曲線的函數(shù)。而且通過(guò)大規(guī)模使用像素功能,整個(gè)圖形就可以保存、寫(xiě)、擦除和與屏幕上的原有圖形進(jìn)行疊加。(一) 像素函數(shù)56. putpixel() 畫(huà)像素點(diǎn)函數(shù)功能: 函數(shù)putpixel() 在圖形模式下屏幕上畫(huà)一個(gè)像素點(diǎn)。用法: 函數(shù)調(diào)用方式為void putpixel(int x,int y,int color);說(shuō)明: 參數(shù)x,y為像素點(diǎn)的坐標(biāo),color是該像素點(diǎn)的顏色,它可以是顏色符號(hào)名,也可以是整型色彩值。此函數(shù)相應(yīng)的頭文件是graphics.h返回值: 無(wú)例: 在屏幕上(6,8)處畫(huà)一個(gè)紅色像素點(diǎn):putpixel(6,8,RED);57. getpixel()返回像素色函數(shù)功能: 函數(shù)getpixel()返回像素點(diǎn)顏色值。用法: 該函數(shù)調(diào)用方式為int getpixel(int x,int y);說(shuō)明: 參數(shù)x,y為像素點(diǎn)坐標(biāo)。函數(shù)的返回值可以不反映實(shí)際彩色值,這取決于調(diào)色板的設(shè)置情況(參見(jiàn)setpalette()函數(shù))。這個(gè)函數(shù)相應(yīng)的頭文件為graphics.h返回值: 返回一個(gè)像素點(diǎn)色彩值。例: 把屏幕上(8,6)點(diǎn)的像素顏色值賦給變量color。color=getpixel(8,6);

C語(yǔ)言中的圖形函數(shù)有哪些

一) 像素函數(shù)

putpiel() 畫(huà)像素點(diǎn)函數(shù)

getpixel()返回像素色函數(shù)

(二) 直線和線型函數(shù)

line() 畫(huà)線函數(shù)

lineto() 畫(huà)線函數(shù)

linerel() 相對(duì)畫(huà)線函數(shù)

setlinestyle() 設(shè)置線型函數(shù)

getlinesettings() 獲取線型設(shè)置函數(shù)

setwritemode() 設(shè)置畫(huà)線模式函數(shù)

(三)、多邊形函數(shù)

rectangle() 畫(huà)矩形函數(shù)

bar() 畫(huà)條函數(shù)

bar3d() 畫(huà)條塊函數(shù)

drawpoly() 畫(huà)多邊形函數(shù)

(四)、 圓、弧和曲線函數(shù)

getaspectratio()獲取縱橫比函數(shù)

circle()畫(huà)圓函數(shù)

arc() 畫(huà)圓弧函數(shù)

ellipse()畫(huà)橢圓弧函數(shù)

fillellipse() 畫(huà)橢圓區(qū)函數(shù)

pieslice() 畫(huà)扇區(qū)函數(shù)

sector() 畫(huà)橢圓扇區(qū)函數(shù)

getarccoords()獲取圓弧坐標(biāo)函數(shù)

(五)、 填充函數(shù)

setfillstyle() 設(shè)置填充圖樣和顏色函數(shù)

setfillpattern() 設(shè)置用戶圖樣函數(shù)

floodfill() 填充閉域函數(shù)

fillpoly() 填充多邊形函數(shù)

getfillsettings() 獲取填充設(shè)置函數(shù)

getfillpattern() 獲取用戶圖樣設(shè)置函數(shù)

(六)、圖像函數(shù)

imagesize() 圖像存儲(chǔ)大小函數(shù)

getimage() 保存圖像函數(shù)

putimage() 輸出圖像函數(shù)

C語(yǔ)言中有沒(méi)有繪圖的函數(shù)庫(kù)?里面每個(gè)函數(shù)的內(nèi)容和用法是什么?

圖形和圖像函數(shù)包含在graphics.h里面

(一) 像素函數(shù)

56. putpiel() 畫(huà)像素點(diǎn)函數(shù)

57. getpixel()返回像素色函數(shù)

(二) 直線和線型函數(shù)

58. line() 畫(huà)線函數(shù)

59. lineto() 畫(huà)線函數(shù)

60. linerel() 相對(duì)畫(huà)線函數(shù)

61. setlinestyle() 設(shè)置線型函數(shù)

62. getlinesettings() 獲取線型設(shè)置函數(shù)

63. setwritemode() 設(shè)置畫(huà)線模式函數(shù)

(三)、多邊形函數(shù)

64. rectangle() 畫(huà)矩形函數(shù)

65. bar() 畫(huà)條函數(shù)

66. bar3d() 畫(huà)條塊函數(shù)

67. drawpoly() 畫(huà)多邊形函數(shù)

(四)、 圓、弧和曲線函數(shù)

68. getaspectratio()獲取縱橫比函數(shù)

69. circle()畫(huà)圓函數(shù)

70. arc() 畫(huà)圓弧函數(shù)

71. ellipse()畫(huà)橢圓弧函數(shù)

72. fillellipse() 畫(huà)橢圓區(qū)函數(shù)

73. pieslice() 畫(huà)扇區(qū)函數(shù)

74. sector() 畫(huà)橢圓扇區(qū)函數(shù)

75. getarccoords()獲取圓弧坐標(biāo)函數(shù)

(五)、 填充函數(shù)

76. setfillstyle() 設(shè)置填充圖樣和顏色函數(shù)

77. setfillpattern() 設(shè)置用戶圖樣函數(shù)

78. floodfill() 填充閉域函數(shù)

79. fillpoly() 填充多邊形函數(shù)

80. getfillsettings() 獲取填充設(shè)置函數(shù)

81. getfillpattern() 獲取用戶圖樣設(shè)置函數(shù)

(六)、圖像函數(shù)

82. imagesize() 圖像存儲(chǔ)大小函數(shù)

83. getimage() 保存圖像函數(shù)

84. putimage() 輸出圖像函數(shù)

四、圖形和圖像函數(shù)

對(duì)許多圖形應(yīng)用程序,直線和曲線是非常有用的。但對(duì)有些圖形只能靠操作單個(gè)像素才能畫(huà)出。當(dāng)然如果沒(méi)有畫(huà)像素的功能,就無(wú)法操作直線和曲線的函數(shù)。而且通過(guò)大規(guī)模使用像素功能,整個(gè)圖形就可以保存、寫(xiě)、擦除和與屏幕上的原有圖形進(jìn)行疊加。

(一) 像素函數(shù)

56. putpixel() 畫(huà)像素點(diǎn)函數(shù)

功能: 函數(shù)putpixel() 在圖形模式下屏幕上畫(huà)一個(gè)像素點(diǎn)。

用法: 函數(shù)調(diào)用方式為void putpixel(int x,int y,int color);

說(shuō)明: 參數(shù)x,y為像素點(diǎn)的坐標(biāo),color是該像素點(diǎn)的顏色,它可以是顏色符號(hào)名,也可以是整型色彩值。

此函數(shù)相應(yīng)的頭文件是graphics.h

返回值: 無(wú)

例: 在屏幕上(6,8)處畫(huà)一個(gè)紅色像素點(diǎn):

putpixel(6,8,RED);

57. getpixel()返回像素色函數(shù)

功能: 函數(shù)getpixel()返回像素點(diǎn)顏色值。

用法: 該函數(shù)調(diào)用方式為int getpixel(int x,int y);

說(shuō)明: 參數(shù)x,y為像素點(diǎn)坐標(biāo)。

函數(shù)的返回值可以不反映實(shí)際彩色值,這取決于調(diào)色板的設(shè)置情況(參見(jiàn)setpalette()函數(shù))。

這個(gè)函數(shù)相應(yīng)的頭文件為graphics.h

返回值: 返回一個(gè)像素點(diǎn)色彩值。

例: 把屏幕上(8,6)點(diǎn)的像素顏色值賦給變量color。

color=getpixel(8,6);

(二) 直線和線型函數(shù)

有三個(gè)畫(huà)直線的函數(shù),即line(),lineto(),linerel()。這些直線使用整型坐標(biāo),并相對(duì)于當(dāng)前圖形視口,但不一定受視口限制,如果視口裁剪標(biāo)志clip為真,那么直線將受到視口邊緣截?cái)啵蝗绻鹀lip為假,即使終點(diǎn)坐標(biāo)或新的當(dāng)前位置在圖形視口或屏幕極限之外,直線截?cái)嗟狡聊粯O限。

有兩種線寬及幾種線型可供選擇,也可以自己定義線圖樣。下面分別介紹直線和線型函數(shù)。

58. line() 畫(huà)線函數(shù)

功能: 函數(shù)line()使用當(dāng)前繪圖色、線型及線寬,在給定的兩點(diǎn)間畫(huà)一直線。

用法: 該函數(shù)調(diào)用方式為void line(int startx,int starty,int endx,int endy);

說(shuō)明: 參數(shù)startx,starty為起點(diǎn)坐標(biāo),endx,endy為終點(diǎn)坐標(biāo),函數(shù)調(diào)用前后,圖形狀態(tài)下屏幕光標(biāo)(一般不可見(jiàn))當(dāng)前位置不改變。

此函數(shù)相應(yīng)的頭文件為graphics.h

返回值: 無(wú)

例: 見(jiàn)函數(shù)60.linerel()中的實(shí)例。

59. lineto() 畫(huà)線函數(shù)

功能: 函數(shù)lineto()使用當(dāng)前繪圖色、線型及線寬,從當(dāng)前位置畫(huà)一直線到指定位置。

用法: 此函數(shù)調(diào)用方式為void lineto(int x,int y);

說(shuō)明: 參數(shù)x,y為指定點(diǎn)的坐標(biāo),函數(shù)調(diào)用后,當(dāng)前位置改變到指定點(diǎn)(x,y)。

該函數(shù)對(duì)應(yīng)的頭文件為graphics.h

返回值: 無(wú)

例: 見(jiàn)函數(shù)60.linerel()中的實(shí)例。

60.linerel() 相對(duì)畫(huà)線函數(shù)

功能: 函數(shù)linerel() 使用當(dāng)前繪圖色、線型及線寬,從當(dāng)前位置開(kāi)始,按指定的水平和垂直偏移距離畫(huà)一直線。

用法: 這個(gè)函數(shù)調(diào)用方式為void linerel(int dx,int dy);

說(shuō)明: 參數(shù)dx,dy分別是水平偏移距離和垂直偏移距離。

函數(shù)調(diào)用后,當(dāng)前位置變?yōu)樵黾悠凭嚯x后的位置,例如,原來(lái)的位置是(8,6),調(diào)用函數(shù)linerel(10,18)后,當(dāng)前位置為(18,24)。

返回值:無(wú)

例: 下面的程序?yàn)楫?huà)線函數(shù)調(diào)用實(shí)例:

#i ncludegraphics.h

void main()

{

int driver,mode;

driver=DETECT;

mode=0;

initgraph(driver,mode,"");

setcolor(15);

line(66,66,88,88);

lineto(100,100);

linerel(36,64);

getch();

restorecrtmode();

}

61. setlinestyle() 設(shè)置線型函數(shù)

功能: setlinestyle() 為畫(huà)線函數(shù)設(shè)置當(dāng)前線型,包括線型、線圖樣和線寬。

用法: setlinestyle() 函數(shù)調(diào)用方式為void setlinestyle(int stly,unsigned pattern,int width);

說(shuō)明: 參數(shù)style為線型取值,也可以用相應(yīng)名稱表示,如表1-10中所示。

參數(shù)pattern用于自定義線圖樣,它是16位(bit)字,只有當(dāng)style=USERBIT_LINE(值為1)時(shí),pattern的值才有意義,使用用戶自定義線圖樣,與圖樣中“1”位對(duì)應(yīng)的像素顯示,因此,pattern=0xFFFF,則畫(huà)實(shí)線;pattern=0x9999,則畫(huà)每隔兩個(gè)像素交替顯示的虛線,如果要畫(huà)長(zhǎng)虛線,那么pattern的值可為0xFF00和0xF00F,當(dāng)style不為USERBIT_LINE值時(shí),雖然pattern的值不起作用,但扔須為它提供一個(gè)值,一般取為0。

參數(shù)wigth用來(lái)設(shè)定線寬,其取值見(jiàn)表1-11,表中給出了兩個(gè)值,即1和3,實(shí)際上,線寬取值為2也是可以接受的。

若用非法參數(shù)調(diào)用setlinestyle()函數(shù),那么graphresult()會(huì)返回錯(cuò)誤代碼,并且當(dāng)前線型繼續(xù)有效。

Turbo C提供的線型與線寬定義在頭文件graphics.h中,表1-10和1-11分別列出了參數(shù)的取值與含義。

表1-10 線型

-----------------------------------------------------

名 稱 取 值 含 義

-----------------------------------------------------

SOLID_LINE 0 實(shí)線

DOTTED_LINE 1 點(diǎn)線

CNTER_LINE 2 中心線

DASHED_LINE 3 虛線

USERBIT_LINE 4 用戶自定義線型

-----------------------------------------------------

表1-11 線寬

-----------------------------------------------------------

名 稱 取 值 說(shuō) 明

-----------------------------------------------------------

NORM_WIDTH(常寬) 1 一個(gè)像素寬(缺省值)

THICK_WIDTH(加寬) 3 三個(gè)像素寬

-----------------------------------------------------------

這個(gè)函數(shù)的頭文件是graphics.h

返回值: 無(wú)

例: 下面的程序顯示了BC中所提供的線型圖樣:

#i ncludegraphics.h

void main()

{

int driver,mode;

driver=DETECT;

mode=0;

initgraph(driver,mode,"");

for(i=0;i4;i++)

{

setlinestyle(i,0,1);

line(i*50,200,i*50+60,200)

}

getch();

restorecrtmode();

}

62. getlinesettings() 獲取線型設(shè)置函數(shù)

功能: 函數(shù)getlinesettings() 用當(dāng)前設(shè)置的線型、線圖樣和線寬填 寫(xiě)linesettingstype型結(jié)構(gòu)。

用法: 函數(shù)調(diào)用方式為void getlinesettings(struct linesettingstype *info);

說(shuō)明: 此函數(shù)調(diào)用執(zhí)行后,當(dāng)前的線型、線圖樣和線寬值被裝入info指向的結(jié)構(gòu)里,從而可從該結(jié)構(gòu)中獲得線型設(shè)置。

linesettingstype型結(jié)構(gòu)定義如下:

struct linesettingstype {

int linestyle;

unsigned upattern;

int thickness;

};

其中l(wèi)inestyle用于存放線型,線型值為表1-10中的各值之一。

upattern用為裝入用戶自定義線圖樣,這是16位字,每一位等于一個(gè)像素,如果哪個(gè)位被設(shè)置,那么該像素打開(kāi),否則關(guān)閉。

thickness為線寬值存放的變量,可參見(jiàn)表1-11。

getlinesettings()函數(shù)對(duì)應(yīng)的頭文件為graphics.h

返回值: 返回的線型設(shè)置存放在info指向的結(jié)構(gòu)中。

例: 把當(dāng)前線型的設(shè)置寫(xiě)入info結(jié)構(gòu):

struct linesettingstype info;

getlinesettings(info);

63.setwritemode() 設(shè)置畫(huà)線模式函數(shù)

功能: 函數(shù)setwritemode() 設(shè)置畫(huà)線模式

用法: 函數(shù)調(diào)用方式為 void setwritemode()(int mode);

說(shuō)明: 參數(shù)mode只有兩個(gè)取值0和1,若mode為0,則新畫(huà)的線將復(fù)蓋屏幕上原有的圖形,此為缺省畫(huà)線輸出模式。如果mode為1,那么新畫(huà)的像素點(diǎn)與原有圖形的像素點(diǎn)先進(jìn)行異或(XOR)運(yùn)算,然后輸出到屏幕上,使用這種畫(huà)線輸出模式,第二次畫(huà)同一圖形時(shí),將擦除該圖形。調(diào)用setwritemode()設(shè)置的畫(huà)線輸出模式只影響函數(shù)line(),lineto(),linerel(),recangle()和drawpoly()。

setwritemode()函數(shù)對(duì)應(yīng)的頭文件是graphics.h

返回值: 無(wú)

例: 設(shè)置畫(huà)線輸出模式為0:

setwritemode(0);

(三)、多邊形函數(shù)

對(duì)多邊形,無(wú)疑可用畫(huà)直線函數(shù)來(lái)畫(huà)出它,但直接提供畫(huà)多邊形的函數(shù)會(huì)給用戶很大方便。最常見(jiàn)的多邊形有矩形、矩形塊(或稱條形)、多邊形和多邊形塊,我們還把長(zhǎng)方形條塊也放到這里一起考慮,雖然它不是多邊形,但它的特例就是矩形(塊)。下面直接介紹畫(huà)多邊形的函數(shù)。

64. rectangle() 畫(huà)矩形函數(shù)

功能: 函數(shù)rectangle() 用當(dāng)前繪圖色、線型及線寬,畫(huà)一個(gè)給定左上角與右下角的矩形(正方形或長(zhǎng)方形)。

用法: 此函數(shù)調(diào)用方式為void rectangle(int left,int top,int right,int bottom);

說(shuō)明: 參數(shù)left,top是左上角點(diǎn)坐標(biāo),right,bottom是右下角點(diǎn)坐標(biāo)。如果有一個(gè)以上角點(diǎn)不在當(dāng)前圖形視口內(nèi),且裁剪標(biāo)志clip設(shè)置的是真(1),那么調(diào)用該函數(shù)后,只有在圖形視口內(nèi)的矩形部分才被畫(huà)出。

這個(gè)函數(shù)對(duì)應(yīng)的頭文件為graphics.h

返回值: 無(wú)

例: 下面的程序畫(huà)一些矩形實(shí)例:

#i ncludegraphics.h

void main()

{

int driver,mode;

driver=DETECT;

mode=0;

initgrpah(driver,mode,"");

rectangle(80,80,220,200);

rectangle(140,99,180,300);

rectangle(6,6,88,88);

rectangle(168,72,260,360);

getch();

restorecrtmode();

}

65. bar() 畫(huà)條函數(shù)

功能: 函數(shù)bar()用當(dāng)前填充圖樣和填充色(注意不是給圖色)畫(huà)出一個(gè)指定上左上角與右下角的實(shí)心長(zhǎng)條形(長(zhǎng)方塊或正方塊),但沒(méi)有四條邊線)。

用法: bar()函數(shù)調(diào)用方式為void bar(int left,int top,int right,int bottom);

說(shuō)明: 參數(shù)left,topright,bottom分別為左上角坐標(biāo)與右下角坐標(biāo),它們和調(diào)用函數(shù)rectangle()的情形相同,調(diào)用此函數(shù)前,可用setfillstyle()或setfillpattern()設(shè)置當(dāng)前填充圖樣和填充色。

注意此函數(shù)只畫(huà)沒(méi)有邊線的條形,如果要畫(huà)有邊線的的條形,可調(diào)用下面的函數(shù)bar3d()來(lái)畫(huà),并將深度參數(shù)設(shè)為0,同時(shí)topflag參數(shù)要設(shè)置為真,否則該條形無(wú)頂邊線。

這 應(yīng)的頭文件為graphics.h

返回值: 無(wú)

例: 見(jiàn)函數(shù)bar3d()中的實(shí)例。

66.bar3d() 畫(huà)條塊函數(shù)

功能: 函數(shù)bar3d() 使用當(dāng)前繪圖色、線型及線寬畫(huà)出三維長(zhǎng)方形條塊,并用當(dāng)前填充圖樣和填 充色填充該三維條塊的表面。

用法: 此函數(shù)調(diào)用方式為void bar3d(int left,int top,int right,int bottom,int depth,int topflag);

說(shuō)明: 參數(shù)left,top,right,bottom分另為左上角與右下角坐標(biāo),這與bar()函數(shù)中的一樣。參數(shù)depth為條塊的深度,以像素為單位,通常按寬度的四分之一計(jì)算。深度方向通過(guò)屏顯縱橫比調(diào)節(jié)為約45度(即這時(shí)x/y比設(shè)置為1:1)。

參數(shù)topflag相當(dāng)于一個(gè)布爾參數(shù),如果設(shè)置為1(真)那么條塊上放一頂面;若設(shè)置為0(假),則三維條形就沒(méi)有頂面,這樣可使多個(gè)三維條形疊加在一起。

要使圖形更加美觀,可利用函數(shù)floodfill()或setfillpattern()來(lái)選擇填充圖樣和填充色(參見(jiàn)本小節(jié)(五)填充函數(shù) )。

bar3d()函數(shù)對(duì)應(yīng)的頭文件為graphics.h

返回值: 無(wú)

例: 下面的程序畫(huà)一個(gè)條形和條塊:

#i ncludegraphics.h

void main()

{

int driver,mode;

driver=DETECT;

mode=0;

initgraph(driver,mode,"");

setfillstyle(SOLID-FILL,GREEN);

bar(60,80,220,160);

setfillstyle(SOLID-FILL,RED);

bar3d(260,180,360,240,20,1);

getch();

restorecrtmode();

}

67. drawpoly() 畫(huà)多邊形函數(shù)

功能: 函數(shù)drawpoly() 用當(dāng)前繪圖色、線型及線寬,畫(huà)一個(gè)給定若干點(diǎn)所定義的多邊形。

用法: 此函數(shù)調(diào)用方式為void drawpoly(int pnumber,int *points);

說(shuō)明: 參數(shù)pnumber為多邊形的頂點(diǎn)數(shù);參數(shù)points指向整型數(shù)組,該數(shù)組中是多邊形所有頂點(diǎn)(x,y)坐標(biāo)值,即一系列整數(shù)對(duì),x坐標(biāo)值在前。顯然整型數(shù)組的維數(shù)至少為頂點(diǎn)數(shù)的2倍,在定義了多邊形所有頂點(diǎn)的數(shù)組polypoints時(shí),頂點(diǎn)數(shù)目可通過(guò)計(jì)算sizeof(polypoints)除以2倍的sizeof(int)得到,這里除以2倍的原因是每個(gè)頂點(diǎn)有兩個(gè)整數(shù)坐標(biāo)值。另外有一點(diǎn)要注意,畫(huà)一個(gè)n個(gè)頂點(diǎn)的閉合圖形,頂點(diǎn)數(shù)必須等于n+1,并且最后一點(diǎn)(第n+1)點(diǎn)坐標(biāo)必須等于第一點(diǎn)的坐標(biāo)。

drawpoly()函數(shù)對(duì)應(yīng)的頭文件為grpahics.h

返回值: 無(wú)

例: 下面的程序畫(huà)一個(gè)封閉星形圖與一個(gè)不封閉星形圖:

#i ncludegraphics.h

void main()

{

int driver,mode;

static int polypoints1[18]={100,100,110,120,100,130,120,125,140,140,130,120,

140,110,120,115,100,100};

static int polypoints2[18]={180,100,210,120,200,130,220,125,240,140,230,120,

240,110,220,115,220,110};

driver=DETECT;

mode=0;

initgraph(driver,mode,"");

drawpoly(9,polypoints1);

drawpoly(9,polypoints2);

getch();

restorecrtmode();

}

(四)、 圓、弧和曲線函數(shù)

在一個(gè)屏幕上畫(huà)得很圓的圖形到另一個(gè)屏幕上可能被壓扁或拉長(zhǎng),這是因?yàn)槊恳环N顯示卡與之相應(yīng)的顯示模式都有一個(gè)縱橫比。縱橫比是指像素的水平方向大小與垂直方向大小的比值。如VGA顯示卡由于偈素基本上是正方形,所以縱橫比為1.000。

為了保證幾何圖形基本按預(yù)計(jì)情況顯示在屏幕上,用屏顯的縱橫比來(lái)計(jì)算和糾正不同硬件及顯示卡產(chǎn)生的畸變。計(jì)算縱橫比所需要的水平方向和垂直方向的比例系數(shù)可調(diào)用函數(shù)getaspectratio()獲得。

68. getaspectratio()獲取縱橫比函數(shù)

功能: 函數(shù)getaspectratio()返回x方向和y方向的比例系數(shù),用這兩個(gè)整型值可計(jì)算某一特定屏顯的縱橫比。

用法: 此函數(shù)調(diào)用方式為void getaspectratio(int xasp,int yasp);

說(shuō)明: 參數(shù)xasp指向的變量存放返回的x方向比例系數(shù);參數(shù)yasp指向的變量存放返回的y方向比例系數(shù)。通常y方向比例系數(shù)為10 000, x方向比例系數(shù)不大于10 000(這是因?yàn)榇蠖鄶?shù)屏幕像素高比寬長(zhǎng))。

注意縱橫比自動(dòng)用作下面函數(shù)arc(),circle()和pieslice()中的標(biāo)尺因子,使屏幕上圓或弧正常顯示。但用ellipse()函數(shù)畫(huà)橢圓必須調(diào)用本函數(shù)獲取縱橫比作為標(biāo)尺因子,否則不予調(diào)整。縱橫比可用于其它幾何圖形,目的是校正和顯示圖形。

getaspectratio()函數(shù)對(duì)應(yīng)的頭文件為graphics.h

返回值: 返回x與y方向比例系數(shù)分別存放在xasp和yasp所指向的變量中。

例: 下面的程序顯示縱橫比:

int xasp,yasp;

float aspectratio;

getaspectratio(xasp,yasp);

aspectratio=xasp/yasp;

printf("aspect ratio: %f",aspectratio);

69. circle()畫(huà)圓函數(shù)

功能: 函數(shù)circle()使用當(dāng)前繪圖色并以實(shí)線畫(huà)一個(gè)完整的圓。

用法:該函數(shù)調(diào)用方式為void circle(int x,int y,int radius);

說(shuō)明: 參數(shù)x,y為圓心坐標(biāo),radius為圓半徑,用像素個(gè)素表示。注意,調(diào)用circle()函數(shù)畫(huà)圓時(shí)不用當(dāng)前線型。

不同于ellipse()函數(shù),只用單個(gè)半徑radius參數(shù)調(diào)用circle()函數(shù),故屏顯縱橫比可以自動(dòng)調(diào)節(jié),以產(chǎn)生正確的顯示圖。

此函數(shù)對(duì)應(yīng)的頭文件為graphics.h

返回值: 無(wú)

例: 畫(huà)六個(gè)同心圓,圓心在(100,100)。

#i ncludegraphics.h

void main()

{

int driver,mode;

driver=DETECT;

mode=0;

initgraph(driver,mode,"");

circle(100,100,10);

circle(100,100,20);

circle(100,100,30);

circle(100,100,40);

circle(100,100,50);

circle(100,100,60);

getch();

restorecrtmode();

}

70. arc() 畫(huà)圓弧函數(shù)

功能: 函數(shù)arc()使用當(dāng)前繪圖色并以實(shí)線畫(huà)一圓弧。

用法: 函數(shù)調(diào)用方式為void arc(int x,int y,int startangle,int endangle,int radius);

說(shuō)明: 參數(shù)x,y為圓心坐標(biāo),startangle與endangle分別為起始角與終止角,radius為半徑。圓心坐標(biāo)和半徑以像素個(gè)數(shù)給出,起始角和終止角以度為單位,0度位于右邊,90度位于頂部,180度位于左邊,底部是270度。同往常一樣,360度與0度重合。角度按逆時(shí)針?lè)较蛟黾樱⒉灰蠼K止角一定比起始角大。例如指定300度和90度分別為起始角和終止角,與指定300度和450度分別為起始角和終止角可畫(huà)出相同的弧。大于360度可作為參數(shù),它將被化到0度 ̄360度范圍里。函數(shù)arc()能畫(huà)封閉圓,只要取起始角為0度,終止角為360度即可。此函數(shù)中,屏顯縱橫比可自動(dòng)調(diào)節(jié)。

arc()函數(shù)對(duì)應(yīng)的頭文件為graphics.h

返回值: 無(wú)

例: 以(200,200)為圓心,100為半徑,從0度到120度畫(huà)圓弧:

#i ncludegraphics.h

void main()

{

int driver,mode;

driver=DETECT;

mode=0;

initgraph(drivwer,mode,"");

setcolor(WHITE);

arc(200,200,0,120,100);

getch();

restorecrtmode();

}

c語(yǔ)言常用函數(shù)有哪些?主要掌握的要點(diǎn)是什么

函數(shù)1。absread()讀磁盤(pán)絕對(duì)扇區(qū)函數(shù)原形:int absread(int drive,int num,int sectnum,void *buf)功能:從drive指定的驅(qū)動(dòng)器磁盤(pán)上,sectnum指定的邏輯扇區(qū)號(hào)開(kāi)始讀取(通過(guò)DOS中斷0x25讀取)num個(gè)(最多64K個(gè))扇區(qū)的內(nèi)容,儲(chǔ)存于buf所指的緩沖區(qū)中。參數(shù):drive=0對(duì)應(yīng)A盤(pán),drive=1對(duì)應(yīng)B盤(pán)。返回值:0:成功;-1:失敗。頭文件:dos.h函數(shù)2。abswrite()寫(xiě)磁盤(pán)絕對(duì)扇區(qū)函數(shù)原形:int abswrite(int drive,int nsects,int lsect,void *buffer) drive=0(A驅(qū)動(dòng)器)、1(B驅(qū)動(dòng)器)、 nsects=要寫(xiě)的扇區(qū)數(shù)(最多64K個(gè)); lsect=起始邏輯扇區(qū)號(hào); buffer=要寫(xiě)入數(shù)據(jù)的內(nèi)存起始地址。功能:將指定內(nèi)容寫(xiě)入(調(diào)用DOS中斷0x26)磁盤(pán)上的指定扇區(qū),即使寫(xiě)入的地方是磁盤(pán)的邏輯結(jié)構(gòu)、文件、FAT表和目錄結(jié)構(gòu)所在的扇區(qū),也照常進(jìn)行。返回值:0:成功;-1:失敗。頭文件:dos.h函數(shù)3。atof()將字符串轉(zhuǎn)換成浮點(diǎn)數(shù)的函數(shù)原形:double atof(const char *s)功能:把s所指向的字符串轉(zhuǎn)換成double類(lèi)型。 s格式為:符號(hào) 數(shù)字.數(shù)字 E符號(hào) 數(shù)字返回值:字符串的轉(zhuǎn)換值。頭文件:math.h、stdlib.h函數(shù)4。atoi()將字符串轉(zhuǎn)換成整型數(shù)的函數(shù)原形:int atoi(const char *s)功能:把s所指向的字符串轉(zhuǎn)換成int類(lèi)型。 s格式為:符號(hào) 數(shù)字返回值:字符串的轉(zhuǎn)換值。若出錯(cuò)則返回0。頭文件:stdlib.h函數(shù)5。atol()將字符串轉(zhuǎn)換成長(zhǎng)整型數(shù)的函數(shù)原形:long atol(const char *s)功能:把s所指向的字符串轉(zhuǎn)換成long int類(lèi)型。 s格式為:符號(hào) 數(shù)字返回值:字符串的轉(zhuǎn)換值。若出錯(cuò)則返回0。頭文件:stdlib.h函數(shù)6。bcd()把一個(gè)數(shù)轉(zhuǎn)換成對(duì)應(yīng)的BCD碼的函數(shù)原形:bcd bcd(int x) bcd bcd(double x) bcd bcd(double x,int decimals)注意:BCD碼的精度可達(dá)17位。參數(shù)decimals是可選的,用來(lái)指定轉(zhuǎn)換后小數(shù)點(diǎn)后的位數(shù)。頭文件:bcd.h函數(shù)7。bdos()原形∶int bdos(int fnum,unsigned dx,unsigned al) 其中fnum是系統(tǒng)調(diào)用號(hào);dx是傳給寄存器DX的值;al是傳給寄存器AL的值;功能∶DOS系統(tǒng)調(diào)用(INT21H)返回值∶AX中的值函數(shù)8。biosdisk()調(diào)用BIOS磁盤(pán)驅(qū)動(dòng)程序函數(shù)原形:char biosdisk(int cmd,int drive,int head,int track,int sector,int nsects,void *buffer)功能:使用中斷0x13,直接調(diào)用BIOS進(jìn)行磁盤(pán)操作參數(shù):(1)cmd: 2-數(shù)據(jù)以每扇區(qū)512字節(jié)的格式讀入buffer,起始扇區(qū)由head、track和sector定,扇區(qū)數(shù)由nsects定。 3-將buffer中的數(shù)據(jù)按每扇區(qū)512字節(jié)寫(xiě)入磁盤(pán)。 4-對(duì)扇區(qū)進(jìn)行數(shù)據(jù)校驗(yàn)。 6-格式化一個(gè)磁盤(pán)并對(duì)化扇區(qū)設(shè)置化標(biāo)志。 8-返回當(dāng)前驅(qū)動(dòng)器參數(shù)在buffer的前4個(gè)字節(jié)中。 10-長(zhǎng)讀,每扇區(qū)讀入512字節(jié)加上額外的4個(gè)字節(jié)。 11-長(zhǎng)寫(xiě),每扇區(qū)寫(xiě)入512字節(jié)加上額外的4個(gè)字節(jié)。 (2)drive:0-第一個(gè)軟驅(qū);1-第二個(gè)軟驅(qū);0x80-第一個(gè)硬驅(qū) (3)head:磁頭 (4)track:磁道 (5)sector:扇區(qū) (6)nsects:扇區(qū)數(shù) (7)buffer:數(shù)據(jù)緩沖區(qū),定義為unsigned char buffer[];返回值:0x00-操作成功 0x01-錯(cuò)誤命令 0x03-企圖寫(xiě)具有寫(xiě)保護(hù)的磁盤(pán) 0x07-驅(qū)動(dòng)器參數(shù)設(shè)置錯(cuò)誤 0x10-磁盤(pán)讀/CRC/ECC錯(cuò)誤頭文件:bios.h注:對(duì)于硬盤(pán)主引導(dǎo)記錄扇區(qū)head=0,track=0,sector=1函數(shù)9。biosprint()調(diào)用BIOS打印機(jī)I/O接口的函數(shù)原形:int biosprint(int cmd,int abyte,int port)功能:通過(guò)BIOS中斷0x17在由參數(shù)port指定的打印機(jī)上完成各種打印機(jī)功能。 port=0(LPT1) =1(LPT2); cmd=0(打印字符abyte) 1(初始化打印機(jī)端口) 2(讀打印機(jī)狀態(tài)); abyte=0-255;返回值:打印機(jī)狀態(tài) 位0(設(shè)備超時(shí));位3(I/O出錯(cuò));位4(打印機(jī)已選擇);位5(沒(méi)紙);位6(打印機(jī)確認(rèn));位7(不忙)頭文件:bios.h函數(shù)10。calloc()分配內(nèi)存函數(shù)原形:void *calloc(size_t nitems,size_t size)功能:在堆中分配一塊內(nèi)存,將該內(nèi)存的內(nèi)容全部清0。返回值:返回指向新分配內(nèi)存的指針。空間不夠則返回NULL。頭文件:stdlib.h、calloc.h函數(shù)11。ceil()原形∶double ceil(double num)功能∶求不小于num的最小雙精度整數(shù)頭文件∶math.h函數(shù)12。cgets()讀字符串函數(shù)原形:char *cgets(char *str)功能:從控制臺(tái)讀入一個(gè)字符串,并將該字符串(和字符串長(zhǎng)度)存入有str所指向的地址中。注意:在調(diào)用cgets之前,必須將要讀入的字符串最大長(zhǎng)度存入str[0]中,返回時(shí)str[1]被設(shè)置為實(shí)際讀入的字符數(shù)。實(shí)際字符串內(nèi)容從str[2]開(kāi)始,以空字符(\0)結(jié)尾。返回值:指向str[2]的指針。頭文件:conio.h函數(shù)13。chdir()改變當(dāng)前目錄的函數(shù)原形:int chdir(const char *path)功能:把由path指定的目錄改為當(dāng)前目錄。path參數(shù)中可以指定驅(qū)動(dòng)器號(hào),如"a:\\ddd", 但只是改變?cè)擈?qū)動(dòng)器上的當(dāng)前目錄,對(duì)當(dāng)前活動(dòng)驅(qū)動(dòng)器上的當(dāng)前目錄無(wú)影響。返回值:0(成功);-1(失敗)頭文件:dir.h函數(shù)14。_chmod()改變文件存取權(quán)限的函數(shù)原形:int _chmod(const char *path,int func[,int attrib])功能:讀取(func=0時(shí))或設(shè)置(func=1時(shí))DOS文件屬性。 attrib=FA_RDONLY 只讀 attrib=FA_HIDDEN 隱藏文件 attrib=FA_SYSTEM 系統(tǒng)文件 attrib=FA_LABLE 卷標(biāo) attrib=FA_DIREC 目錄 attrib=FA_ARCH 檔案 返回值:失敗時(shí)返回-1。成功時(shí)返回文件的屬性字節(jié),如果 返回值FA_RDONLY 不等于0,則文件是只讀文件;......頭文件:io.h、dos.h函數(shù)15。chmod()改變文件存取權(quán)限的函數(shù)原形:int chmod(const char *path,int amode)功能:根據(jù)amode的值,設(shè)置由path所指文件的存取權(quán)限。 amode的值 存取權(quán)限 S_IWRITE 允許寫(xiě) S_IREAD 允許讀(只讀) S_IREAD|S_IWRITE 可讀可寫(xiě) 返回值:0(成功);-1(失敗)頭文件:io.h、sys\stat.h函數(shù)16。clock()原形∶long clock(void)功能∶測(cè)得從程序開(kāi)始到調(diào)用處處理機(jī)所用的時(shí)間頭文件∶time.h函數(shù)17。close()關(guān)閉文件函數(shù)原形:int close(int handle)功能:關(guān)閉由文件句柄所指向的文件,句柄是調(diào)用_creat、creat、creatnew、creattemp、dup、dup2、_open或open時(shí)得到的。該函數(shù)并不在文件末尾寫(xiě)一個(gè)Ctrl-Z字符,如果想用該字符結(jié)束文件,必須顯式地給出該字符。返回值:0(成功);-1(失敗)頭文件:io.h函數(shù)18。closegraph()關(guān)閉圖形函數(shù)原形:void far closegraph(void)功能:釋放圖形系統(tǒng)分配的所有內(nèi)存,將屏幕恢復(fù)到調(diào)用initgraph之前的模式。頭文件:graphics.h函數(shù)19。cos()原形∶double cos(double arg)功能∶計(jì)算arg(弧度)的余弦值頭文件∶math.h函數(shù)20。ctrlbrk()設(shè)置ctrl-break處理程序的函數(shù)原形:void ctrlbrk(int(*handle)(void))功能:修改中斷向量0x23,使用新的ctrl-break中斷處理函數(shù)。用法:ctrlbrk(函數(shù)名); 先定義函數(shù):int 函數(shù)名(void){...}頭文件:dos.h函數(shù)21。delay()暫停函數(shù)原形:void delay(unsigned milliseconds)功能:暫停當(dāng)前所執(zhí)行的程序milliseconds毫秒。頭文件:dos.h函數(shù)22。disable()屏蔽中斷的宏原形:void disble(void)功能:屏蔽中斷,只允許從外部設(shè)備來(lái)的不可屏蔽中斷(NMI)。頭文件:dos.h函數(shù)23。enable()開(kāi)硬件中斷的宏原形:void enable(void)功能:開(kāi)放中斷,允許接受任何設(shè)備產(chǎn)生的中斷。頭文件:dos.h函數(shù)24。exec()加載并運(yùn)行其它程序的函數(shù)族e(cuò)xecl(),execle(),execlp(),execlpe(),execv(),execve(),execvp(),execvpe()原形∶ int execl(char *path,char *arg0,*arg1,...,*argn,NULL)int execle(char *path,char *arg0,*arg1,...,*argn,NULL,char **env)int execlp(char *path,char *arg0,*arg1,...,*argn,NULL)int execlpe(char *path,char *arg0,*arg1,...,*argn,NULL,char **env)int execv(char *path,char *argv[])int execve(char *path,char *argv[],char **env)int execvp(char *path,char *argv[])int execvpe(char *path,char *argv[],char **env) 其中,path是調(diào)用的子程序的文件名,在exec后面的后綴具有某種功能: p表示函數(shù)能夠在由DOS環(huán)境變量PATH的目錄中搜索子進(jìn)程文件,如果path中未指明文件所在目錄,函數(shù)將首先在當(dāng)前目錄中找,然后在DOS環(huán)境變量指定的目錄中找。 l表示參數(shù)指針(arg0,...,argn)按單獨(dú)參數(shù)傳送。當(dāng)預(yù)先知道要傳送的參數(shù)個(gè)數(shù)時(shí),通常用帶后綴l的函數(shù)。 v表示參數(shù)指針(arg0,...,argn)按指針數(shù)組傳送。當(dāng)要傳送的參數(shù)可變時(shí),使用帶后綴v的函數(shù)。 e表示參數(shù)env可以傳送到子進(jìn)程,該函數(shù)可用來(lái)修改子進(jìn)程的環(huán)境。若無(wú)e后綴,子進(jìn)程將繼承父進(jìn)程的環(huán)境。注意:arg0+...+argn,或arg[0]+...+arg[n]的總長(zhǎng)度必需小于128字節(jié)。當(dāng)調(diào)用exec函數(shù)時(shí),原先已經(jīng)打開(kāi)的文件在子進(jìn)程中仍然是打開(kāi)的。功能:加載并運(yùn)行其它程序,調(diào)用時(shí)必須有足夠的內(nèi)存空間用于加載和執(zhí)行子程序,子程序?qū)⒏采w父程序。頭文件:process.h 函數(shù)25。farcalloc()從遠(yuǎn)堆中分配內(nèi)存的函數(shù)原形:void far *farcalloc(unsigned long nunits,unsigned long unitsz)功能:從遠(yuǎn)堆中為包含nunits個(gè)元素的數(shù)組分配內(nèi)存,每一區(qū)unitsz字節(jié)長(zhǎng)。用法:fptr=farcalloc(數(shù)目,sizeof(char)); 先定義:char far *fptr;注意:所有可用RAM能被分配;大于64K的塊能被分配;用遠(yuǎn)指針存取該塊。微模式不能用。返回值:返回指向新分配塊的指針,若內(nèi)存不夠,則返回NULL。頭文件:alloc.h函數(shù)26。farfree()從遠(yuǎn)堆中釋放一塊已分配內(nèi)存的函數(shù)原形:void farfree(void far *block)頭文件:alloc.h函數(shù)27。farmalloc()從遠(yuǎn)堆中分配內(nèi)存的函數(shù)原形:void far *farmalloc(unsigned long nbytes)使用方式:fptr=farmalloc(字節(jié)數(shù)); 先定義char far *fptr;功能:從遠(yuǎn)堆中分配長(zhǎng)nbytes字節(jié)的內(nèi)存。注意:所有可用RAM能被分配;大于64K的塊能被分配;用遠(yuǎn)指針存取該塊。微模式不能用。返回值:返回指向新分配內(nèi)存的指針,若內(nèi)存不夠,則返回NULL。頭文件:alloc.h函數(shù)28。farrealloc()調(diào)整遠(yuǎn)堆中已分配塊的函數(shù)原形:void far *farrealloc(void far *oldblock,unsigned long nbytes)返回值:返回調(diào)整后的新內(nèi)存地址。若不能重新分配,則返回NULL。頭文件:alloc.h函數(shù)29。fclose()關(guān)閉一個(gè)流函數(shù)原形:int fclose(FILE *stream)使用方式:fclose(文件指針名);其中文件指針名=fopen();功能:關(guān)閉指定的流,關(guān)閉前清除所有與stream相聯(lián)的緩沖區(qū),釋放系統(tǒng)分配的緩沖區(qū),但由setbuf設(shè)置的緩沖區(qū)不能自動(dòng)釋放。返回值:0(成功);EOF(失敗)頭文件:stdio.h函數(shù)30。fcloseall()關(guān)閉打開(kāi)的流的函數(shù)原形:int fcloseall(void)功能:關(guān)閉所有打開(kāi)的流,由stdin、stdout、stdprn、stderr和stdaux設(shè)置的流除外。返回值:關(guān)閉流的總數(shù)。如果發(fā)現(xiàn)錯(cuò)誤則返回EOF。頭文件:stdio.h 函數(shù)31。feof()檢查文件是否結(jié)束的函數(shù)原形∶int feof(FILE *fp)返回值∶文件結(jié)束返回非0值,否則返回0。頭文件∶stdio.h函數(shù)32。fgets()從流中讀取一字符串的函數(shù)原形:char *fgets(char s[],int n,FILE *stream)使用格式:fgets(字符串指針,字符個(gè)數(shù),文件指針)功能:從輸入流stream中讀入字符存到s串中。當(dāng)讀了n-1個(gè)字符或遇到換行符時(shí),函數(shù)停止讀過(guò)程。fgets在s串尾保留換行字符。讀入的最后一個(gè)字符后面加一個(gè)空字符。返回值:成功時(shí)返回字符串參數(shù)s,出錯(cuò)或遇到文件結(jié)束時(shí),返回NULL。頭文件:stdio.h函數(shù)33。findfirst()函數(shù)和findnext()函數(shù)調(diào)用方式:整形數(shù)=findfirst(文件名,結(jié)構(gòu)變量名,屬性常數(shù)組合(如0x26));其中定義struct ffblk 結(jié)構(gòu)變量名;原形:int findfirst(path,buffer,attr)和int findnext(buffer) char *path;//要檢索的文件名 struct ffblk { char ff_reserved[21]; char ff_attrib;//被檢索的文件屬性 unsigned ff_ftime;//最后修改的時(shí)間 //(0-4位:秒數(shù)/2;5-10位:分?jǐn)?shù);11-15位:小時(shí)數(shù)) unsigned ff_fdate;//最后修改的日期 //(0-4位:日;5-8位:月;9-15位:年減1980) long ff_fsize;//文件大小 char ff_name[13];//組名 }*buffer; int attr;//要檢索的文件屬性功能:檢索由path和attr指定的文件,把結(jié)果返回到buffer。findfirst返回關(guān)于第一個(gè)指定文件的信息,findnext繼續(xù)檢索。返回值:0(檢索成功),-1(沒(méi)有找到指定的文件)屬性常數(shù): FA_NORMAL(0x00) 含意:Normal file, no attributes FA_RDONLY(0x01) 含意:只讀 FA_HIDDEN(0x02) 含意:隱含文件 FA_SYSTEM(0x04) 含意:系統(tǒng)文件 FA_LABEL(0x08) 含意:卷標(biāo) FA_DIREC(0x10) 含意:子目錄 FA_ARCH(0x20) 含意:修改的文件Archive頭文件:dir.h(dos.h)函數(shù)34。floodfill()填充區(qū)域的函數(shù)原形:void far floodfill(int x,int y,int border)功能:在圖形設(shè)備上用顏色border圍起來(lái)的區(qū)域?qū)⒂卯?dāng)前填充顏色填充。(x,y)是待填充區(qū)域的起點(diǎn),若起點(diǎn)在封閉區(qū)域內(nèi),則區(qū)域內(nèi)被填充;若起點(diǎn)在封閉區(qū)域外,則區(qū)域外被填充。頭文件:graphics.h函數(shù)35。floor()原形∶double floor(double num)功能∶求不大于num的最大雙精度整數(shù)頭文件∶math.h函數(shù)36。fnmerge()建立文件路徑函數(shù)原形:void fnmerge(char *path,const char *drive,const char *dir, const char *name,const char *ext)功能:合成drive:\dir\name.ext,放在path頭文件:dir.h函數(shù)37。fnsplit()分解完整的路徑名函數(shù)原形:int fnsplit(char *path,const char *drive,const char *dir,const char *name,const char *ext)功能:把文件名路徑path分成4個(gè)部分存放。 其中drive中有冒號(hào);dir中有開(kāi)始和結(jié)尾的反斜杠;ext包括開(kāi)始圓點(diǎn)返回值:如果有擴(kuò)展名,則 返回值EXTENSION!=0 如果有文件名,則 返回值FILENAME!=0 如果有目錄名,則 返回值DIRECTORY!=0 如果有驅(qū)動(dòng)器號(hào),則返回值DIRVE!=0頭文件:dir.h 函數(shù)38。fopen()打開(kāi)一個(gè)流函數(shù)原形:FILE *fopen(const char *filename,const char *mode)功能:打開(kāi)用filename指定的文件,并使其與一個(gè)流相聯(lián)。使用方式:文件指針名=fopen("文件名","處理方式") ”處理方式”取: "rt" 打開(kāi)一個(gè)文本文件,只能讀。 "wt" 生成一個(gè)文本文件,只能寫(xiě)。若文件存在則被重寫(xiě)。 "at" 打開(kāi)一個(gè)文本文件,只能在文件尾部添加。 "rb" 打開(kāi)一個(gè)二進(jìn)制文件,只能讀。 "wb" 生成一個(gè)二進(jìn)制文件,只能寫(xiě)。 "ab" 打開(kāi)一個(gè)二進(jìn)制文件,只能在文件尾部添加。 "rt+" 打開(kāi)一個(gè)文本文件,可讀可寫(xiě)。 "wt+" 生成一個(gè)文本文件,可讀可寫(xiě)。 "at+" 打開(kāi)一個(gè)文本文件,可讀可添加。 "rb+" 打開(kāi)一個(gè)二進(jìn)制文件,可讀可寫(xiě)。 "wb+" 生成一個(gè)二進(jìn)制文件,可讀可寫(xiě)。 "ab+" 打開(kāi)一個(gè)二進(jìn)制文件,可讀可添加。返回值:指明流的指針(成功時(shí))或NULL(失敗時(shí))注:需先定義 FILE *文件指針名; "文件名"若用 argv[1]代替,則可使用命令行形式指定文件名函數(shù)39。FP_OFF()獲取遠(yuǎn)地址偏移量的宏原形:unsigned FP_OFF(void far *p)功能:取得和設(shè)置遠(yuǎn)指針*p的偏移量返回值:偏移量頭文件:dos.h 函數(shù)40。fprintf()傳送輸出到一個(gè)流中的函數(shù)原形:int fprintf(FILE *stream,const char *format[,argument,...])功能:①向文件指針指向的文件輸出ASCⅡ代碼 ②向顯示器輸出錯(cuò)誤信息 使用形式: ①fprintf(文件指針,"輸出格式",輸出項(xiàng)系列); ②fprintf(stderr,"錯(cuò)誤信息");使用實(shí)例:fprintf(stream,"%d %c %f",i,c,f); 其中定義FILE *stream; int i; char c; float f;返回值:成功則返回輸出的字節(jié)數(shù),錯(cuò)誤則返回EOF。頭文件:stdio.h函數(shù)41。FP_SEG()獲取遠(yuǎn)地址段值的宏原形:unsigned FP_SEG(void far *p)功能:取得和設(shè)置遠(yuǎn)指針*p段地址值返回值:段地址值頭文件:dos.hfree()釋放已分配內(nèi)存的函數(shù)原形:void free(void *block)功能:釋放由calloc、malloc、realloc函數(shù)調(diào)用所分配的內(nèi)存。頭文件:stdlib.h、alloc.h函數(shù)42。fscanf()格式化輸入函數(shù)原形:int fscanf(FILE *stream,const char *format[,address,...])功能:從一個(gè)流中掃描輸入字段,一次掃描一個(gè)字符,每個(gè)輸入字段根據(jù)format所指格式指示符格式化后,把輸入字段存在format后面由地址參數(shù)給出的位置上。使用格式:fscanf(文件指針,"輸入格式",輸入項(xiàng)系列);使用實(shí)例:fscanf(fp,"%d",b); 從fp指向的文件中讀取十進(jìn)制整數(shù) (ASCⅡ形式)賦予變量b注:當(dāng)文件指針是stdin時(shí),與scanf功能完全相同頭文件:stdio.h函數(shù)43。fseek()移動(dòng)文件指針函數(shù)原形:int fseek(FILE *stream,long offset,int whence)作用:強(qiáng)制一個(gè)文件的位置指針指向某個(gè)特定的位置(甚至超出文件的尾部)。使用格式:fseek(*文件指針,偏移(長(zhǎng)整型),起點(diǎn)) 定義 FILE *文件指針名; "起點(diǎn)"取值: 0或SEEK_SET(表示文件開(kāi)頭) 1或SEEK_CUR(表示當(dāng)前位置) 2或SEEK_END(表示文件尾端)返回值:0表示成功,非0值表示失敗頭文件:stdio.h函數(shù)44。fwrite()把參數(shù)寫(xiě)入流中的函數(shù)原形:size_t fwrite(const void *ptr,size_t size,size_t n,FILE *stream)功能:附加n個(gè)數(shù)據(jù)項(xiàng)(每個(gè)數(shù)據(jù)項(xiàng)長(zhǎng)度為size個(gè)字節(jié))到指定的輸出文件后,數(shù)據(jù)從ptr處開(kāi)始添加。ptr是指向任意對(duì)象的指針。返回值:調(diào)用成功時(shí)返回實(shí)際寫(xiě)的數(shù)據(jù)項(xiàng)數(shù),出錯(cuò)時(shí)返回一短整形數(shù)值。頭文件:stdio.h例:fwrite(s,sizeof(s),1,stream); 其中s是一結(jié)構(gòu)變量,stream=fopen();函數(shù)45。gcvt()把雙精度數(shù)轉(zhuǎn)化成字符串的函數(shù)原形∶char*gcvt(value,ndigit,buf) 其中∶double value是待轉(zhuǎn)化數(shù) int ndigit是轉(zhuǎn)化長(zhǎng)度 char *buf保存轉(zhuǎn)化后的地址頭文件∶stdlib.h函數(shù)46。geninterrupt()執(zhí)行中斷函數(shù)原形:void geninterrupt(int n)調(diào)用方式:geninterrupt(軟中斷號(hào))功能:產(chǎn)生一個(gè)8086軟中斷注:需先向寄存器傳遞入口信息(用偽變量) 例如 偽變量=要賦的值(入口信息); 調(diào)用geninterrupt()函數(shù)后得接受出口信息 例如 變量名=偽變量偽變量∶Turbo C 允許使用偽變量直接訪問(wèn)相應(yīng)的8086寄存器。偽變量的類(lèi)型有兩種。 ① unsigned int : _AX、 _BX、 _CX、 _DX、 _CS、 _DS、 _SS、 _ES、_SP、 _BP、 _DI、 _SI ② unsigned char: _AL、 _AH、 _BL、 _BH、 _CL、 _CH、 _DL、 _DH函數(shù)47。getc()從流中取字符的宏原形:int getc(FILE *stream)功能:返回輸入流stream中一個(gè)字符,移動(dòng)文件指針使之指向下一個(gè)字符。使用格式:字符變量=getc(文件指針) (正常情況下讀取到代碼值,讀到文件尾或出錯(cuò)時(shí)返回EOF)注:需定義 char 字符變量;FILE *文件指針;頭文件:stdio.h函數(shù)48。getch()從鍵盤(pán)無(wú)回顯地讀取一字符的函數(shù)功能:將鍵盤(pán)上輸入的單個(gè)字符的值(ASCⅡ 碼)立刻賦給字符型變量調(diào)用方式:字符形變量=getch()注:需先定義 char 字符形變量;頭文件:conio.h函數(shù)49。getchar()從stdin流中讀取一個(gè)字符的函數(shù)功能:將鍵盤(pán)上輸入的單個(gè)字符的值(ASCⅡ 碼)回車(chē)后賦給字符型變量調(diào)用方式:字符型變量=getchar()注:需先定義 char 字符型變量;頭文件:stdio.h函數(shù)50。getcurdir()讀取指定驅(qū)動(dòng)器的當(dāng)前目錄的函數(shù)原形:int getcurdir(int drive,char directory) drive=0(缺省);1(A驅(qū)動(dòng)器);... directory用來(lái)存放目錄名,不包括驅(qū)動(dòng)器名,不以反斜杠開(kāi)始。返回值:0(調(diào)用成功);1(出錯(cuò))頭文件:dir.h函數(shù)61。getcwd()讀取當(dāng)前目錄的函數(shù)原形:char *getcwd(char *buf,int buflen)功能:讀取當(dāng)前目錄的完整路徑名(包括驅(qū)動(dòng)器名),最長(zhǎng)為buflen個(gè)字節(jié),存放在buf中。如果buf為NULL,函數(shù)將分配一個(gè)buflen字節(jié)長(zhǎng)的緩沖區(qū),以后可將本函數(shù)的返回值作為free函數(shù)的參數(shù)來(lái)釋放該緩沖區(qū)。返回值:若buf非空,調(diào)用成功返回buf,出錯(cuò)返回NULL;若buf為NULL,返回指向已經(jīng)分配的內(nèi)存緩沖區(qū)地址。頭文件:dir.h函數(shù)62。getdate()讀取系統(tǒng)日期函數(shù)原形:void getdate(pdate) struct date { int da_year; int da_day; int da_mon; }; struct date *pdate;頭文件:dos.h函數(shù)63。getdfree()讀取磁盤(pán)空閑空間的函數(shù)原形:void getdfree(drive,dtable) unsigned char drive;驅(qū)動(dòng)器號(hào)(0-當(dāng)前;1-A;2-B;...) struct dfree { unsigned df_avail;//可使用的簇?cái)?shù) unsigned df_total;//每個(gè)驅(qū)動(dòng)器的簇?cái)?shù) unsigned df_bsec;//每個(gè)扇區(qū)的字節(jié)數(shù) unsigned df_sclus;//每個(gè)簇的扇區(qū)數(shù)(出錯(cuò)時(shí)返回0xffff) }*dtable;功能:把由drive指定的關(guān)于驅(qū)動(dòng)器的信息返回到dtable函數(shù)64。getdisk()讀取當(dāng)前磁盤(pán)驅(qū)動(dòng)器號(hào)函數(shù)原形:int getdisk(void)功能:取得當(dāng)前驅(qū)動(dòng)器號(hào)(0=A;1=B;....)頭文件:dir.h函數(shù)65。getenv()讀取環(huán)境變量的當(dāng)前值的函數(shù)原形:char *getenv(const char *name)用法:s=getenv("環(huán)境變量名"); 需先定義char *s;功能:返回一給定的環(huán)境變量值,環(huán)境變量名可大寫(xiě)或小寫(xiě)。如果指定的變量在環(huán)境中未定義,則返回一空串。 頭文件:stdlib.h函數(shù)66。getimage()將指定區(qū)域的位圖象存入內(nèi)存的函數(shù)原形:void far getimage(int left,int top,int right,int bottom,void far *bitmap)功能:將圖像(矩形區(qū)域)從屏幕拷貝到內(nèi)存,*bitmap指向內(nèi)存中存放圖像的區(qū)域。該區(qū)域的前兩個(gè)字節(jié)用于存放矩形的高和寬。頭文件:graphics.h函數(shù)67。getmaxx()返回屏幕上最大的X坐標(biāo)值的函數(shù)原形:int far getmaxx(void)功能:返回當(dāng)前圖形驅(qū)動(dòng)程序和圖形模式下最大的X坐標(biāo)值。頭文件:graphics.h函數(shù)68。getmaxy()返回屏幕上最大的Y坐標(biāo)值的函數(shù)原形:int far getmaxy(void)功能:返回當(dāng)前圖形驅(qū)動(dòng)程序和圖形模式下最大的Y坐標(biāo)值。頭文件:graphics.h函數(shù)69。getpixel()讀取像素顏色的函數(shù)原形:unsigned far getpixel(int x,int y)頭文件:graphics.h函數(shù)70。getpsp()原形∶unsigned getpsp(void)功能∶使用DOS系統(tǒng)調(diào)用0x62,返回程序段前綴(PSP)的段地址頭文件∶dos.h函數(shù)71。gets()從標(biāo)準(zhǔn)輸入流stdio中讀取一字符串的函數(shù)功能:將鍵盤(pán)上輸入的字符串立刻賦予字符串變量并顯示出來(lái)調(diào)用方式:gets(字符串變量名)注:需定義 char *字符串變量名;函數(shù)72。gettime()讀取系統(tǒng)時(shí)間的函數(shù)原形:void gettime(ptime) struct time { unsigned char ti_min; unsigned char ti_hour; unsigned char ti_hund;//百分之一秒 unsigned char ti_sec; }; struct time *ptime;函數(shù)73。getvect()讀取中斷向量函數(shù)原形:void interrupt(*getvect(int interruptno))功能:讀入由interruptno(0-255之間)所指定的中斷向量值,并把該中斷向量值作

當(dāng)前名稱:像素放大函數(shù)c語(yǔ)言,函數(shù)圖像放大
當(dāng)前路徑:http://chinadenli.net/article47/dsehhhj.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站服務(wù)器托管網(wǎng)站營(yíng)銷(xiāo)建站公司商城網(wǎng)站網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)