山野莽夫

  • 归档
    • 随笔
    • 建站资源
    • 分享
    • 代码
  • 地球物理学
    • 专业课
    • 概念解释
  • 计算机
  • 互联网
  • 教程
  • 规划
  • 实验室
    • 珍藏的软件
    • 贴吧云签到
    • A1账号自助申请
山野莽夫
小学生的挣扎的点点滴滴
  1. 首页
  2. 代码
  3. c
  4. 正文

C语言fwrite函数

2016年4月14日 2946点热度 0人点赞 0条评论

最近在学习C语言,准备做一个成绩单程序,今天用到fwrite函数,于是整理一些资源,学习并分享一下。

用法

 

size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream);
注意:这个函数以二进制形式对文件进行操作,不局限于文本文件
返回值:返回实际写入的数据块数目
(1)buffer:是一个指针,对fwrite来说,是要获取数据的地址;
(2)size:要写入内容的单字节数;
(3)count:要进行写入size字节的数据项的个数;
(4)stream:目标文件指针;
(5)返回实际写入的数据项个数count。
说明:写入到文件的哪里? 这个与文件的打开模式有关,如果是w+,则是从file pointer指向的地址开始写,替换掉之后的内容,文件的长度可以不变,stream的位置移动count个数;如果是a+,则从文件的末尾开始添加,文件长度加大。
fseek对此函数有作用,但是fwrite[1]  函数写到用户空间缓冲区,并未同步到文件中,所以修改后要将内存与文件同步可以用fflush(FILE *fp)函数同步。

实例

下边是几个实例

#include <stdio.h>
struct mystruct
{
    int i;
    char cha;
};
 
int main(void)
{
    FILE *stream;
    struct mystruct s;
    if ((stream = fopen("TEST.$$$", "wb")) == NULL) /* open file TEST.$$$ */
    {
        fprintf(stderr, "Cannot open output file.\n");
        return 1;
    }
    s.i = 0;
    s.cha = 'A';
    fwrite(&s, sizeof(s), 1, stream); /* 写的struct文件*/
    fclose(stream); /*关闭文件*/
    return 0;
}
#include<stdio.h>
#define SIZE 1
typedef struct
{
    char name[10];
    int num;
    int age;
    char addr[15];
    }student;
 
student stu[SIZE];
 
void save()
{
    FILE *fp;
    int i;
    if((fp=fopen("dat.txt","w"))==NULL)
    {
        printf("无法打开此文件!\n");
        return;
    }
    for(i=0;i<SIZE;i++)
    if(fwrite(&stu[i], sizeof(student), 1, fp) != 1)
    printf("文件写入错误。!\n");
    fclose(fp);
}
 
void main()
{
    int i;
    for(i=0;i<SIZE;i++)
        scanf("%s%d%d%s",&stu[i].name,&stu[i].num,&stu[i].age,&stu[i].addr);
    save();
}
#include <stdio.h>
int main ()
{
    FILE *fp;
    char msg[] = "file content";
    char buf[20];
    fp = fopen("d:\\a\\a.txt","w+");
    if (NULL == fp)
    {
        printf("The file doesn't exist!\n");
        return -1;
    }
    fwrite(msg,strlen(msg),1,fp);//把字符串内容写入到文件
    fseek(fp,0,SEEK_SET);//定位文件指针到文件开始位置
    fread(buf,strlen(msg),1,fp);//把文件内容读入到缓存
    buf[strlen(msg)] = '\0';//删除缓存内多余的空间
    printf("buf = %s\n",buf);
    printf("strlen(buf) = %d\n",strlen(buf));
    return 0;
}

 

标签: c语言 C语言文件操作 fwrite 代码
最后更新:2017年4月16日

小菜菜

菜鸟

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据。

标签聚合
模板 宝塔面板 ppt onedrive 虚拟机 地震学程序 wordpress c语言
最新 热点 随机
最新 热点 随机
Azure Student 微软云 学生订阅 免费12个月用量避坑注意点集合 MP3音频文件格式详细解析 python按固定采样点个数分割wav格式音频 愉快使用谷歌免费人工智能平台colab,训练你的神经网络模型,为你的学术生活添砖加瓦 华为云版轻量应用服务器-云耀云服务器简单体验评测 Cloudflare 免费CDN自定义节点ip之自选cloudflare 高速节点ip工具分享
腾讯云cvm云主机挂载cos对象存储 地震断层P轴和T轴计算 随机数产生matlab语言程序 曲阜东站--济宁的枢纽高铁站 excel中逆序一列的数据 Winrar 压缩软件 去弹窗广告注册纯净版含注册key文件

COPYRIGHT © 2021 shanyemangfu.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

蜀ICP备15031791号-2