C语言fread函数了解

来源:互联网 发布:js 选项卡 编辑:程序博客网 时间:2024/05/22 06:10

fread()函数---- Reads data from a stream.

#include<stdio.h>

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

从一个文件流中读数据,读取count个元素,每个元素size字节.如果调用成功返回count.如果调用成功则实际读取size*count字节

buffer的大小至少是 size*count 字节.

return:

fread returns the number of full items actually read

实际读取的元素数.如果返回值与count(不是count*size)不相同,则可能文件结尾或发生错误.

从ferror和feof获取错误信息或检测是否到达文件结尾.


DEMO:

#include <stdio.h>#include <process.h>#include <string.h>int main(){FILE *stream;char msg[]="this is a test";char buf[20];if ((stream=fopen("dummy.fil","w+"))==NULL){fprintf(stderr,"cannot open output file.\n");return 1;}/*write some data to the file*/fwrite(msg,1,strlen(msg)+1,stream);/*seek to the beginning of the file*/fseek(stream,0,SEEK_SET);/*read the data and display it*/fread(buf,1,strlen(msg)+1,stream);printf("%s\n",buf);fclose(stream);system("pause");return 0;}
DEMO2


int main(void){FILE *stream;char list[30];int i,numread,numwritten;/*open file in text mode:*/if ((stream=fopen("fread.out","w+t"))!=NULL){for (i=0;i<25;i++){list[i]=(char)('z'-i);}/*write 25 characters to stram*/numwritten=fwrite(list,sizeof(char),25,stream);printf("Wrote %d items\n",numwritten);fclose(stream);}elseprintf("Problem opening the file\n");        if ((stream=fopen("fread.out","r+t"))!=NULL)        {numread=fread(list,sizeof(char),25,stream);printf("Number of items read =%d\n",numread);printf("Contents of buffer=%.25s\n",list);fclose(stream);        }         else        {printf("File could not be opened\n");        }system("pause");return 0;}


【FROM MSDN &&百科】


原创粉丝点击