fread和 fgets的區別

2021-04-09 10:42:31 字數 1428 閱讀 7323

fread

和fgets

的區別:

fread :

以位元組位計算長度

,按照指定的長度和次數讀取資料

,遇到結尾或完成指定長度讀取後停止

. fgets :

整行讀取

,遇到回車換行或結尾停止

.在文字方式時使用.

讀字串函式

fgets

函式的功能是從指定的檔案中讀乙個字串到字元陣列中,函式呼叫的形式為:

fgets(

字元陣列名,

n,檔案指標);

其中的n

是乙個正整數。表示從檔案中讀出的字串不超過

n-1個字元。在讀入的最後乙個字元後加上串結束標誌

'/0'

。例如:

fgets(str,n,fp);

的意義是從

fp所指的檔案中讀出

n-1個字元送入字元陣列

str中。(按行讀取)

fread

是用於整塊資料的讀寫函式

,可用來讀寫一組資料,如乙個陣列元素,乙個結構變數的值等。讀資料塊函式呼叫的一般形式為:

fread(buffer,size,count,fp),

其中buffer

是乙個指標,在

fread

函式中,它表示存放輸入資料的首位址。

size

表示資料塊的位元組數。

count

表示要讀寫的資料塊塊數。

fp 表示檔案指標。

例如:

fread(fa,4,5,fp); 其意義是從fp所指的檔案中,每次讀4個位元組(乙個實數)送入實陣列fa中,連續讀5次,即讀5個實數到fa中。

手冊裡說:

fputs

fputs -- fwrite() 的別名

說明本函式是 fwrite() 的別名。

fgets

(php 3, php 4 )

fgets -- 從檔案指標中讀取一行

說明string fgets ( int handle [, int length])

從 handle 指向的檔案中讀取一行並返回長度最多為 length - 1 位元組的字串。碰到換行符(包括在返回值中)、eof 或者已經讀取了 length - 1 位元組後停止(看先碰到那一種情況)。如果沒有指定 length,則預設為 1k,或者說 1024 位元組。

fread

(php 3, php 4 )

fread -- 讀取檔案(可安全用於二進位制檔案)

說明string fread ( int handle, int length)

fread() 從檔案指標 handle 讀取最多 length 個位元組。 該函式在讀取完 length 個位元組數,或到達 eof 的時候,或(對於網路流)當乙個包可用時就會停止讀取檔案,視乎先碰到哪種情況。

fread 和fgets 函式的使用

兩個函式都是對file fp 檔案進行讀取資訊,fgets是每次讀取一行,fread是一下子讀完所有的檔案內容。1 一 fread的使用 23 file fp 4int nread 5char buf 4096 6 fp fopen proc cpuinfo rb 7 nread fread buf...

關於fread與fgets之惑

今天本來是想模仿cp來寫一段複製檔案的 如下 這段 可以複製可執行檔案,但是不能複製文字 include include include include include define line max 1024 int main int argc,char argv struct tms tmp c...

fgets和gets的區別

在程式設計中發現gets 和fgets 一些區別總結一下 1 fgets比 gets 安全,使用 gets 編譯時會警告 為了安全,gets 少用,因為其沒有指定輸入字元的大小,限制輸入緩衝區得大小,如果輸入的字元大於定義的陣列長度,會發生記憶體越界,堆疊溢位。後果非常怕怕 fgets會指定大小,如...