C語言fgetc 函式的返回值

2021-07-30 05:47:40 字數 845 閱讀 7985

c語言fgetc()函式的返回值

本文**:

學習c語言的,檔案操作,大都會用到它。

它的函式原型:

int fgetc(

file* stream

);這個函式的返回值,是返回讀取的乙個位元組。如果讀到檔案末尾返回eof。

eof其實就是乙個巨集

#define eof (-1)

表示-1.

既然返回的是乙個位元組,為什麼返回值確用4位元組的int表示,不用unsigned char這1個位元組型別表示,或直接

用char型別表示哪?

原因就是出在返回值要能表示-1.unsigned char表示無符號的,而這返回值,需要是-1才可以表示檔案

讀到末尾了,那可以char型別表示-1,但是-1在char型別中表示的值為0xff,然而它本身就是乙個位元組的內

容,如果檔案中的乙個位元組是0xff,難道就認為檔案結束,這是不合理的,用int作返回值,就不會出現這個問

題,-1用int表示為0xffffffff;而位元組值如果0xff這它返回的int值就會是0x000000ff,這樣就可以區別開位元組值為

0xff和檔案結束標識eof.

注:eof只是為了標識已經讀到檔案末尾,它並不是乙個儲存在檔案中的位元組。

因此,我們在寫程式時就不能寫如下的**:

[cpp]view plain

copy

print?

#include

void main()     

#includevoid main() 

c語言中fgetc 函式返回值的問題

fgetc返回值的型別 以 1 中的 為例 fgetc 返回型別為int,我們可以將其返回值賦給乙個int型別變數,如 1 中的 即使是遇到字元0xff blank的ascii碼,不是eof while迴圈也不會結束,因為0xff會被轉化0x000000ff,顯然這與0xffffffff eof 是...

C語言的函式返回值

一 背景 談到c語言的函式返回值,可能會感覺很親切,不就是乙個函式返回值嘛,當初學c語言的時候早就學過了很easy嘛,我曾經也是這麼想的。後來要上研究生了,研究生階段搞得就是c,所以又重新開始學習c,學習c的過程中遇到了很多問題,在此部落格中一一記錄。實際過程中遇到的第乙個問題自然就是函式返回值了。...

無返回值 C語言高階之路 函式 返回值!

c 語言的函式可以返回陣列以外 不包括陣列指標 的任何型別.不寫明返回型別,在以前的 c 語言版本中是預設返回 int,現在 c99 c 已不支援.void 表示沒有返回值,也就無須 return 語句 如果是其他語句必須有 return 語句.在 main 函式中 只是 main 函式 若忘掉 r...