格式化读写函数(fscanf fprintf)的应用范例

fscanf 函数和fprintf函数与scanf和printf函数的功能相似,都是格式化读写函数。两者的区别在于fscanf函数和fprintf函数的读写对象不是键盘和显示器,而是磁盘文件。

这两个函数的调用格式为:

fscanf(fp,"%d %s",&num,str);

fprintf(fp,“%d  %c”,num,ch);//fp为文件指针

例:

从键盘输入五个学生数据,写入一个文件中,再读出五个学生的数据显示在屏幕上。

#include <stdio.h>

struct stud
{
    char name[10];
    int num;
}sw[5],sr[5],*pw,*pr;  //定义一个存储学生信息的结构体

int main()
{
    FILE *fp;
    int i;
    if((fp = fopen("d:\\abc.txt","wb+")) == NULL)  //以读写的方式打开文件
    {
        printf("Cannot open a file !");

    }
    pw = sw;  //指针pw指向数组sw
    pr = sr;  //指针pr指向数组sr
    printf("input data\n");
    printf("name  num\n");
    for(i = 0;i < 5;i++)
      scanf("%s %d",sw[i].name,&sw[i].num);
    for(i = 0;i < 5;i++,pw++) //将数据读入到文件中,注意pw的指向变化
       fprintf(fp,"%s %d\n",pw->name,pw->num);
       rewind(fp);   //将文件内部指针移到文件首部
    for(i = 0;i < 5;i++,pr++)  
       fscanf(fp,"%s %d\n",pr->name,&pr->num); //将信息从文件中读到结构体中
       printf("\nname num\n");
       for(i = 0;i < 5;i++)
        printf("%s %5d\n",sr[i].name,sr[i].num); //将信息从结构体中读取出来
        fclose(fp);  //关闭文件
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值