QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 620|回复: 1

请教(c programming)

[复制链接]
发表于 2003-9-13 11:58:03 | 显示全部楼层 |阅读模式
[code:1]#include "stdio.h"

struct birthday
{
        int year, month, day;
};

struct student
{
        long num;
        char name[10];
        struct birthday birth;
} stu[5], s[5]; //这是对象数组吗?如果不在这声明,该怎么声明。

main()
{
        FILE *fp;
        int i;
       
        for(i = 0; i < 5; i++)
        {
                scanf("%ld",&stu[i].num);
                scanf("%s",stu[i].name);
                scanf("%d,%d,%d",&stu[i].birth.year,&stu[i].birth.month,&stu[i].birth.day);
        }
       
        if((fp=fopen("student.dat","wb"))==NULL)
        {
                printf("file can not open\n");
                exit(0);
        }
       
        fwrite(stu,sizeof(struct student),5,fp);
        fclose(fp);
       
        if((fp=fopen("student.dat","rb"))==NULL)
        {
                printf("file can not open\n");
                exit(0);
        }
       
        fread(s,sizeof(struct student),5,fp);
        fclose(fp);
       
        for(i = 0;i<5;i++)
        {
                printf("num: %6ld name: %10s birthday: %3d\n",s[i].num,s[i].name,s[i].birth.year); //%6ld是什么意思?为什么要加个6,我试过,不加也可以,6是起什么作用?
        }
}
[/code:1]
发表于 2003-9-13 13:12:48 | 显示全部楼层
c里面好像是要加typedef定义类型,c++就用struct就可以,
%6ld,表示long int 类型,数字左边保持6位(不管这个数是否有6位),用来对齐的
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-15 00:00 , Processed in 0.041692 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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