找回密码
 立即注册
搜索
热搜: 活动 通知
查看: 83|回复: 0

检测点12-4

[复制链接]

620

主题

336

回帖

1057

积分

管理员

积分
1057
发表于 2026-3-9 10:06:50 | 显示全部楼层 |阅读模式
检测点12-4

1.在源文件c1204.c中,数组s一共有几个元素?
答:3个。

2.在本节我们创建了文件myfile2.dat。请借助于stgS类型的对象,分多次调用fread函数,每次1个记录,将文件的内容读出并打印出来。既然是分多次调用fread函数,为何读取的不是同一条记录而是连续的记录?
参考答案:
# include <stdio.h>

typedef struct {char c; int i;} stgS;

int main (void)
{
    FILE * hfile = fopen ("myfile2.dat", "rb");
    if (hfile == NULL) return -1;

    stgS s [8];
    while (fread (s, sizeof (stgS), 1, hfile) == 1)
    {
        putchar (s [0].c);
        printf (",%d\n",s [0].i);
    }
    //还没讲转换说明%c,否则while语句的循环体可直接写成 printf ("%c,%d\n", s [0].c, s [0].i);
    fclose (hfile);
}

每当我们调用fread和fwrite函数时,也将移动文件位置指示器,使之指向已读取数据的末尾或者已写入数据的末尾。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|鼠侠网 ( 吉ICP备19001332号 )

GMT+8, 2026-3-30 16:12 , Processed in 0.243039 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表