📅  最后修改于: 2020-09-25 08:21:37             🧑  作者: Mango
size_t fread(void * buffer, size_t size, size_t count, FILE * stream);
fread()
函数从给定的输入流中读取对象的数量,每个对象的大小为size
字节。这类似于调用fgetc()的size
时间来读取每个对象。根据读取的字符数,文件位置指示符将增加。
如果在读取文件时发生任何错误,则流的文件位置指示符的结果值不确定。
如果对象不是普通可复制的,则行为是不确定的。
如果大小或计数为零,则对fread
的调用将返回零,并且不执行其他任何操作。
它在
fread()
函数返回成功读取的对象数。如果发生错误或文件结束条件,则返回值可能小于count
。
#include
#include
using namespace std;
int main()
{
FILE *fp;
char buffer[100];
fp = fopen("data.txt","rb");
while(!feof(fp))
{
fread(buffer,sizeof(buffer),1,fp);
cout << buffer;
}
return 0;
}
假设文件包含以下数据:
Dennis Ritchie : C
Bjarne Stroustrup : C++
Guido van Rossum : Python
James Gosling : Java
运行该程序时,输出为:
Dennis Ritchie : C
Bjarne Stroustrup : C++
Guido van Rossum : Python
James Gosling : Java
#include
#include
using namespace std;
int main()
{
FILE *fp;
char buffer[100];
int retVal;
fp = fopen("data.txt","rb");
/* when count is zero */
retVal = fread(buffer,sizeof(buffer),0,fp);
cout << "When count = 0, return value = " << retVal << endl;
/* when size is zero */
retVal = fread(buffer,0,1,fp);
cout << "When size = 0, return value = " << retVal << endl;
return 0;
}
运行该程序时,输出为:
When count = 0, return value = 0
When size = 0, return value = 0