C:坚持使用struct,使用fscanf和指向struct

时间:2017-10-27 14:31:22

标签: c file pointers struct scanf

我是新来的,也是C的新手:) 我学习结构,我遇到了麻烦:

    Company **com_ptr;
int n,i=0;
FILE *fd;
fpos_t pos;
fd=fopen("C:\\Users\\acer\\Desktop\\text.txt","r+");
if(fd==NULL){
    printf("That file not exits.\n");
}
else{
    fgetpos(fd,&pos);
    com_ptr=(Company**)malloc(sizeof(Company*)*15);
    for(i=0;i<15;i++) com_ptr[i]=malloc(sizeof(Company));
    i=0;
    while(!feof(fd)){
            fsetpos(fd,&pos);
                fscanf(fd,"%[A-Z a-z]",&com_ptr[i]->fName);         
            fscanf(fd,"%[A-Z a-z]",&com_ptr[i]->position);          
            fscanf(fd,"%[A-Z a-z 0-9]",&com_ptr[i]->depart);            
            fscanf(fd,"%[A-Z a-z 0-9]",&com_ptr[i]->office);            
            fscanf(fd,"%[0-9 /]",&com_ptr[i]->bDate);           
            fscanf(fd,"%[MALEFmalef]",&com_ptr[i]->sex);            
            fscanf(fd,"%[0-9 /]",&com_ptr[i]->sWorking);            
            fscanf(fd,"%ld",&com_ptr[i]->salary);[enter image description here][1]
            fgetpos(fd,&pos);
            i++;
    }
    printf("Input the person that you want to check : ");
    scanf("%d",&i);
    printf("Full name : %s",com_ptr[i]->fName);
    printf("\nPosition  : %s",com_ptr[i]->position);
    printf("\nDepart    : %s",com_ptr[i]->depart);
    printf("\nOffice    : %s",com_ptr[i]->office);
    printf("\nDoB       : %s",com_ptr[i]->bDate);
    printf("\nSex       : %s",com_ptr[i]->sex);
    printf("\nStarting  : %s",com_ptr[i]->sWorking);
    printf("\nSalary    : %ld",com_ptr[i]->salary);
    free(com_ptr);
    fclose(fd); 
}

我的想法是:我正在尝试从文件中读取数据。该文件包含许多雇员的信息。 这样的文件示例如下: 安德鲁 导向器 A座 A4 1990年2月10日 男 01/01/2010 2500000

//亲爱的@xing这是你代码的输出。抱歉花了太长时间 约翰特里

总统座

1A

16/01/1990

26/11/2010

莱昂内尔·梅西

总统座

3A

26/01/1987

10/01/2010

0 个答案:

没有答案