typedef struct s{char *name;}student;/*將結(jié)構(gòu)體讀出并顯示*/int IsUsed(char *str){FILE *fp = fopen("test","rb");student s;s.name = (char*) malloc(sizeof(char)*20);fread(&s,sizeof(student),1,fp);while(!feof(fp)){printf("%s",s.name); //為什么這里出錯(cuò)??????????????????if(strcmp(s.name,str)==0){fclose(fp);return 1; //存在該字符串,則返回1}fread(&s,sizeof(student),1,fp);}fclose(fp);return 0; //不存在該字符串,則返回0}int main(){FILE *fp = fopen("test","rb+");/*先將結(jié)構(gòu)體P存入二進(jìn)制文件中*/student p;p.name = (char*) malloc(sizeof(char)*20);scanf("%s",p.name);while(IsUsed(p.name)){ //檢查員工號(hào)是否唯一printf("該字符串已經(jīng)存在,請(qǐng)更換一個(gè):");scanf("%s",p.name);}fwrite(&p,sizeof(student),1,fp);}
C語言 結(jié)構(gòu)體指針字符 二進(jìn)制文件寫入和讀取
繁華開滿天機(jī)
2019-03-22 15:14:36