當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C++ fread()用法及代碼示例


C++中的fread()函數從流中讀取數據塊。首先,此函數從給定的輸入流中讀取對象的計數,每個對象的大小為字節大小。
讀取的總字節數(如果成功)為(size * count)。根據號。讀取字符數後,指標文件的位置將增加。如果讀取的對象不是簡單的copy-able,則行為是不確定的,並且如果size或count的值等於零,則此程序將簡單地返回0。

用法:

size_t fread(void * buffer, size_t size, size_t count, FILE * stream)

參數:該函數接受四個強製性參數,如下所述:


  • buffer:它以至少(size * count)個字節的大小指定指向內存塊的指針以存儲對象。
  • size:它指定每個對象的大小(以字節為單位)。 size_t是無符號整數類型。
  • count:它指定元素的數量,每個元素的大小為字節大小。
  • stream:它指定要從中讀取數據的文件流。

返回值:該函數返回成功讀取的對象數。如果發生錯誤,則返回值可以小於count。

以下示例程序旨在說明上述函數:
示例1:

// C++ program to illustrate fread() function 
#include <bits/stdc++.h> 
#include <cstdio> 
using namespace std; 
  
int main() 
{ 
    FILE* file_; 
    char buffer[100]; 
    file_ = fopen("g4g.txt", "aman"); 
    while (!feof(file_)) // to read file 
    { 
        // fucntion used to read the contents of file 
        fread(buffer, sizeof(buffer), 1, file_); 
        cout << buffer; 
    } 
    return 0; 
}

假設文件g4g.txt包含以下數據:

Geeks : DS-ALgo 
Gfg : DP 
Contribute : writearticle 

然後,當您運行程序時,輸出將是

Harry Potter : Specs
Hermione : Smart
Weasley : FlyingCar
Dumbledore : Wand

示例2:

// C++ program t illustrate fread() function 
// when file's size or count is equal to 0 
#include <bits/stdc++.h> 
#include <cstdio> 
using namespace std; 
  
int main() 
{ 
    FILE* file_; 
    char buffer[100]; 
  
    file_ = fopen("g4g.txt", "aman"); 
    cout << "count = 0, return value = " <<  
    fread(buffer, sizeof(buffer), 0, file_); 
    cout << "\nsize = 0, return value = " <<  
    fread(buffer, 0, 1, file_) << endl; 
    return 0; 
}
輸出:
count = 0, return value = 0
size = 0, return value = 0


相關用法


注:本文由純淨天空篩選整理自AmanSrivastava1大神的英文原創作品 fread() function in C++。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。