(轉載)C語言中常用的幾個標頭檔案及庫函式 (stdio.h ,string.h ,math.h ,stdlib.h)
不完全統計,C語言標準庫中的標頭檔案有15個之多,所以我主要介紹常用的這四個標頭檔案stdio.h ,string.h ,math.h ,stdlib.h ,以後用到其他的再做補充。下面上乾貨:
1.<stdio.h>:定義了輸入輸出函式、型別以及巨集,函式幾乎佔了標準庫的1/3。
(1)檔案訪問。
1 |
|
以mode模式開啟地址為'filename'的檔案,並返回檔案指標。
訪問模式主要是“r”:只讀; “w” :只寫,並刪除已有內容; “a”:追加,在末尾追加;
“r+”, “w+”:讀寫; “a+”追加,上述結尾加“b”:二進位制檔案操作。
注意:其中r是開啟檔案,而w會建立(如果檔案不存在); w會覆蓋原有內容,a則是在原有檔案末尾追加。
1 |
|
釋放緩衝區資料,關閉流。
下面兩個沒太用過:
1 |
|
以mode模式開啟地址為'filename'的檔案,並將該檔案與流f2關聯。
1 |
|
將已寫到緩衝區但未寫入檔案中的所有資料寫入檔案中。
(2)
1 |
|
從f中讀取n個長度為size的物件,並放入ptr指向的陣列中。
1 |
|
從ptr指向陣列中讀取n個長度為size的物件,並寫入f中。
注意:要注意write與read的物件,讀和寫都是針對檔案流f的。
(3)非格式化輸入/輸出
1 |
|
返回流f的下一個字元,到達檔案末尾/發生錯誤,則返回EOF。
1 |
|
將字元c輸入到流f中。
1 |
|
將f中下n-1個字元讀入到陣列s中。遇到換行符,則終止。
1 |
|
將字串s輸出到流中。
1 |
|
將c寫回到f中。
(4)格式化輸入/輸出
按一定格式轉輸出。
1 2 |
|
注意:不加f/s,則是格式字串標準輸入/出函式,輸入/出到終端/螢幕;printf(const char *format,...)
加s,輸入/出到字串中。sprintf(char *s,const char *format,...)
加f,輸入/出到檔案流中。 fprintf(FILE *f,const char *format,...)
(5)檔案定位
1 |
|
返回當前指標位置。錯誤時返回-1L。
1 |
|
將當前流f指標位置設定到:origin後offset個字元處。origin有:SEEK_SET:檔案起始位置;SEEK_CUR指標當前位置,SEEK_END:檔案結束位置。
1 |
|
指標返回檔案開始位置,相當於:fseek(f,0L,SEEK_SET)
不常用:
1 |
|
將指標當前位置記錄到*p中,以供fsetpos函式使用。
1 |
|
指標位置指向*p。
(6)錯誤處理與檔案操作
1 |
|
指示檔案結束,一直返回0,結束時返回非0值。
1 |
|
如果設定了與f相關的錯誤指示符,則返回一個非0值。
1 |
|
刪除指定位置的檔案。
1 |
|
改檔名,否則返回非0值。
1 |
|
建立臨時檔案,‘wb+'模式,在被關閉或程式正常結束時自動刪除
2.<string.h> 分成兩組,一組str開頭,一組mem開頭(該組函式在<memory.h>中也有定義,不是所有編譯器都有)
(1)str
1 |
|
將字串src複製到字串dest中(包括'\0'),返回dest
1 |
|
將src中的前n個字元複製到dest中,返回dest,不夠n個則補‘\0'
1 2 |
|
src連線到dest後;src 中前n個字元連線到dest後。
1 2 3 4 |
|
不常見 size_t strcspn (const char *s1, const char *s2); char * strdup (const char *s); char * strerror(int errnum);
(2)mem
1 |
|
將字串ct中的前n個字元拷貝到s中,並返回s。
1 2 |
|
void *memset(void *s, int c, size_t n);
函式解釋:將s中當前位置後面的n個位元組 (typedef unsigned int size_t )用 c 替換並返回 s 。
memset:作用是在一段記憶體塊中填充某個給定的值,它是對較大的結構體或陣列進行清零操作的一種最快方法 [1]。
memset()函式原型是extern void *memset(void *buffer, int c, int count) buffer:為指標或是陣列,c:是賦給buffer的值,count:是buffer的長度
將s中的前n個字元替換成c,並返回s。
1 |
|
將cs前n個字元與ct進行比較,cs<ct,返回負數;否則返回0
1 |
|
返回指向c在cs中第一次出現的位置指標。
3.<math.h>一些數學函式
求絕對值
1 2 3 |
|
所有返回值均為double,三角函式角度用弧度表示,x,y均為double
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
4.<stdlib.h>數值轉換、記憶體分配等問題。
1 |
|
產生一個0~32767之間的隨機整數。
指標名=(資料型別 *)calloc(n,size)
分配n個長度為size的連續空間,並且將所有元素置零,返回首地址。
指標名=(資料型別 *)malloc(n*size)
分配n*size個位元組的記憶體,並返回首地址。
指標名p1=(資料型別 *)realloc(要改變記憶體大小的指標名p2,新的大小n)
分配長度為n位元組的空間,將p2值賦值到該記憶體中,返回首地址到p1.(改變p1指向地址的記憶體大小)
1 |
|
釋放p指向的記憶體(p為malloc,realloc,calloc所開闢的記憶體)
1 |
|
使程式非正常終止。
1 |
|
使程式正常終止。
總結
以上所述是小編給大家介紹的C語言中常用的幾個標頭檔案及庫函式,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對指令碼之家網站的支援!