国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C語言中常用的幾個頭文件及庫函數

2020-05-23 13:41:37
字體:
來源:轉載
供稿:網友

不完全統計,C語言標準庫中的頭文件有15個之多,所以我主要介紹常用的這四個頭文件stdio.h,string.h,math.h,stdlib.h,以后用到其他的再做補充。下面上干貨:

1.<stdio.h>:定義了輸入輸出函數、類型以及宏,函數幾乎占了標準庫的1/3。

(1)文件訪問。

FILE *fopen(“filename”,“mode”):

以mode模式打開地址為'filename'的文件,并返回文件指針。

訪問模式主要是“r”:只讀;   “w” :只寫,并刪除已有內容;  “a”:追加,在末尾追加;

 “r+”, “w+”:讀寫; “a+”追加,上述結尾加“b”:二進制文件操作。

注意:其中r是打開文件,而w會創建(如果文件不存在);  w會覆蓋原有內容,a則是在原有文件末尾追加。

int fclose(FILE *f):

釋放緩沖區數據,關閉流。

下面兩個沒太用過:

FILE *freopen(“filename”,“mode”,FILE * f):

以mode模式打開地址為'filename'的文件,并將該文件與流f2關聯。

int fflush(FILE *f):

將已寫到緩沖區但未寫入文件中的所有數據寫入文件中。

(2)二進制輸入/輸出

fread(*ptr,size,n,FILE* f):

從f中讀取n個長度為size的對象,并放入ptr指向的數組中。

fwrite(*ptr,size,n,FILE* f):

從ptr指向數組中讀取n個長度為size的對象,并寫入f中。

注意:要注意write與read的對象,讀和寫都是針對文件流f的。

(3)非格式化輸入/輸出

int fgetc/getc(FILE *f):

返回流f的下一個字符,到達文件末尾/發生錯誤,則返回EOF。

int fputc/putc(int c, FILE *f)

將字符c輸入到流f中。

int fgets(char * s,int n,FILE *f):

將f中下n-1個字符讀入到數組s中。遇到換行符,則終止。

int fputs(const char * s,FILE *f):

將字符串s輸出到流中。

int unget(int c, FILE *f)

將c寫回到f中。

(4)格式化輸入/輸出

按一定格式轉輸出。

 

scanf/fscanf/sscanfprintf/fprintf/sprintf

注意:不加f/s,則是格式字符串標準輸入/出函數,輸入/出到終端/屏幕;printf(const char *format,...)

加s,輸入/出到字符串中。sprintf(char *s,const char *format,...)

加f,輸入/出到文件流中。  fprintf(FILE *f,const char *format,...)

(5)文件定位

long ftell(FILE *f):

返回當前指針位置。錯誤時返回-1L。

int fseek(FILE *f,long offset,int origin):

將當前流f指針位置設置到:origin后offset個字符處。origin有:SEEK_SET:文件起始位置;SEEK_CUR指針當前位置,SEEK_END:文件結束位置。

void rewind(FILE *f)

指針返回文件開始位置,相當于:fseek(f,0L,SEEK_SET)

不常用:

int fgetpos(FILE *f,*p)

將指針當前位置記錄到*p中,以供fsetpos函數使用。

int fsetpos(FILE *f,const *p)

指針位置指向*p。

(6)錯誤處理與文件操作

int feof(FILE *f)

指示文件結束,一直返回0,結束時返回非0值。

int ferror(FILE *f)

如果設置了與f相關的錯誤指示符,則返回一個非0值。

int remove(char *filename)

刪除指定位置的文件。

int rename(const char *oldname,const char *newname)

改文件名,否則返回非0值。

FILE *tmpfile(void)

建立臨時文件,‘wb+'模式,在被關閉或程序正常結束時自動刪除

2.<string.h> 分成兩組,一組str開頭,一組mem開頭(該組函數在<memory.h>中也有定義,不是所有編譯器都有)

(1)str

char * strcpy (char *dest, const char *src);

將字符串src復制到字符串dest中(包括'/0'),返回dest

char * strncpy (char *dest, const char *src,n);

將src中的前n個字符復制到dest中,返回dest,不夠n個則補‘/0'

char * strcat (char *dest, const char *src);char * strncat (char *dest, const char *src,n);

src連接到dest后;src 中前n個字符連接到dest后。

int  strcmp (const char *s1, const char *s2);int  strncmp (const char *s1, const char *s2,n); 比較s1與s2,s1<s2則返回負數,否則返回0;比較前n個字符char * strchr (const char *s, int c);char * strrchr (const char *s, int c); 返回字符串s中第一次出現字符c的位置指針;返回字符串s中最后一次出現字符c的位置指針(c會轉換成char)

不常見 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個字符拷貝到s中,并返回s。

void *memmove(s,ct,n)同上一函數,只是在對象重疊時仍能正確執行。void *memset(void *s,int c, n)

將s中的前n個字符替換成c,并返回s。

int memcmp(cs,ct,n)

將cs前n個字符與ct進行比較,cs<ct,返回負數;否則返回0

void *memchr(cs,c,n)

返回指向c在cs中第一次出現的位置指針。

3.<math.h>一些數學函數

求絕對值

int abs  (int x);long labs (long x);float fabs (float x):

所有返回值均為double,三角函數角度用弧度表示,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);//注意返回值類型為雙精度型double sqrt (x);double ceil (x):   不小于x的最小整型數(向上取整)double floor (x):  不大于x的最大整型數(向下取整)double exp  (x);double fabs (x);double log  (x):     ln(x)double log10 (x);double fmod (x, y):    x/y的余數double ldexp (x, n):         x*2^ndouble modf (x, double *ip):   將x分成整數與小數兩部分,返回小數部分,整數部分放在*ip中double frexp (x, int *exp);    將x分成(0.5,1)之間的一個真分數和一個2的冪數,返回真分數,冪數放在exp中

4.<stdlib.h>數值轉換、內存分配等問題。

int rand(void)

產生一個0~32767之間的隨機整數。

指針名=(數據類型  *)calloc(n,size)

分配n個長度為size的連續空間,并且將所有元素置零,返回首地址。

指針名=(數據類型  *)malloc(n*size)

分配n*size個字節的內存,并返回首地址。

指針名p1=(數據類型  *)realloc(要改變內存大小的指針名p2,新的大小n)

分配長度為n字節的空間,將p2值賦值到該內存中,返回首地址到p1.(改變p1指向地址的內存大小)

void free(*p)

釋放p指向的內存(p為malloc,realloc,calloc所開辟的內存)

void abort (void)

使程序非正常終止。

void exit(int status)

使程序正常終止。

總結

以上所述是小編給大家介紹的C語言中常用的幾個頭文件及庫函數,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乡宁县| 尉犁县| 清流县| 集安市| 资阳市| 上犹县| 会理县| 盱眙县| 孟连| 万荣县| 团风县| 怀远县| 加查县| 榆树市| 商都县| 竹溪县| 如东县| 东乡族自治县| 滁州市| 丘北县| 高密市| 临江市| 天全县| 泰州市| 高唐县| 富川| 上虞市| 隆昌县| 德格县| 迭部县| 稻城县| 安丘市| 南阳市| 静宁县| 泽库县| 西乌珠穆沁旗| 札达县| 凌海市| 宜黄县| 雷山县| 新晃|