Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 从文件扫描到结构_C - Fatal编程技术网

C 从文件扫描到结构

C 从文件扫描到结构,c,C,将数组中的值指定给对象成员时出现问题 这是我的密码 这是分割错误,但我不明白为什么 我无法从编译中获得任何消息 程序只会崩溃 谢谢 FILE*openRead(char-fName[]); int setArray(文件*fp,结构销售人员*sRec[]); #定义员工8 int main(){ 文件*fp=openRead(“sales.dat”); 结构销售人员*实例[员工]; setArray(fp,实例); 返回0; } 文件*openRead(char fName[]){//READS

将数组中的值指定给对象成员时出现问题 这是我的密码

这是分割错误,但我不明白为什么 我无法从编译中获得任何消息 程序只会崩溃 谢谢

FILE*openRead(char-fName[]);
int setArray(文件*fp,结构销售人员*sRec[]);
#定义员工8
int main(){
文件*fp=openRead(“sales.dat”);
结构销售人员*实例[员工];
setArray(fp,实例);
返回0;
}
文件*openRead(char fName[]){//READS
文件*fp;
fp=fopen(fName,“r”);
如果((fp!=NULL)){
//printf(“退货成功”);
返回fp;
}否则{
返回0;
}
}
int setArray(文件*fp,结构销售人员*sRec[]){
int i,num[30],lpay[30];
char fname[30][30];
字符名[30][30];
双倍金额[30];
对于(i=0;ilastName,lname[i]);
//strcpy(sRec[i]>名字,fname);
//sRec[i]->salesLevel=*lpay;
//sRec[i]->salesAmount=金额;
//printf(“%s”,sRec[i]->lastName);
//如果(fscanf(fp,“%d:%[^:::%[^:::%d:%f”,&num,fname,lname,&payl,&amount)!=EOF){
printf(“%s\n”,fname[i]);
}
}
返回i;
}

在写入指针之前,需要为指针分配内存。例如

instance[0] = malloc(sizeof(struct salesPerson));

在向指针写入内容之前,需要为指针分配内存

instance[0] = malloc(sizeof(struct salesPerson));

在向指针写入内容之前,需要为指针分配内存

instance[0] = malloc(sizeof(struct salesPerson));

在向指针写入内容之前,需要为指针分配内存

instance[0] = malloc(sizeof(struct salesPerson));

你的指针没有指向有效的地方

struct salesPerson *instance[EMPLOYEES];
setArray(fp,instance);

实例[0]
(以及所有其他指针)指向哪里?

您的指针没有指向有效的地方

struct salesPerson *instance[EMPLOYEES];
setArray(fp,instance);
for (i=0;i<EMPLOYEES;i++){// "<=" should be "<" 
    if(fscanf(fp,"%d:%[^:]:%[^:]:%d:%lf",&num[i],lname[i],fname[i],&lpay[i],&amount[i]) != EOF){
        sRec[i] = malloc(sizeof(struct salesPerson));//allocate structure
        strcpy(sRec[i]->lastName,lname[i]);
        //set to member of sRec ... 
    } else 
        break;
}

实例[0]
(以及所有其他指针)指向哪里?

您的指针没有指向有效的地方

struct salesPerson *instance[EMPLOYEES];
setArray(fp,instance);
for (i=0;i<EMPLOYEES;i++){// "<=" should be "<" 
    if(fscanf(fp,"%d:%[^:]:%[^:]:%d:%lf",&num[i],lname[i],fname[i],&lpay[i],&amount[i]) != EOF){
        sRec[i] = malloc(sizeof(struct salesPerson));//allocate structure
        strcpy(sRec[i]->lastName,lname[i]);
        //set to member of sRec ... 
    } else 
        break;
}

实例[0]
(以及所有其他指针)指向哪里?

您的指针没有指向有效的地方

struct salesPerson *instance[EMPLOYEES];
setArray(fp,instance);
for (i=0;i<EMPLOYEES;i++){// "<=" should be "<" 
    if(fscanf(fp,"%d:%[^:]:%[^:]:%d:%lf",&num[i],lname[i],fname[i],&lpay[i],&amount[i]) != EOF){
        sRec[i] = malloc(sizeof(struct salesPerson));//allocate structure
        strcpy(sRec[i]->lastName,lname[i]);
        //set to member of sRec ... 
    } else 
        break;
}
其中,
实例[0]
(以及所有其他指针)指向?

(i=0;ilastName,lname[i]);
for (i=0;i<EMPLOYEES;i++){// "<=" should be "<" 
    if(fscanf(fp,"%d:%[^:]:%[^:]:%d:%lf",&num[i],lname[i],fname[i],&lpay[i],&amount[i]) != EOF){
        sRec[i] = malloc(sizeof(struct salesPerson));//allocate structure
        strcpy(sRec[i]->lastName,lname[i]);
        //set to member of sRec ... 
    } else 
        break;
}
//设置为sRec的成员。。。 }否则 打破 }
用于(i=0;ilastName,lname[i]);
//设置为sRec的成员。。。
}否则
打破
}
用于(i=0;ilastName,lname[i]);
//设置为sRec的成员。。。
}否则
打破
}
用于(i=0;ilastName,lname[i]);
//设置为sRec的成员。。。
}否则
打破
}