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等的更多准备工作,请参阅“完整面试准备课程” 。