티스토리 뷰
작성한 코드는?
구조체를 파일로 저장하고, 저장된 구조체를 다시 불러와 출력하는 예제 코드입니다.
createStruct() 함수에서 구조체를 초기화
userInfo 구조체를 선언 문자열 : name[20], 문자열 : sex[3], 정수 : age
userInfo.dat로 저장한다.
결과
작성 한 코드의 결과
파일로 저장된 userInfo.dat 결과
예제로 작성한 구조체
struct userInfo { char name[20]; char sex[3]; int age; };
주요 소스코드 설명
데이터 입력 함수를 따로 만들어 작성하였고, 편의상 가장 기본적인 방법으로 작성하였습니다. for, while로 작성하지 않고 그냥 작성하였습니다.
원본 : Win32 Api 연구 사이트
size_t fwrite(const void *ptr, size_t size, size_t n, FILE *stream);
ptr : 출력할 데이터가 들어 있는 번지
size : 출력할 항목의 크기
n : 출력할 항목의 개수
stream : 출력할 파일
size_t fread(const void *ptr, size_t size, size_t n, FILE *stream);
ptr : 읽어들일 메모리 주소
size : 불러올 항목의 크기
n : 불러올 항목의 개수
stream : 읽어 들일 대상
소스코드
#include <stdio.h> #include <stdlib.h> #include <string.h> #include "struct.c" struct userInfo tmp[3]; void createStruct() { strcpy(tmp[0].name, "a"); strcpy(tmp[0].sex, "m"); tmp[0].age = 26; strcpy(tmp[1].name, "b"); strcpy(tmp[1].sex, "m"); tmp[1].age = 30; strcpy(tmp[2].name, "c"); strcpy(tmp[2].sex, "f"); tmp[2].age = 25; } int main() { FILE *f; struct userInfo buf[3]; createStruct(); //초기화 if((f = fopen("userInfo.dat", "w")) == NULL) { printf("cannot open file for writing.\n"); exit(1); } fwrite(tmp, sizeof(struct userInfo), 3, f); fclose(f); if((f = fopen("userInfo.dat", "r")) == NULL) { printf("cannot open file for reding.\n"); exit(1); } fread(buf, sizeof(struct userInfo), 3, f); int i; for(i = 0; i<3; i++) { printf("name = %s, sex = %s, age = %d\n", buf[i].name, buf[i].sex, buf[i].age); } fclose(f); return 0; }
'Programming language' 카테고리의 다른 글
1. C언어 노트 프로그램 서버와 클라이언트 정의 (2) | 2012.06.30 |
---|---|
MemSQL 간단하게 살펴보기.. (0) | 2012.06.26 |
Python command 명령, os 명령 사용방법 (0) | 2012.06.14 |
Python 파일 입출력 예제코드 (1) | 2012.06.14 |
MFC에서 Chart를 쉽게 그리는 라이브러리 ChartDirector (25) | 2012.06.12 |
댓글
Blog is powered by
Tistory / Designed by
Tistory