当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。