C語(yǔ)言中常用的幾個(gè)頭文件及庫(kù)函數(shù)
不完全統(tǒng)計(jì),C語(yǔ)言標(biāo)準(zhǔn)庫(kù)中的頭文件有15個(gè)之多,所以我主要介紹常用的這四個(gè)頭文件stdio.h,string.h,math.h,stdlib.h,以后用到其他的再做補(bǔ)充。下面上干貨:
1.<stdio.h>:定義了輸入輸出函數(shù)、類(lèi)型以及宏,函數(shù)幾乎占了標(biāo)準(zhǔn)庫(kù)的1/3。
(1)文件訪(fǎng)問(wèn)。
FILE *fopen(“filename”,“mode”):
以mode模式打開(kāi)地址為'filename'的文件,并返回文件指針。
訪(fǎng)問(wèn)模式主要是“r”:只讀; “w” :只寫(xiě),并刪除已有內(nèi)容; “a”:追加,在末尾追加;
“r+”, “w+”:讀寫(xiě); “a+”追加,上述結(jié)尾加“b”:二進(jìn)制文件操作。
注意:其中r是打開(kāi)文件,而w會(huì)創(chuàng)建(如果文件不存在); w會(huì)覆蓋原有內(nèi)容,a則是在原有文件末尾追加。
int fclose(FILE *f):
釋放緩沖區(qū)數(shù)據(jù),關(guān)閉流。
下面兩個(gè)沒(méi)太用過(guò):
FILE *freopen(“filename”,“mode”,F(xiàn)ILE * f):
以mode模式打開(kāi)地址為'filename'的文件,并將該文件與流f2關(guān)聯(lián)。
int fflush(FILE *f):
將已寫(xiě)到緩沖區(qū)但未寫(xiě)入文件中的所有數(shù)據(jù)寫(xiě)入文件中。
(2)二進(jìn)制輸入/輸出
fread(*ptr,size,n,F(xiàn)ILE* f):
從f中讀取n個(gè)長(zhǎng)度為size的對(duì)象,并放入ptr指向的數(shù)組中。
fwrite(*ptr,size,n,F(xiàn)ILE* f):
從ptr指向數(shù)組中讀取n個(gè)長(zhǎng)度為size的對(duì)象,并寫(xiě)入f中。
注意:要注意write與read的對(duì)象,讀和寫(xiě)都是針對(duì)文件流f的。
(3)非格式化輸入/輸出
int fgetc/getc(FILE *f):
返回流f的下一個(gè)字符,到達(dá)文件末尾/發(fā)生錯(cuò)誤,則返回EOF。
int fputc/putc(int c, FILE *f)
將字符c輸入到流f中。
int fgets(char * s,int n,F(xiàn)ILE *f):
將f中下n-1個(gè)字符讀入到數(shù)組s中。遇到換行符,則終止。
int fputs(const char * s,F(xiàn)ILE *f):
將字符串s輸出到流中。
int unget(int c, FILE *f)
將c寫(xiě)回到f中。
(4)格式化輸入/輸出
按一定格式轉(zhuǎn)輸出。
scanf/fscanf/sscanf printf/fprintf/sprintf
注意:不加f/s,則是格式字符串標(biāo)準(zhǔn)輸入/出函數(shù),輸入/出到終端/屏幕;printf(const char *format,...)
加s,輸入/出到字符串中。sprintf(char *s,const char *format,...)
加f,輸入/出到文件流中。 fprintf(FILE *f,const char *format,...)
(5)文件定位
long ftell(FILE *f):
返回當(dāng)前指針位置。錯(cuò)誤時(shí)返回-1L。
int fseek(FILE *f,long offset,int origin):
將當(dāng)前流f指針位置設(shè)置到:origin后offset個(gè)字符處。origin有:SEEK_SET:文件起始位置;SEEK_CUR指針當(dāng)前位置,SEEK_END:文件結(jié)束位置。
void rewind(FILE *f)
指針?lè)祷匚募_(kāi)始位置,相當(dāng)于:fseek(f,0L,SEEK_SET)
不常用:
int fgetpos(FILE *f,*p)
將指針當(dāng)前位置記錄到*p中,以供fsetpos函數(shù)使用。
int fsetpos(FILE *f,const *p)
指針位置指向*p。
(6)錯(cuò)誤處理與文件操作
int feof(FILE *f)
指示文件結(jié)束,一直返回0,結(jié)束時(shí)返回非0值。
int ferror(FILE *f)
如果設(shè)置了與f相關(guān)的錯(cuò)誤指示符,則返回一個(gè)非0值。
int remove(char *filename)
刪除指定位置的文件。
int rename(const char *oldname,const char *newname)
改文件名,否則返回非0值。
FILE *tmpfile(void)
建立臨時(shí)文件,‘wb+'模式,在被關(guān)閉或程序正常結(jié)束時(shí)自動(dòng)刪除
2.<string.h> 分成兩組,一組str開(kāi)頭,一組mem開(kāi)頭(該組函數(shù)在<memory.h>中也有定義,不是所有編譯器都有)
(1)str
char * strcpy (char *dest, const char *src);
將字符串src復(fù)制到字符串dest中(包括'\0'),返回dest
char * strncpy (char *dest, const char *src,n);
將src中的前n個(gè)字符復(fù)制到dest中,返回dest,不夠n個(gè)則補(bǔ)‘\0'
char * strcat (char *dest, const char *src); char * strncat (char *dest, const char *src,n);
src連接到dest后;src 中前n個(gè)字符連接到dest后。
int strcmp (const char *s1, const char *s2); int strncmp (const char *s1, const char *s2,n); 比較s1與s2,s1<s2則返回負(fù)數(shù),否則返回0;比較前n個(gè)字符 char * strchr (const char *s, int c); char * strrchr (const char *s, int c); 返回字符串s中第一次出現(xiàn)字符c的位置指針;返回字符串s中最后一次出現(xiàn)字符c的位置指針(c會(huì)轉(zhuǎn)換成char)
不常見(jiàn) size_t strcspn (const char *s1, const char *s2); char * strdup (const char *s); char * strerror(int errnum);
(2)mem
void *memcpy(void *s, const void *ct,n)
將字符串ct中的前n個(gè)字符拷貝到s中,并返回s。
void *memmove(s,ct,n)同上一函數(shù),只是在對(duì)象重疊時(shí)仍能正確執(zhí)行。 void *memset(void *s,int c, n)
將s中的前n個(gè)字符替換成c,并返回s。
int memcmp(cs,ct,n)
將cs前n個(gè)字符與ct進(jìn)行比較,cs<ct,返回負(fù)數(shù);否則返回0
void *memchr(cs,c,n)
返回指向c在cs中第一次出現(xiàn)的位置指針。
3.<math.h>一些數(shù)學(xué)函數(shù)
求絕對(duì)值
int abs (int x); long labs (long x); float fabs (float x):
所有返回值均為double,三角函數(shù)角度用弧度表示,x,y均為double
double acos (x); double asin (x); double atan (x); double atan2 (y, x): arctan(y/x) double tan (x); double tanh (x): 雙曲正切 double sin (x); double sinh (x); double cos (x); double cosh (x); double pow (x, y);//注意返回值類(lèi)型為雙精度型 double sqrt (x); double ceil (x): 不小于x的最小整型數(shù)(向上取整) double floor (x): 不大于x的最大整型數(shù)(向下取整) double exp (x); double fabs (x); double log (x): ln(x) double log10 (x); double fmod (x, y): x/y的余數(shù) double ldexp (x, n): x*2^n double modf (x, double *ip): 將x分成整數(shù)與小數(shù)兩部分,返回小數(shù)部分,整數(shù)部分放在*ip中 double frexp (x, int *exp); 將x分成(0.5,1)之間的一個(gè)真分?jǐn)?shù)和一個(gè)2的冪數(shù),返回真分?jǐn)?shù),冪數(shù)放在exp中
4.<stdlib.h>數(shù)值轉(zhuǎn)換、內(nèi)存分配等問(wèn)題。
int rand(void)
產(chǎn)生一個(gè)0~32767之間的隨機(jī)整數(shù)。
指針名=(數(shù)據(jù)類(lèi)型 *)calloc(n,size)
分配n個(gè)長(zhǎng)度為size的連續(xù)空間,并且將所有元素置零,返回首地址。
指針名=(數(shù)據(jù)類(lèi)型 *)malloc(n*size)
分配n*size個(gè)字節(jié)的內(nèi)存,并返回首地址。
指針名p1=(數(shù)據(jù)類(lèi)型 *)realloc(要改變內(nèi)存大小的指針名p2,新的大小n)
分配長(zhǎng)度為n字節(jié)的空間,將p2值賦值到該內(nèi)存中,返回首地址到p1.(改變p1指向地址的內(nèi)存大?。?/p>
void free(*p)
釋放p指向的內(nèi)存(p為malloc,realloc,calloc所開(kāi)辟的內(nèi)存)
void abort (void)
使程序非正常終止。
void exit(int status)
使程序正常終止。
總結(jié)
以上所述是小編給大家介紹的C語(yǔ)言中常用的幾個(gè)頭文件及庫(kù)函數(shù),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)我們網(wǎng)站的支持!
上一篇:c++實(shí)現(xiàn)跳躍表(Skip List)的方法示例
欄 目:C語(yǔ)言
下一篇:C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
本文標(biāo)題:C語(yǔ)言中常用的幾個(gè)頭文件及庫(kù)函數(shù)
本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/1156.html
您可能感興趣的文章
- 04-02c語(yǔ)言函數(shù)調(diào)用后清空內(nèi)存 c語(yǔ)言調(diào)用函數(shù)刪除字符
- 04-02c語(yǔ)言的正則匹配函數(shù) c語(yǔ)言正則表達(dá)式函數(shù)庫(kù)
- 04-02func函數(shù)+在C語(yǔ)言 func函數(shù)在c語(yǔ)言中
- 04-02c語(yǔ)言中對(duì)數(shù)函數(shù)的表達(dá)式 c語(yǔ)言中對(duì)數(shù)怎么表達(dá)
- 04-02c語(yǔ)言用函數(shù)寫(xiě)分段 用c語(yǔ)言表示分段函數(shù)
- 04-02c語(yǔ)言編寫(xiě)函數(shù)冒泡排序 c語(yǔ)言冒泡排序法函數(shù)
- 04-02c語(yǔ)言沒(méi)有round函數(shù) round c語(yǔ)言
- 04-02c語(yǔ)言分段函數(shù)怎么求 用c語(yǔ)言求分段函數(shù)
- 04-02C語(yǔ)言中怎么打出三角函數(shù) c語(yǔ)言中怎么打出三角函數(shù)的值
- 04-02c語(yǔ)言調(diào)用函數(shù)求fibo C語(yǔ)言調(diào)用函數(shù)求階乘


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹(shù)的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問(wèn)題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 04-02c語(yǔ)言函數(shù)調(diào)用后清空內(nèi)存 c語(yǔ)言調(diào)用
- 04-02func函數(shù)+在C語(yǔ)言 func函數(shù)在c語(yǔ)言中
- 04-02c語(yǔ)言的正則匹配函數(shù) c語(yǔ)言正則表達(dá)
- 04-02c語(yǔ)言用函數(shù)寫(xiě)分段 用c語(yǔ)言表示分段
- 04-02c語(yǔ)言中對(duì)數(shù)函數(shù)的表達(dá)式 c語(yǔ)言中對(duì)
- 04-02c語(yǔ)言編寫(xiě)函數(shù)冒泡排序 c語(yǔ)言冒泡排
- 04-02c語(yǔ)言沒(méi)有round函數(shù) round c語(yǔ)言
- 04-02c語(yǔ)言分段函數(shù)怎么求 用c語(yǔ)言求分段
- 04-02C語(yǔ)言中怎么打出三角函數(shù) c語(yǔ)言中怎
- 04-02c語(yǔ)言調(diào)用函數(shù)求fibo C語(yǔ)言調(diào)用函數(shù)求
隨機(jī)閱讀
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 01-11Mac OSX 打開(kāi)原生自帶讀寫(xiě)NTFS功能(圖文
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子
- 01-10C#中split用法實(shí)例總結(jié)
- 01-10delphi制作wav文件的方法
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 01-10SublimeText編譯C開(kāi)發(fā)環(huán)境設(shè)置
- 04-02jquery與jsp,用jquery