아래 정의 된 구조가 있습니다.파일에서 구조 내의 구조 읽기
typedef struct{
int a;
char b;
}X;
typedef struct{
X m;
int c;
char d;
}B;
B n,q;
n.m.a = 12;
n.m.b = 'a';
n.c = 13;
n.d = 'b';
파일에서 다음 구조체의 fwrite를 수행합니다. 파일은 다음과 같이 열립니다.
fp = fopen("D://tests//t11test.txt","wb");
fwrite(&n, sizeof(B), 1, fp);
fwrite가 성공했으며 fp에 해당하는 파일의 내용을 확인했습니다. 그러나 파일을 닫은 후 다시 열 때 동일한 파일에서 fread를 할 때 하위 구조 m의 내용을 읽을 수 없습니다. 이 fread는
fp = fopen("D://tests//t11test.txt","rb");
fread(&q, sizeof(B), 1,fp);
어디에서 잘못 되었습니까?
"읽을 수 없음"이란 무엇을 의미합니까? –
원본 파일의 내용을 깬 모드로 파일을 다시 열어 본 것 같습니다. 재생산 프로그램을 게시 할 수 있습니까? – sarnold
@ Karoly ** int ** ** 및 ** char d ** 값을 올바르게 읽습니다. 하부 구조 X **의 구성원은 올바르게 읽히지 않습니다. @sarnold "wb"모드로 파일에 쓰고 구조를 읽으려면 "rb"로 다시 엽니 다. 사실 두 가지 프로그램이 있습니다. 하나는 파일에 구조체를 쓰고 다른 하나는 읽어들입니다. –