티스토리 뷰
작성한 코드는?
구조체를 파일로 저장하고, 저장된 구조체를 다시 불러와 출력하는 예제 코드입니다.
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