您好,登錄后才能下訂單哦!
這篇文章主要講解了“C語言常用的頭文件有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“C語言常用的頭文件有哪些”吧!
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/sscanf printf/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^n double 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語言常用的頭文件有哪些”的內容了,經過本文的學習后,相信大家對C語言常用的頭文件有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。