📜  C++中的fread()函数

📅  最后修改于: 2021-05-30 06:51:37             🧑  作者: Mango

C++中的fread()函数从流中读取数据块。此函数首先从给定的输入流中读取对象的计数,每个对象的大小为字节大小。
如果成功读取的字节总数为(size * count)。根据号。读取字符,指标文件的位置将增加。如果读取的对象不是平凡的可复制对象,则行为是不确定的,并且如果size或count的值等于零,则此程序将简单地返回0。
句法 :

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

参数:该函数接受四个强制性参数,如下所述:

  • 缓冲区:它指定指向内存块的指针,该内存块的大小至少为(size * count)个字节以存储对象。
  • size:以字节为单位指定每个对象的大小。 size_t是无符号整数类型。
  • count:指定元素的数量,每个元素的大小为字节大小。
  • stream:它指定要从中读取数据的文件流。

返回值:该函数返回成功读取的对象数。如果发生错误,则返回值可以小于计数。
下面的程序说明了上述函数:
程序1:

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


CPP
// C++ program to illustrate fread() function
// when file's size or count is equal to 0
#include 
#include 
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;
}


假设文件g4g.txt包含以下数据:

Geeks : DS-ALgo 
Gfg : DP 
Contribute : writearticle 

然后,当您运行程序时,输出将是

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

程序2:

CPP

// C++ program to illustrate fread() function
// when file's size or count is equal to 0
#include 
#include 
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
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”