다음 코드를 사용하여 이진 파일을 읽고 구조체를 사용하여 데이터를 출력합니다. 그러나, 나는 나의 자료가 단지 하나의 기록으로 이루어져 있다는 것을 안다. 그리고 그것은 많은 기록을 인쇄하고있는 것처럼 보인다. 왜이게 될지 궁금하네요?구조체를 사용하여 이진 파일을 읽고 레코드를 찾습니다.
FILE *p;
struct myStruct x;
p=fopen("myfile","rb");
//printf("Rcords of file:\n");
while(1)
{
fread(&x,sizeof(x),1,p);
if(feof(p)!=0)
break;
printf("\n\nID:%ld",x.ID);
}
fclose(p);
return 0;
구조체는 다음과 같이 매우 정상입니다 :
struct myStruct
{
int ID;
char name[100];
}
'char name;'의미가 없습니다. 이름은 거의 단일 문자로 구성되지 않습니다. –
ok ive 업데이트 - 지금 만족하십니까? –
파일의 크기는 어느 정도입니까? ['fread'] (http://en.cppreference.com/w/c/io/fread)는 무엇을 반환합니까? –