본문으로 이동

미디어위키 1.45 안정화가 거의 끝났습니다. 다만 Flow 확장 기능 관련 이슈가 있어서 대체하는 작업을 수행할 계획입니다.

  1. 큰숲백과:청사진에서 위키 발전의 대략적인 방향성을 제시했습니다. 의견이 있으신 분은 큰숲백과토론:청사진에서 의견을 남겨주시면 좋겠습니다.
  2. 기능상의 오류로 지원하지 않고 있는 기능에 대해서는 큰숲백과토론:이슈 트래커에 요약했습니다. 참고하시기 바랍니다.
  3. 데이터베이스 덤프 받고싶으신 분은 큰숲백과 가입 후에 사용자토론:Bigforest에 의견 남겨주시면 ftp 주소, 계정, 비밀번호를 특수:EmailUser를 통해서 공개할 예정입니다.

작은숲:위키노트/C 언어 예제/구조체를 이진 파일에 저장: 두 판 사이의 차이

큰숲백과, 나무를 보지 말고 큰 숲을 보라.
잔글 문자열 찾아 바꾸기 - "분류:공유" 문자열을 "분류:위키노트/공유" 문자열로
잔글 문자열 찾아 바꾸기 - "<source" 문자열을 "<syntaxhighlight" 문자열로
1번째 줄: 1번째 줄:
<source lang="c">
<syntaxhighlight lang="c">
/**
/**
  * Copyright (c) 2001,2002 Yoon, Hyunho <hhyoon@kldp.org>
  * Copyright (c) 2001,2002 Yoon, Hyunho <hhyoon@kldp.org>

2021년 3월 28일 (일) 12:51 판

<syntaxhighlight lang="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.
*/

/**

* 1. 구조체를 선언하여 파읽에서 읽어와 그것을 구조체 배열에 저장한다.
* 2. 구조체 배열에 저장된 내용을 평균을 기준으로 정렬을 한다.
* 3. 구조체 배열에 저장된 내용을 출력한다.
*/
  1. include <stdio.h>
  2. include <stdlib.h>
  3. include <string.h>
  4. define MAX_NAME 30
  5. define MAX_STUDENTS 100

// 구조체를 선언하고 typedef문을 사용하여 새로운 데이터형을 만든다. typedef struct { char name[MAX_NAME];

   int num;
   int korean;
   int english;
   int math;
   int science;
   int computer;
   float average;

} Student; int main() { int i, num;

   Student student[MAX_STUDENTS];
  // 스트림 포인터를 선언한다.
   FILE *data;
  // 파일을 읽기 모드로 연다.
  // 만약 파일을 여는데 실패했을 경우 프로그램을 종료시킨다.
   if ((data = fopen("data.txt", "r")) == NULL) {
       printf("Cannot open the data file!\n");
       exit(0);
   }
   fscanf(data, "%d", &num);
   for (i = 0; i < num; i++) {
       fgetc(data);
       fgets(student[i].name, 81, data);
       fscanf(data, "%d %d %d %d %d %d", &student[i].num, &student[i].korean,
           &student[i].english, &student[i].math, &student[i].science,
           &student[i].computer);
   }
   fclose(data);
   if ((data = fopen("data2.txt", "wb")) == NULL) {
       printf("Cannot open the data file!\n");
       exit(0);
   }
   fwrite(&num, sizeof(int), 1, data);
   fwrite(student, sizeof(Student), num, data);
   fclose(data);
   if ((data = fopen("data2.txt", "rb")) == NULL) {
       printf("Cannot open the data file!\n");
       exit(0);
   }
   fread(&num, sizeof(int), 1, data);
   fread(student, sizeof(Student), num, data);
   fclose(data);
   return 0;

}</source>

이 작은숲 문서의 출처는 위키노트의 위키노트/C 언어 예제/구조체를 이진 파일에 저장 문서입니다.