fgetc與fputc函數

fgetc函數從指定的文件中讀一個字節getchar從標準輸入讀一個字節,調用getchar()相當於調用fgetc(stdin)

#include <stdio.h>
 
int fgetc(FILE *stream);
int getchar(void);
返回值:成功返回讀到的字節,出錯或者讀到文件末尾時返回EOF

 

 

fputc函數向指定的文件寫一個字節putchar向標準輸出寫一個字節,調用putchar(c)相當於調用fputc(c, stdout)

#include <stdio.h>

 

int fputc(int c, FILE *stream);

int putchar(int c);

返回值:成功返回寫入的字節,出錯返回EOF

 

 

 

fgets從指定的文件中讀一行字符到調用者提供的緩衝區中,gets從標準輸入讀一行字符到調用者提供的緩衝區中。

#include <stdio.h>
 
char *fgets(char *s, int size, FILE *stream);
char *gets(char *s);
返回值:成功時s指向哪返回的指針就指向哪,出錯或者讀到文件末尾時返回NULL

 

 

 

 

 

fgets函數,參數s是緩衝區的首地址,size是緩衝區的長度,該函數從stream所指的文件中讀取以'\n'結尾的一行(包括'\n'在內)存到緩衝區s中,並且在該行末尾添加一個'\0'組成完整的字符串。

如果文件中的一行太長,fgets從文件中讀了size-1個字符還沒有讀到'\n',就把已經讀到的size-1個字符和一個'\0'字符存入緩衝區,文件中剩下的半行可以在下次調用fgets時繼續讀。

如果一次fgets調用在讀入若干個字符後到達文件末尾,則將已讀到的字符串加上'\0'存入緩衝區並返回,如果再次調用fgets則返回NULL,可以據此判斷是否讀到文件末尾。

fgets只適合讀文本文件而不適合讀二進制文件,並且文本文件中的所有字符都應該是可見字符,不能有'\0'

 

 

fputs向指定的文件寫入一個字符串,puts向標準輸出寫入一個字符串。

#include <stdio.h>
 
int fputs(const char *s, FILE *stream);
int puts(const char *s);
返回值:成功返回一個非負整數,出錯返回EOF

緩衝區s中保存的是以'\0'結尾的字符串,fputs將該字符串寫入文件stream,但並不寫入結尾的'\0'。與fgets不同的是,fputs並不關心的字符串中的'\n'字符,字符串中可以有'\n'也可以沒有'\n'puts將字符串s寫到標準輸出(不包括結尾的'\0'),然後自動寫一個'\n'到標準輸出。

發佈了11 篇原創文章 · 獲贊 35 · 訪問量 32萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章