freadfread函数
fread 时间:2021-06-07 阅读:(
)
c语言关于fread的用法具体是怎样的
简介
fread
功 能: 从一个流中读数据
函数原型: size_t fread( void *buffer, size_t size, size_t count, FILE *stream );
参 数:
1.用于接收数据的地址(指针)(buffer)
2.单个元素的大小(size) :单位是字节而不是位,例如读取一个整型数就是2个字节
3.元素个数(count)
4.提供数据的文件指针(stream)
返回值:成功读取的元素个数
程序例
#include
int main(void)
{
FILE *stream;
char msg[] = "this is a test";
char buf[20];
if ((stream = fopen("DUMMY.FIL", "w+")) == NULL)
{
fprintf(stderr, "Cannot open output file.
");
return 1;
} /* write some data to the file */
fwrite(msg, strlen(msg)+1, 1, stream); /* seek to the beginning of the file */
fseek(stream, 0, SEEK_SET); /* read the data and display it */
fread(buf, strlen(msg)+1, 1,stream);
printf("%s
", buf);
fclose(stream);
return 0;
}fread、fwrite怎么使用?
(2).文件随机读写函数
int fread(void *ptr,int size,int nitems,FILE *stream);
int fwrite(void *ptr,int size,int nitems,FILE *stream);
fread()函数从流指针指定的文件中读取nitems个数据项,每个数据项的长度为size个字节,读取的nitems数据项存入由ptr指针指向的内存缓冲区中,在执行fread()函数时,文件指针随着读取的字节数而向后移动,最后移动结束的位置等于实际读出的字节数。
该函数执行结束后,将返回实际读出的数据项数,这个数据项数不一定等于设置的nitems,因为若文件中没有足够的数据项,或读中间出错,都会导致返回的数据项数少于设置的nitems。
当返回数不等于nitems时,可以用feof()或ferror()函数进行检查。
fwrite()函数从ptr指向的缓冲区中取出长度为size字节的nitems个数据项,写入到流指针stream指向的文件中,执行该操作后,文件指针将向后移动,移动的字节数等于写入文件的字节数目。
该函数操作完成后,也将返回写入的数据项数。
FILE *fp;
int x = 10, y;
fp = fopen("test.txt", "wr");
fwrite(&x ,sizeof(int), 1, fp);将x写入文件
fwrite((&x ,sizeof(int), 1, fp);将X的值读入到yC语言中fread,fwrite和fscanf,fprintf的区别,什么是格式化数据
fread:是读取数据
fwrite:是写入数据
1.函数功能
用来读写一个数据块。
2.一般调用形式
fread(buffer,size,count,fp);
fwrite(buffer,size,count,fp);
3.说明
(1)buffer:是一个指针,对fread来说,它是读入数据的存放地址。
对fwrite来说,是要输出数据的地址。
(2)size:要读写的字节数;
(3)count:要进行读写多少个size字节的数据项;
(4)fp:文件型指针。
注意:1 完成次写操(fwrite())作后必须关闭流(fclose());
2 完成一次读操作(fread())后,如果没有关闭流(fclose()),则指针(FILE * fp)自动向后移动前一次读写的长度,不关闭流继续下一次读操作则接着上次的输出继续输出;
3 fprintf() : 按格式输入到流,其原型是int fprintf(FILE *stream, const char *format[, argument, ...]);其用法和printf()相同,不过不是写到控制台,而是写到流罢了。
注意的是返回值为此次操作写入到文件的字节数。
如int c = fprintf(fp, "%s %s %d %f", str1,str2, a, b) ;str1:10字节;str2: 10字节;a:2字节;b:8字节,c为33,因为写入时不同的数据间自动加入一个空格。
4.fscanf 和 scanf 相似 :当能正常读入数据时, fscanf 返回读入数据的个数,否则返回 EOF 。
c语言中fread函数怎么用
如果你想把这8个字节当成一个数来读的话可以这样(在VC环境下)
__int64 a;
fread(&a,sizeof(__int64),1,fp);
如果你想分别读出这8个字节的话,可以这样:
char a[8];
fread(a,sizeof(char),8,fp);
希望对你有帮助
__int64也可以用来表示一个整数,只不过它能表示的范围比int类型的要大,int类型占4个字节,而这个__int64占8个字节。
如果你用的是编译器(像DEV-C等),那应该是long longfread函数
fread (void*buffer,size_tsize,size_tcount,FILE*stream) ;其中buffer用于接收数据的内存地址,大小至少是size*count字节;.size单个元素的大小,单位是字节;count元素的个数,每个元素是size字节;stream输入流
返回值:实际读取的元素个数.如果返回值与count不相同,则可能文件结尾或发生错误.
从ferror和feof获取错误信息或检测是否到达文件结尾.
例如:
#include <stdio.h>
#include <string.h>
int main(void)
{
FILE *stream;
char msg[] = "this is a test";
char buf[20];
if ( (stream = fopen("DUMMY.FIL", "w+")) == NULL) {
fprintf(stderr,"Cannot open output file.
");
return 0;
}
/* write some data to the file */
fwrite(msg, strlen(msg) + 1, 1, stream);
/* sizeof(char)=1 seek to the beginning of the file */
fseek(stream, 0, SEEK_SET);
/* read the data and display it */
fread(buf, strlen(msg) + 1, 1, stream);
printf("%s
", buf);
fclose(stream);
return 0;
}
香港服务器租用多少钱一个月?香港服务器受到很多朋友的青睐,其中免备案成为其特色之一。很多用户想了解香港云服务器价格多少钱,也有同行询问香港服务器的租赁价格,一些实际用户想要了解香港服务器的市场。虽然价格是关注的焦点,但价格并不是香港服务器的全部选择。今天小编介绍了一些影响香港服务器租赁价格的因素,以及在香港租一个月的服务器要花多少钱。影响香港服务器租赁价格的因素:1.香港机房选择香港机房相当于选择...
一般大厂都是通过首年才有可以享受爆款活动,然后吸引我们注册他们商家达到持续续费和购买的目的。一般只有大厂才能有这样的魄力和能力首年亏本,但是对于一般的公司和个人厂家确实难过,这几年确实看到不少的同类商家难以生存。这里我们可以看到有对应的套餐方案。不过这两个套餐都是100%CPU独享的,不是有某云商家限制CPU的。但是轻量服务器有个不好的就是带宽是较大且流量是限制的额,分别是1GB和1.2TB月流量...
41云怎么样?41云是国人主机品牌,目前经营产品有国内外云服务器、CDN(高防CDN)和物理机,其中国内外云服务器又细分小类有香港限流量VPS、香港大带宽VPS、香港弹性自选VPS、香港不限流VPS、香港BGP线路VPS、香港Cera+大带宽机器、美国超防VPS、韩国原生VPS、仁川原生VPS、日本CN2 VPS、枣庄高防VPS和金华高防VPS;物理机有美国Cera服务器、香港单程CN2服务器、香...
fread为你推荐
y码男生衣服M L XL分别是什么码?y码S`M`XXL`L`XL身高体重分别是多少?oa办公系统下载oa办公软件哪里可以下载?网站建立需要多少钱创立网站要多少钱bt代理为什么用代理下载BT非常非常慢啊?移动硬盘文件或目录损坏且无法读取急:移动硬盘无法访问,打开提示”文件或目录损坏且无法读取”什么是网络地址手机IP地址是什么?免费下载空间要下载免费空间播放器怎么弄翻译图片识别什么翻译软件能翻译图片啊?tokenstreamToKen获取失败是什么意思
沈阳虚拟主机 域名出售 php主机租用 花生壳免费域名 免费域名跳转 3322动态域名 搬瓦工官网 主机屋免费空间 云主机51web 国外网站代理服务器 泉州电信 lol台服官网 稳定免费空间 鲁诺 支持外链的相册 web服务器是什么 备案空间 国外在线代理服务器 日本代理ip 浙江服务器 更多