fgetc

計算機語言中的函數

fgetc是一種計算機語言中的函數。意思是從文件指針stream指向的文件中讀取一個字元,讀取一個位元組后,游標位置后移一個位元組。格式:int fgetc(FILE *stream)。

簡介


內容說明:函數從輸入流stream的當前位置返回下一個字元,並將文件位置指示器增大。該字元作為一個無符號字元讀取,並被轉換成為一個整型值。
如果到了文件的結尾或遇到讀錯誤,將返回EOF。由於EOF是一個有效的整型值,當你操作二進位文件時,必須用feof函數進行文件結束檢測。同樣也必須使用ferror函數進行出錯檢查。
參考:fputc();getc();putc();fopen()。
fgetc()函數的功能是從文件指針指定的文件中讀入一個字元,該字元的ASCII值作為函數的返回值,若返回值為EOF,說明文件結束,EOF是文件結束標誌,值為-1。
語句“c=fgetc(fp);”是從文件指針fp指定的文件中讀一個字元並存人c變數中,c是字元型變數。使用fgetc()函數調用前,需要讀取的文件必須是以讀或讀/寫方式打開的,並且該文件應該已經存在。
讀操作的位置也是由文件內部位置指針來確定,對於已經存在的文件,文件被打開時,文件內部位置指針指向文件的第一個位元組。這時,調用fgetc()函數讀的是第一個位元組的字元,讀入一個位元組以後,位置指針將自動向後移動一個位元組,那麼再調用一次fgetc()函數,則讀取的是第2個字元。連續調用該函數就可以讀取文件的每個字元,並且可以使用EOF來判斷是否已經到了文件末尾。 

用法


這個函數的返回值,是返回所讀取的一個位元組。如果讀到文件末尾或者讀取出錯時返回EOF。雖然返回一個位元組,但返回值不為unsigned char的原因為,返回值要能表示-1(即為EOF)。

功能


從流水中讀取字元。
這個
這個函數的返回值,是返回所讀取的一個位元組。如果讀到文件末尾或者讀取出錯時返回EOF。
(雖然返回一個位元組,但返回值不為unsigned char的原因為,返回值要能表示-1(即為EOF)。)

程序例


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include  
#include  
#include <conio.h> 
int main(void) 
{
FILE *stream;
char string[ ] = "This is a test";
int ch; 
stream = fopen("DUMMY.FIL", "w+"); 
fwrite(string, strlen(string), 1, stream); 
 
fseek(stream, 0, SEEK_SET);
do
{
ch = fgetc(stream);
putch(ch);
while (ch != EOF);
fclose(stream);
return 0;
}

Linux C


相關函數

open,fread,fscanf,getc
getc()
功能:函數從流中返回一個字元值。語法:int getc(FILE * stream) 返回值:整數值。函數種類:“stdio.h”內容說明:此函數和fgetc函數相似,但它是以一個宏來實現的。另外它將不止一次地計算流參數卡,這對通常的宏的規則來說是一個例外。getc是一個已經高度優化的函數,所以該函數是進行單個字元讀操作的最好的函數。參考:如fputc();fgetc();putc();fopen()。
功能:將字元串中的內容寫到指定的流中。語法: int fputs(const char *s,FILE * stream) 返回值:整數值。函數種類:“stdio.h”內容說明:函數將字元串指針s所指向的字元串中的內容寫到流stream中。標誌結束的空字元(NULL)不寫。函數也不另外增加一個換行符。只是輸出字元串中的所有字元。函數操作成功時返回值為0,否則返回非0值。如果流程是以文本形式打開的,就會對有些字元進行翻譯操作。這意味著字元串可能會與文件內容之間沒有一一對應的映射關係。然而,當文件以二進位打開時,不發生字元翻譯,在字元串與文件內容之間存在一一對應的映射關係。

表頭文件

include

定義函數

int fgetc(FILE*stream);

函數說明

fgetc()從參數stream所指的文件中讀取一個字元,並把它作為一個字元返回。若讀到文件尾或出現錯誤時,它就返回EOF,你必須通過ferrorfeof來區分這兩種情況。

返回值

fgetc()會返回讀取到的字元,若返回EOF則表示到了文件尾,或出現了錯誤。