내 프로그램에서 파일의 데이터를 읽는 데 문제가 있습니다. 문제는 파일이 현재 비어 있다는 것입니다. 프로그램이 실행될 때마다 한 장의 책 []이 채워져 나중에 코드에 기록됩니다. 10 개의 구조체가 모두 파일에있을 때 작동 할 것이라고 확신하지만 파일이 비어 있고 10 개의 구조체를 읽으려고하면 충돌이 발생합니다.파일에서 알 수없는 구조체 수를 읽는 중 -C
파일에서 알 수없는 구조체 (최대 10 개)를 읽을 수있는 방법이 있습니까?
struct stock
{
char name[31];
int stock;
};
int main (void)
{
stock books[10];
FILE *fptr;
fptr = fopen("stock.dat", "rb");
fread(books, sizeof(struct stock), 10, fptr);
fclose (fptr);
}
어디에서 충돌이 발생합니까? 오류가 무엇입니까? 이것은 끔찍하게 거의 완벽한 문제 설명입니다. – tbert
파일 형식을 제어하는 경우 (즉, 다른 사람이 정의하지 않은 경우) 바이너리 대신 텍스트 형식 (예 : 이름, 행 당 한 행)을 사용하는 것이 좋습니다. 조금 더 많은 코드를 의미하지만 코드를 한 번만 작성하십시오. 파일이 훨씬 더 유용 할 것입니다. –