작은숲:위키노트/C 언어 예제/구조체를 파일에 저장

큰숲백과, 나무를 보지 말고 큰 숲을 보라.
/**
 * Copyright (c) 2001,2002 Yoon, Hyunho <hhyoon@kldp.org>
 * http://mooo.org
 * ----------------------------------------------------------------------
 *
 * LICENSE
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software 
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 */
#include <stdio.h>
#include <stdlib.h>
struct record {
    int i;
    long l;
    char str[10];
};
int main()
{    int i;
    char *name = "Park Chanho";
    struct record rec[10];
    FILE *out, *in;
    char *p;
    for (i = 0; i < 10; i++) {
        rec[i].i = i;
        rec[i].l = i * 1000;
        
        p = name;
        while(*p) {
            *(rec[i].str + (p - name)) = *p; 
            p += 1;
        }
        *(rec[i].str + (p - name)) = *p; 
    }
    out = fopen("output.txt", "w"); 
    if (out == NULL) {
        printf("Cannot open the file to write.\n");
        exit(EXIT_FAILURE);
    }
    fwrite(rec, sizeof(struct record), 10, out);
    fclose(out);
    if ((in = fopen("output.txt", "r")) == NULL) {
        printf("Cannot open the file to write.\n");
        exit(EXIT_FAILURE);
    }
    fread(rec, sizeof(struct record), 10, in);
    for (i = 0; i < 10; i++) {
        printf("%d %d %s\n", rec[i].i, rec[i].l, rec[i].str);
    }
    fclose(in);
    return EXIT_SUCCESS;
}
이 작은숲 문서의 출처는 위키노트의 위키노트/C 언어 예제/구조체를 파일에 저장 문서입니다.