struct good {
int ID;
char name[20];
int quantity;
float cost;
}
struct good article;
fseek(hw2, f*sizeof(struct good) + sizeof(article.ID) + sizeof(article.name), SEEK_SET);
매개 변수 sizeof() + sizeof() + sizeof()의 값이 예상 값을 산출합니까? 수량 필드? 이 파일 위치 제어 명령문을 사용하여 필드에 쓰려고 할 때 레코드를 다시 읽으면 올바르게 작성되지 않은 것입니다.이진 파일 처리 - 구조체 내의 특정 필드에 대한 fseek()
나는 이것이 패딩과 메모리 정렬에 관한 것이라고 생각합니다.
P.S :
선명한 코드 샘플 :
struct good {
short int ID;
char name[20];
int quantity = 0;
float cost = 0;
};
struct good article;
article.ID = 2;
article.name = "Maisara"; //These two fields are already filled, I want to write only to the coming field
article.quantity = 7;
fseek(hw2, f*sizeof(struct good) + sizeof(article.ID) + sizeof(article.name), SEEK_SET);
fwrite(&article.quantity, sizeof(article.quantity), 1, hw2);
무엇을 읽고 쓰려고합니까? 두 가지 모두에 대한 코드를 게시 할 수 있습니까? –
['offsetof'] (http://en.wikipedia.org/wiki/Offsetof)가 필요합니다. –
왜 여기 fseek하고 싶니? 포인터를 증가시켜 포인터를 간단하게 점프 할 수 있습니까? – Abhineet