Soft Ware/C 언어!!

구조체 를 파일에 입력 및 출력 하기

달려가보자 2012. 1. 31. 02:32

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

typedef struct _node
{
 int num;
 char name[255];
 int  height;
}node; // 간단한 구조제 배열의 작성
int main(void)
{
 node wr,re; // 읽고 쓰기를 위한 변수( 두개의 변수가 필요하진 않음)
 FILE *in,*out; //파일 입출력을 위해 파일 포인터
 
memset(&wr,0,sizeof(node));
memset(&re,0,sizeof(node));
// 구조체 배열의 초기화, 필요함..

wr.num=48;
strcpy(wr.name,"송은남");
wr.height = 175;
//구조체 변수에 간단히 입력
in=fopen("test1.txt","wt+"); //바이너리 파일로 쓰기
fwrite(&wr,sizeof(node),1,in); // 구조체를 파일에 쓰기
fclose(in); // 파일을 닫아주고
out=fopen("test1.txt","rt+"); // 파일을 읽은후
fread(&re,sizeof(node),1,out); // 구조체에 저장
printf("%d %d %s \n",re.num,re.height,re.name); //출력
}

문자열은 파일에 저장할때에는 문자열로 저장 되지만 정수 나 실수 값은 경우에는

그에 맞는 아스키 값이 저장된다 .

또한 bin(바이너리 파일) 과 txt(텍스트 파일)의 차이점은

바이너리 파일같은경우에는 명령어에 해당하는 이진수 값들이 저장되어 있는 파일이다.