fread函数?fread函数返回值是什么
大家好,fread函数相信很多的网友都不是很明白,包括fread函数返回值是什么也是一样,不过没有关系,接下来就来为大家分享关于fread函数和fread函数返回值是什么的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!
fread函数的用法
fread函数可从文件中读取二进制数据
语法:
A= fread(fid, count)
A= fread(fid, count, precision)
其中fid为指针所指文件中的当前位置,count指读取的数据个数, precision表示以什么格式的数据类型读取数据。
例子:
fid= fopen('alphabet.txt','r');
c= fread(fid, 5)'
c=
65 66 67 68 69
fclose(fid);
程序说明:alphabet文件中按顺序存储着26个英文字母,读取文件之前要先打开文件,由于未指定读取数据的类型,所以程序指定默认类型为无符号字符型即uchar,65、66、67、68、69代表A、B、C、D、E,文件用完还要记得关闭文件,以便释放指针。
扩展资料:用法
int feof(FILE*stream);
参数
流:FILE结构的指针
注意:feof判断文件结束是通过读取函数fread/fscanf等返回错误来识别的,故而判断文件是否结束应该是在读取函数之后进行判断。比如,在while循环读取一个文件时,如果是在读取函数之前进行判断,则如果文件最后一行是空白行,可能会造成内存错误。
参考资料:fread--百度百科
matlab 中关于fread函数的用法
fread函数在MATLAB中的功能:fread函数可从文件中读取二进制数据
用法:
A= fread(fid, count)
A= fread(fid, count, precision)
其中fid为指针所指文件中的当前位置,count指读取的数据个数, precision表示以什么格式的数据类型读取数据。
扩展资料:
fread函数在PHP中:
(PHP 4, PHP 5)
fread:读取文件(可安全用于二进制文件)
stringfread( int handle, int length)
fread()从文件指针handle读取最多 length个字节。该函数在读取完 length个字节数,或到达 EOF的时候,或(对于网络流)当一个包可用时就会停止读取文件,视乎先碰到哪种情况。
在区分二进制文件和文本文件的系统上(如 Windows)打开文件时,fopen()函数的 mode参数要加上'b'。
当从网络流或者管道读取时,例如在读取从远程文件或popen()以及proc_open()的返回时,读取会在一个包可用之后停止。这意味着应该如下例所示将数据收集起来合并成大块。
如果只是想将一个文件的内容读入到一个字符串中,用file_get_contents(),它的性能比上面的代码好得多。
参考资料:百度百科-fread函数
C语言fread函数问题
fer, size_t Size, size_t Count, FILE* Stream);
Size:每个要读取的元素的大小,单位字节----第二个参数
Count:要读取的元素个数------------------第三个参数
函数的返回值是实际读出元素的个数。
fwrite的第二和第三个参数及返回值的含义同上。
用fread(temp,1024,1,fp)也能读出,意思是一个元素的大小是1024个字节,每次读取一个,这在读取前面内容时没问题,当读到最后,加入只剩下100个字节的数据,不足1024字节时,程序返回0,你无法知道程序最后一次读出了多少数据。如果用fread(temp,1,1024,fp),则程序每次返回读出数据的字节数,即使读最后100个字节时,也返回100,这样你可以利用返回值知道程序读出了多少数据。
你程序中用'\0'判断读出数据的结束标志,也是有问题的。mp3文件中本身就有很多NULL字符,用strchr(temp,'\0');返回的指针未必指向读出数据的结束标志,可能指向读出数据中的某位。我实际试验了一下,用这种方法,4M多的1.mp3,最终只能得到800多k的2.mp3。正确的做法是利用fread的返回值作为fwrite的输入。
最终程序修改如下,去除了打印代码:
#include<stdio.h>
#include<string.h>
void main()
{
FILE*fp;
FILE*fpw;
char temp[1024];
int bsize;
fp=fopen("c:/book/1.mp3","rb");
fpw=fopen("c:/book/2.mp3","wb");
if(fp==NULL)
{
printf("can not open file\n");
}
temp[1023]='\0';
while(!feof(fp))
{
bsize= fread(temp,1,sizeof(temp)-1,fp);
fwrite(temp,1,bsize,fpw);
}
fclose(fp);
fclose(fpw);
}
文章分享结束,fread函数和fread函数返回值是什么的答案你都知道了吗?欢迎再次光临本站哦!