如何使用C语言Fread函数循环读取指定文件1.DAT,每次读取512 byte,再次读取是就是下一个512byte直至EOF

如题所述

第1个回答  2013-06-06
#include <stdio.h>
#include <stdlib.h>

int main ()
{
FILE * pFile;
long lSize;
char * buffer;
size_t result;

pFile = fopen ( "myfile.bin" , "rb" );
if (pFile==NULL)
{
fputs ("File error",stderr);
exit (1);
}

// obtain file size:
fseek (pFile , 0 , SEEK_END);
lSize = ftell (pFile);
rewind (pFile);

// allocate memory to contain the whole file:
buffer = (char*) malloc (sizeof(char)*lSize);
if (buffer == NULL)
{
fputs ("Memory error",stderr);
exit (2);
}

// copy the file into the buffer:
result = fread (buffer,1,lSize,pFile);
if (result != lSize)
{
fputs ("Reading error",stderr);
exit (3);
}

/* the whole file is now loaded in the memory buffer. */

// terminate
fclose (pFile);
free (buffer);
return 0;
}

c语言中fread函数怎么用
在C语言中,fread函数扮演着至关重要的角色,用于从文件或其他输入流中读取数据。这个函数的使用方法如下:它接受五个参数,分别为指向要读取数据的内存地址(void* buffer),每个数据对象的大小(size_t size,以字节为单位),要读取的对象数量(size_t count),以及文件指针(FILE* stream)。通过调...

C语言:文件操作( fread 函数 )
使用fread时,返回的字节数是基于读取的基本单元数和每个单元的字节数。例如,如果设置1KB缓冲区,但文件只有5字节,fread返回的实际字节数就是5。同时,值得注意的是,如果文件内容不足一整个基本单元,fread会返回0,比如读取4字节文件,但设置的基本单元为4字节,此时返回0,表示文件已读取完毕。在Window...

用C语言编写一个简单的打字母游戏,给出基本思路及完整程序。
fp=fopen("记录.dat","rb"); \/\/打开二进制文件 for (i=0;i<10;i++) { fread(player[i].name,20,l,fp); \/\/读入记录中的成绩和名字 fread (&player[i].score_,4,l,fp); } fclose(fp); \/\/关闭二进制文件 for (j=0;j<10;j++) \/\/冒泡法排序 for (i=0;i<10-j;i++) if (player...

读写数据块函数fread怎么用?
我们先用ASCII方式打开这个文件,通过fscanf函数读取里面的数据,然后通过fwrite写入到新的二进制格式的文件中,这样我们就得到了一个保存上面信息的二进制格式的文件了,下面就是通过fread函数进行数据的读取了。(记住:fread和fwrite一般用于二进制文件的输入输出,ASCII文件还是不要考虑了)。C++语言: 知蚁...

fread读取dat文件
fread块读 使用方法fread(写入地址,依次所读数据块的字节数,每次读几个块,文件指针)示例:fread(&a,sizeof(struct student),1,fp)

C语言中怎样读取文件数据并对数据排序再重新写入文件
if((fpn = fopen("data.dat","rb")) == NULL) \/\/以只读的方式打开一个二进制文件 { printf("Error!\\n");exit(1);} for(i = 0; i < 10; i++){ fread(&b[i],sizeof(int),1,fpn); \/\/用循环进行读取,每次读取int大小,从fpn所指向的文件读取,存入b数组中 } fclose(...

matlab 中关于fread函数的用法
在MATLAB编程中,fread函数扮演着关键角色,它专为从文件中读取二进制数据而设计。此函数的使用方式灵活多样,主要有两种形式:1. 当你只需要简单地读取指定数量的数据时,可以使用:A = fread(fid, count)这里的`fid`是文件指针,它指向文件当前的位置,`count`则指定了要读取的数据个数。2. 如果你...

关于fread读取数据时指针的位置问题
fread这个函数的返回值就是它读取了几次的值,在你这里fread返回值为1,所以r的值应该是1,如果r值为0,那么就代表读取错误,一般来说就是文件读取完了。可以把r=fread(&dat, sizeof(dat), 1, f)作为if语句括号内的表达式。我习惯用这种方式来检测文件指针是否到了文件末尾。

VC怎么读取一个DAT文件指定位置的一个字符串?
FILE* fp=NULL;char ch;char *pBuf=NULL;int nCount=0;fp=fopen("test.dat","rb");if (fp) { fseek(fp,0x004A80,SEEK_SET);while (fread(&ch,1,1,fp)==1) { nCount++;if (ch==0) { break;} } if (nCount>0) { pBuf=new char[nCount];if (pBuf) { memset(pBuf,0,...

C语言中fread的一些疑问
首先介绍fread函数 功 能: 从一个流中读数据 函数原型: int fread(void *ptr, int size, int nitems, FILE *stream); 参 数:用于接收数据的地址(指针)(ptr)单个元素的大小(size) :单位是字节而不是位,例如读取一个整数值就是4 元素个数(nitems)提供数据的文件指针(stream)返回...

相似回答