getc();fgetc();getchar();gets();fgets();
函式標頭檔案:#include <stdio.h>
函式原型:
int fgetc(FILE *stream);
char *fgets(char *s, int size, FILE *stream);
int getc(FILE *stream);
int getchar(void);
char *gets(char *s);
函式說明:
fgetc() :從讀取檔案流中讀取下一個字元,並將其以無符號數返回,或者返回檔案末尾標誌或錯誤標誌。
unsigned char cast to an int,
getc() :和fgetc差不多,只是在讀取的時候會檢查檔案流。
getchar() :和getc(stdin)等效。
gets() :從stdin中讀取一行字串,直到一行結束或是到檔案末尾,字串以’\0’結尾。但是不會檢查是否有溢位。
fgets() :讀取少於size長度的字元,直到新的一行開始或是檔案結束,最後會在讀取的字串最後一個字元後加一個結束字元’\0’
返回值:
fgetc();getc() and getchar() 如果讀取成功返回的是讀取到的字元,並且將字元轉換為無符號數或是檔案末尾,讀取失敗則返回錯誤值。
gets() and fgets() 如果讀取成功返回的是讀取到的字元,無資料讀取或讀取錯誤返回NULL。
建議:
最好不要使用gets,因為它不檢測讀回來的資料長度是否超過自己所擁有的buff的長度,所以有可能會造成溢位。所以它的使用會造成程式的潛在隱患,會使程式不安全。可以是用fgets()來代替它。
相關文章
- C/C++輸入函式 scanf() gets() getline() cin.getline() cin.get() getchar()C++函式
- db block gets 與 consistent read getsBloC
- c語言中的getchar()和EOFC語言
- C語言——常用標準輸入輸出函式 scanf(), printf(), gets(), puts(), getchar(), putchar(); 字串拷貝函式 strcpy(), strncpy(), strchr(), strstr()函式用法特點C語言函式字串
- C語言關於指標,gets()和gets_s()函式的理解C語言指標函式
- Oracle一致性讀(consistents gets)Oracle
- [20190416]檢視shared latch gets的變化.txt
- [20210208][20200426]檢視shared latch gets的變化.txt
- 緩衝區溢位漏洞那些事:C -gets函式函式