C语言程序编译错误 request for member 'num' in something not a structure or union

一般是.与->搞错了。如果它是地址,就在它后边用->,如果它不是地址,就在它后边就用.

------------------------------------------------------------

http://zhidao.baidu.com/link?url=geojS7y1XPvrgXoib_jSBguu3SCmoddUTxZ1XyEiyS1G4wr1VHbSx5r2xdypdcnpofAKUL4mGX6m3TtY0gEdZ_

如题 源程序如下:
#include<stdio.h>
#include<stdlib.h>
struct student
{
    int xuehao;
    char name[10];
    char sex;
 char num[5];
    int age;
 char ID[20];
 char depart[20];
 char destination[20];
 char date[10];
 char kind[4];
   
};
int main()
{
    FILE *fp;
    struct student acm[1000];
    int i,flag=1,flag2=0;
    char choose;
    for(i=0;i<1000;i++)
    {
        acm[i].xuehao=0;
    }
    fp=fopen("d:\\text.txt","r");
    i=0;
    while(!feof(fp)){
       fscanf(fp,"%d %s %c %s %d %s %s %s %s %s",&acm[i].xuehao,acm[i].name,&acm[i].sex,acm.num,&acm[i].age,acm[i].ID,acm[i].depart,acm[i].destination,acm[i].date,acm[i].kind);
    
       i++;
    }
    fclose(fp);
        while(1)
    {
         printf("A:  Add\nD:  Delete\nM:  Modify\nQ:  Query\nS:  Statistics\nE:  Exit\n");
         printf("Please choose from A,D,M,Q,S and E\n");
         printf("What do you want to do?:");
         if(flag2==1) getchar();
         flag2=1;
         scanf("%c",&choose);
         getchar();
         switch(choose)
         {
             case 'A':printf("\n");break;
             case 'D':printf("\n");break;
             case 'M':printf("\n");break;
             case 'Q':printf("\n");break;
             case 'E':{printf("\n");
             fp=fopen("d:\\text.txt","w");
             for(i=0;acm[i].xuehao!=0;i++){
                 if(acm[i].xuehao==-1) continue;
                 fprintf(fp,"%d %s %c %s %d %s %s %s %s %s\n",acm[i].xuehao,acm[i].name,acm[i].sex,acm.num,acm[i].age,acm[i].ID,acm[i].depart,acm[i].destination,acm[i].date,acm[i].kind);
             }
             fclose(fp);
             flag=0;break;}
             default:printf("sorry,your choice is error!\n\n\n\n");break;
         }

    }
    return 0;
}
我有更好的答案
按默认排序|按时间排序

2条回答

2013-02-20 13:54 liuhongchun189 | 五级
根据提示,直接把两处的acm.num改成acm->num不就行啦。
评论 | 1 6
2013-02-20 11:01 jimmy_fk | 二级 最快回答
我来做个任务,路过
评论 | 0 3
 

知道日报

2014.3.29 往期回顾
不是人人都能闻到草香

帮助  | 意见反馈  |  投诉举报  |  知道协议  |  加入我们

©2014 Baidu   使用百度前必读 | 百度知道开放平台




  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值