admin 管理员组文章数量: 1086019
2024年3月6日发(作者:shelly简介及代表作品)
fwrite函数
fwrite函数
1、函数功能
用来读写一个数据块。
2、一般调用形式
fwrite(buffer,size,count,fp);
3、说明
(1)buffer:就是一个指针,对fread来说,它就是读入数据的存放地址。对fwrite来说,就是要输出数据的地址。
(2)size:要读写的字节数;
(3)count:要进行读写多少个size字节的数据项;
(4)fp:文件型指针
这就是工作中用 fwrite函数写的例子,不仅记录下自己的学习情况,也分享给各位朋友这个fwrite函数实例。
这个fwrite实例就是当前时间写入文本的程序,下面这个就是fwrite函数的使用方法。
int mark )
{
FILE *sp ;
// char buff[512] ;
char count = 0;
char *currentime = NULL;
fwrite函数
char *wday[] = {"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
time_t timep;
struct tm *p;
time(&timep);
p = localtime(&timep);
currentime = ctime(&timep);
// memset(buff,0,512);
// sprintf(buff,"%s",currentime);
printf("%d/%d/%d",(1900+p->tm_year),(1+p->tm_mon),p->tm_mday);
printf(" %s %d:%d:%dn",wday[p->tm_wday],p->tm_hour,p->tm_min,p->tm_sec);
if((sp = fopen("/root/kay/mark、txt","a+")) == NULL)
return 0;
fwrite(currentime,size(currentime)-1,1,sp);
fclose(sp);
return 1;
}
size(currentime)( = 26 )的作用就是得出指针currentime所指的字符串的个数(包括'0'),但就是会输出乱码(应该就是字符串的个数太长了),因此,我把个数减掉一个,就能舒适正确结果。
用另外一种方法:
int mark )
{
FILE *sp ;
char buff[512] ;
char count = 0;
char *currentime = NULL;
char *wday[] = {"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
time_t timep;
fwrite函数
struct tm *p;
time(&timep);
p = localtime(&timep);
currentime = ctime(&timep);
// memset(buff,0,512);
sprintf(buff,"%s",currentime);
printf("%d/%d/%d",(1900+p->tm_year),(1+p->tm_mon),p->tm_mday);
printf(" %s %d:%d:%dn",wday[p->tm_wday],p->tm_hour,p->tm_min,p->tm_sec);
if((sp = fopen("/root/kay/mark、txt","a+")) == NULL)
return 0;
fwrite(currentime,(count = strlen(buff)),1,sp);
printf("%dn",count);
fclose(sp);
return 1;
}
count = strlen(buff) 来获得字符的个数 结果就是25,
综上的对比 觉得就是fwrite()输出的字符不要包括结束符('0'),否则会因为字符个数多了而造成乱码
瞧完的朋友,觉得对您们有帮助就顶一个,如果觉得哪里不好,可以发表下瞧法,共同学习。
版权声明:本文标题:fwrite函数 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1709688494a543713.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论