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
相關用法
- C++ fma()用法及代碼示例
- C++ log()用法及代碼示例
- C++ div()用法及代碼示例
- C++ unordered_map end( )用法及代碼示例
- C++ array get()用法及代碼示例
- C++ array at()用法及代碼示例
- C++ exp2()用法及代碼示例
- C++ feupdateenv()用法及代碼示例
- C++ raise()用法及代碼示例
- C++ strcspn()用法及代碼示例
注:本文由純淨天空篩選整理自AmanSrivastava1大神的英文原創作品 fread() function in C++。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。