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;
}
触摸云国内IDC/ISP资质齐全商家,与香港公司联合运营, 已超8年运营 。本次为大家带来的是双12特惠活动,美国高防|美国大宽带买就可申请配置升档一级[CPU内存宽带流量选一]升档方式:CPU内存宽带流量任选其一,工单申请免费升级一档珠海触摸云科技有限公司官方网站:https://cmzi.com/可新购免费升档配置套餐:地区CPU内存带宽数据盘价格购买地址美国高防 1核 1G10M20G 26...
legionbox怎么样?legionbox是一家来自于澳大利亚的主机销售商,成立时间在2014年,属于比较老牌商家。主要提供VPS和独立服务器产品,数据中心包括美国洛杉矶、瑞士、德国和俄罗斯。其中VPS采用KVM和Xen架构虚拟技术,硬盘分机械硬盘和固态硬盘,系统支持Windows。当前商家有几款大硬盘的独立服务器,可选美国、德国和瑞士机房,有兴趣的可以看一下,付款方式有PAYPAL、BTC等。...
哪里购买香港云服务器便宜?众所周知,国内购买云服务器大多数用户会选择阿里云或腾讯云,但是阿里云香港云服务器不仅平时没有优惠,就连双十一、618、开年采购节这些活动也很少给出优惠。那么,腾讯云虽然海外云有优惠活动,但仅限新用户,购买过腾讯云服务器的用户就不会有优惠了。那么,我们如果想买香港云服务器,怎么样购买香港云服务器便宜和优惠呢?下面,云服务器网(yuntue.com)小编就介绍一下!我们都知道...
fread为你推荐
chrome系统Chromenbsp;OS是操作系统吗?数据监测运动手表的数据监测都准确吗?视频技术视频监控技术的定义及特点扫图高清扫图是什么意思,在很多的贴吧里,都有提到一些高清扫图,是自己照杂志上的图片,然后自己再修一下吗asp大马一句话木马中的大马和小马的作用各是什么?中信银行理财宝中信银行理财宝可以长期存款吗?红牛下架红牛 为什么全国下架软件开发技术文档软件开发技术的目录tokenstream微信公众平台上,Token是什么?怎么填写?天空软件站官方网站寻各种实用软件下载地址
台湾虚拟主机 虚拟主机提供商 手机域名注册 游戏服务器租用 花生壳免费域名 七牛优惠码 inmotionhosting Vultr 天猫双十一抢红包 免费网络电视 eq2 浙江独立 100m免费空间 ftp免费空间 卡巴斯基免费试用版 如何建立邮箱 双线机房 实惠 广东主机托管 开心online 更多