구조체 파일로 저장해서 값 읽어오기
허리품
질문 제목 : 구조체하나를 파일로 저장한후, 저장된 파일을 읽어서 저장된 구조체값을 출력 할려고 하는데요
쓰레기값이 나오는것 같더라구요;
일단 소스 부터
------------------------write----------
#include stdio.h
typedef struct _stparam
{
long a;
long b;
long c;
}stparam;
int main()
{
stparam param;
param.a = 10;
param.b = 20;
param.c = 30;
file *pwrite;
pwrite = fopen(write.file, w+);
if(pwrite != null)
{
fwrite(¶m.a, 1, sizeof(int), pwrite);
fwrite(¶m,.b 1, sizeof(int), pwrite);
fwrite(¶m.c, 1, sizeof(int), pwrite);
}
fclose(pwrite);
return;
}
------------------------------------------------
위에는 파일 write하는 부분인데요 실행 시키면 write.file이 생깁니다-----------------------------read--------------
#include stdio.h
typedef struct _stparam
{
long a;
long b;
long c;
}stparam;
int main()
{
stparam param;
file *pread;
pread = fopen(write.file, r+);
if(pread != null)
{
fprintf(pread, %d%d%d, param.a, param.b, param.c);
}
printf(a:%d, b:%d, c:%d\n, param.a, param.b, param.c);
fclose(pread);
return;
}
위에는 read 하는 부분입니다.
write에서 write.file을 읽어서 구조체 정보를 출력 할려고 하는데요
예상으론 wirte에서 저장한 변수 10, 20, 30 이 출력이 되야 할것 같은데
쓰레기값이 나옵니다.
이렇게 하는방법이 아닌지요?
-
날놓아줘
잘 모르겠지만 어려워보여요...
-
AngelsTears
- write -
fwrite(¶m.a, sizeof(int), 1, pWrite); // 이런식으로 해야...인자의 위치가 잘못됨.
- fwrite(¶m, sizeof(stParam), 1, pWrite); 으로 구조체 전체를 한방에 write 하는 것도 가능
- read -
write 에서 fwrite 로 파일에 썼으면 읽을 때는 fread 로 읽으세요~