[ 단원 12 ] 파일처리 부산대학교 남 태 우.

Slides:



Advertisements
Similar presentations
1 ‘ 우리나라의 주요공업 ’ - 정도웅, 주민혁, 안수진, 백경민, 엄다운, 박경찬 -.
Advertisements

© DBLAB, SNU 화일구조. 강의 소개 - 화일구조  Instructor : Prof. Sukho Lee (301 동 404 호 )  홈페이지 :  교과목 개요 – 이 과목은 데이타 관리와 응용을 위한 화일 구조의 설계와.
화일구조.
C 프로그래밍 기초.
제12장 표준 입출력과 파일 입출력.
Linux/UNIX Programming
공부할 내용 조상들이 살던 곳 자연과 잘 어울리는 한옥 지방에 따라 서로 다른 집의 모양 섬 지방의 집
사랑, 데이트와 성적 자율성 :데이트 성폭력!!! 성폭력예방교육 전문강사 / 여성학 전공 신 순 옥.
퇴계와 율곡의 사회사상 비교 남 일 재 동서대학교 교수/ 정치학 박사 1. 퇴계 이황과 율곡 이이의 약전(略傳)
쉽게 풀어쓴 C언어 Express 제16장 파일 입출력 C Express.
6 레이스 컨디션.
쉽게 풀어쓴 C언어 Express 제16장 파일 입출력 C Express.
501. 군인들의 세상 502. 민정 이양과 한일회담 이선용.
-Part3- 제3장 콘솔 입출력과 파일 입출력.
C 프로그래밍 소개 숙명여대 창병모 2011 가을.
01 화일의 기본 개념 02 화일 저장장치 03 화일 입출력 제어 04 순차화일 05 화일의 정렬 06 화일의 합병
Chapter 10– 표준 함수(1) Outline 10.1 스트림과 파일 10.2 입출력 표준 함수
Department of Computer Engineering
쉽게 풀어쓴 C언어 Express 제18장 입출력과 라이브러리 함수 C Express.
데이터 파일 C 데이터 파일과 스트림(Stream) 텍스트 파일 처리
연결리스트 (Linked List) 충북대학교 컴퓨터공학과 서 영 훈.
처음으로 배우는 C 프로그래밍 제2부 기초 제5장 반복문.
쉽게 풀어쓴 C언어 Express 제16장 파일 입출력 C Express Slide 1 (of 23)
HW#1 Source 파일 제출 3.20(수)까지 제출 학번_이름_01.c
Part 14 파일 입출력 ©우균, 창병모 ©우균, 창병모.
제15장 파일 입출력 문자열을 출력하는 여러가지 방법 (15-2쪽) 문자열만 처리하는 입출력 함수
Using Standard I/O on Sockets
10장 메모리 관리.
Department of Computer Engineering
21장. 문자와 문자열 처리 함수.
9장 파일 입출력.
링크 파일 생성[1] 링크 하드링크 생성 : link(2) 이미 있는 파일이나 디렉토리에 접근할 수 있는 새로운 이름
처음으로 배우는 C 프로그래밍 제5부 추가적인 화제들 제 11 장 파일 처리.
Chapter 14 이진 데이터 파일과 임의 접근 데이터 파일 C 이진 데이터 파일 임의 접근 파일.
파일 기술자 복사 파일 기술자 복사 : dup(2) 파일 기술자 복사 : dup2(3)
12장 파일처리와 매크로 파일 입출력 함수 문자 입출력 함수 라인 입출력 함수 불록 입출력 함수 매크로.
Chapter 11 Strings.
Chapter 4. 보조자료 - 파일 입출력 파일의 기본 개념과 특징을 이해한다. 파일 처리 과정을 이해한다.
C언어 프로그래밍의 이해 Ch14. 파일 입출력.
Department of Computer Engineering
14주차.
10장 C 표준 파일 입출력 子曰 學而時習(실습?)之 不亦悅乎.
Chapter 13 Input/Output and Files
17강 파일처리함수(1) 강 의 내 용 파일 입출력의 개념 파일포인터를 이용한 입출력 파일 입출력 과정
18강 파일처리함수(2) 강 의 내 용 순차파일 만들기와 읽기 순차파일 입출력함수 랜덤파일 처리
Linux Programming Spring 2008
Linux/UNIX Programming
많은 자료가 있을 때는 배열을 사용한다. 아래는 배열을 사용하는 경우의 예시이다. 상황에 따라 1차원 또는 다차원 배열 필요.
정치개혁의 가능성 논의 권력구조 개편을 통하여 본 -개헌을 통한 정부형태의 변화를 중심으로 [한국정치론] 윤성이 교수님
조 병 규 Software Quality Lab. 한국교통대학교
Linux/UNIX Programming
Fflush 사용이유 및 방법 [이유] 키보드에서 입력된 내용은 입력버퍼에 저장되었다가 Enter 키가 들어오면 프로그램으로 전달됨 이 때 입력버퍼에 있는 Enter 키도 프로그램으로 전달됨 그러므로 아래와 같은 프로그램에서 문자 하나를 입력해도 Enter키도 입력된 것으로.
파일 입출력.
nauten Compiler – Report Ver.3 Mini-C (주간)
화일구조.
Homework #7 (1/4) 다음 프로그램을 작성하고, 프로그램과 실행 결과를 함께 제출한다.
노년기 발달 장안대 행정법률과 세류반 정 오 손
태국 문학 욜라다 왓짜니 싸란차나 팟차라와라이 끼따야펀 르앙다우 타니다.
1학기 정리 지난 학기에 배운 내용을 복습해 본다..
구조체(struct)와 공용체(union)
실습과제 1번 생성된 파일 basic.txt를 프로젝트 폴더에서 메모장으로 열고 내용을 확인
9주차: Using Files and Others
워밍업 실뭉치 전달게임.
C 13장. 입출력 라이브러리 #include <stdio.h> int main(void) { int num;
C.
음파성명학 최종욱.
2019 1학기 응용프로그래밍 - 파일 처리 01 파일 열기 02 파일 저장과 내용 읽기 03 이진파일 처리 04 임의접근 파일 처리 05 파일 관련 함수들.
3장 파일 다루기 한빛미디어(주).
개정판 누구나 즐기는 C언어 콘서트 제12장 파일 입출력 출처: pixabay.
⊙ 입출력 처리란? data를 입력장치로부터 program 내부로 읽어 들이거나
Presentation transcript:

[ 단원 12 ] 파일처리 부산대학교 남 태 우

학습목표

파일의 필요성 보조기억장치인 디스크에 저장되는 파일(file) 직접 삭제하지 않은 한 프로그램이 종료되더라도 계속 저장 가능

텍스트 파일과 이진 파일 텍스트 파일 문자 기반의 파일로서 내용이 아스키코드(ascii code)와 같은 문자 코드값으로 저장 이진 파일 그림 파일, 동영상 파일, 실행 파일과 같이 각각의 목적에 알맞은 자료가 이진 형태(binary format)로 저장

파일 스트림 이해 파일 스트림 파일과 프로그램 간의 정보가 입력 또는 출력되는 연결 통로 종류 입력을 위한 파일 입력 스트림(file input stream) 출력을 위한 파일 출력 스트림(file output stream)

파일 처리 관련 구조체 구조체 자료형 FILE 헤더 파일 stdio.h에 정의되어 있는 구조체 유형 구조체 FILE은 파일을 표현하는 C 언어의 유도 자료형 struct _iobuf { char *_ptr; int _cnt; char *_base; int _flag; int _file; int _charbuf; int _bufsiz; char *_tmpfname; }; typedef struct _iobuf FILE;

파일 스트림 열기 함수 fopen() 또는 fopen_s() 프로그램에서 특정한 파일과 파일 스트림을 연결하는 함수 _File

파일 처리 모드 모드 6가지: “r”, “w”, “a”, “r+“, “w+”, “a+” 파일 모드에서 +의 삽입은 수정(update) 모드 의미 원래의 모드에서 읽기 또는 쓰기가 추가되는 모드

파일 처리 모드 전환(mode switch) 수정(update) 모드 + 수정 모드에서 모드 전환은 추가 모드와 읽기 모드간의 전환과 쓰기 모드와 읽기 모드간의 전환이 가능 모드 전환 사이에는 fflush()와 fseek() 또는 rewind()와 같은 함수 호출이 반드시 필요 파일 모드 r+ 처음에 읽기 모드로 파일을 열어 필요하면 쓰기 모드로 전환 만일 파일이 없으면 오류가 발생 파일 모드 w+ 처음에 쓰기 모드로 파일을 열어 필요하면 읽기 모드로 전환 만일 파일이 존재한다면 이전의 내용은 모두 사라짐 파일 모드 a+ 처음에 추가 모드로 파일을 열어 필요하면 읽기 모드로 전환

출력 스트림을 이용한 파일 생성 파일 스트림 닫기 fopen.c 함수 fclose()는 fopen()으로 연결한 파일 스트림을 닫는 기능을 수행 fopen.c 학생 이름과 점수를 파일“basic.txt”에 출력하는 프로그램 함수 exit() 함수를 강제로 종료 함수 exit()를 이용하려면 헤더 파일 stdlib.h 필요

파일에 서식화된 문자열 입출력 함수 fprintf()와 fscanf() 텍스트 파일에 자료를 쓰거나 읽기 위한 함수 헤더 파일 stdio.h 필요

파일 쓰기와 읽기 fprintf.c 쓰기 모드로 파일을 열어 표준입력으로 받은 학생 이름과 중간점수, 기말점수를 파일에 기록하고 파일을 닫음 파일 grade.txt 생성 다시 읽기 모드로 그 파일을 열어 기록된 내용을 읽어와 표준출력으로 출력하는 프로그램

파일 문자열 입출력 함수 fgets() 함수 fputs() 파일로부터 한 행의 문자열을 입력받는 함수 파일로 한 행의 문자열을 출력하는 함수

함수 fgets()와 fputs()를 이용 multilineio.c 표준입력으로 여러 줄을 입력 받아 파일 grade.txt에 출력하는 프로그램 여러 줄의 표준입력을 처리하기 위하여 while ( !feof(stdin) ) {…} 구문을 이용 함수 fputs()를 이용하기 전에 함수 fprintf()를 이용하여 줄 번호를 출력 즉 파일 grade. txt 저장 시 맨 앞에 1부터 순차적으로 번호가 삽입 표준입력에서 입력을 종료하려면 파일의 끝(EOF)을 의미하는 키 ctrl + Z를 새로운 행의 처음에 누르도록

파일 문자 입출력 함수 fgetc()와 fputc() 함수 fgetc()는 파일로부터 문자 하나를 입력받는 함수

파일 문자 입출력 이용 fgetc.c 여러 문자를 표준입력으로 받아 파일 char.txt에 저장한 후, 다시 파일에서 문자를 읽어 표준출력하는 프로그램 표준입력에서 문자 x를 입력하면 입력 절차가 종료 콘솔의 표준 입출력으로 함수 _getche()와 _putch()를 이용 함수 _getche()와 _putch()는 visual C++에서 getche()와 putch()를 대체하는 권장함수 실행 후 프로젝트 폴더에 파일 char.txt가 생성되고, x를 입력하기 전까지의 문자가 입력

도스 명령어 type 프로그램 list.c 명령행 인자를 사용해서 파일의 내용을 표준출력으로 그대로 출력하는 프로그램 명령행 인자에서 두 번째 인자가 파일 이름에 해당 list filename 파일 내용의 출력은 한 줄마다 맨 앞에 줄 번호를 출력 www.woori.ac.kr

텍스트 파일 입력과 출력 함수 fprinf()와 fsanf_s() 자료의 입출력을 텍스트 모드로 처리

이진 파일 입력과 출력 함수 fwrite()와 fread() 이진(binary) 파일 이진(binary) 모드로 블록 단위 입출력을 처리하려면 함수 fwrite()와 fread()를 이용 이진(binary) 파일 자료형을 모두 유지하면서 바이트 단위로 저장되는 파일

함수 fwrite() 4개의 인자 첫번째 인자: 두 번째 인자: 세 번째 인자: 마지막 인자: ptr은 출력될 자료의 주소값 두 번째 인자: size는 출력될 자료 항목의 바이트 크기 세 번째 인자: 출력될 항목의 개수이며 마지막 인자: 출력될 파일 포인터 함수 fwrite()에서 세번째 항목인 출력항목 수 4를 지정한 경우의 출력

이진 파일을 위한 파일 처리 모드 문자 ‘b’를 추가 이진(binary)을 의미하는 b는 모든 파일 열기 모드에 이용

학생 성적 구조체 파일 쓰기 fwrite.c 학생의 성적 정보를 구조체로 표현하고, 표준입력으로 여러 명의 자료를 입력받은 구조체 자료형을 파일“score.bin”에 저장하는 프로그램 이진 파일 score.bin이 프로젝트 폴더에 생성

프로그램에서 생성한 이진 파일 읽기 fread.c 이진 파일 score.bin의 내용을 읽어 표준출력하는 프로그램을 작성 www.woori.ac.kr

파일 접근 처리 파일 위치 파일 내부를 바이트 단위로 파일 내부 위치를 나타내는 값 파일위치를 파일 지시자(file indicator) 또는 파일 표시자 라고도 부름 파일의 시작점에서 파일 위치는 0이며 1바이트마다 1씩 증가 파일을 열면 파일 위치(file position)는 항상 파일의 시작 부분에 위치 파일의 마지막에는 파일의 마지막임을 알리는 EOF(End Of File) 표시가 있음

파일 접근 처리 파일 스트림 연결 시 파일 위치 파일을 처음으로 열면 모드에 관계없이 파일 위치는 모두 0 파일 모드가 추가(a)인 경우 파일을 처음 열면 파일 위치는 0이나 자료를 파일에 쓰면 자동으로 파일 위치가 마지막으로 이동되어 추가 그러나 파일 위치를 임의로 이동하였다면 파일의 마지막으로 이동하여 추가

파일 접근 방법 파일 순차적 접근(sequential access) 임의 접근(random access) 파일 위치를 처음부터 하나씩 증가시키면서 파일을 참조하는 방식 임의 접근(random access) 파일의 어느 위치든 바로 참조하는 방식

파일의 임의 접근 함수 함수 fseek() 파일 위치를 자유자재로 이동하는 함수 헤더 파일 stdio.h

파일 위치와 관련된 함수 함수 ftell(), rewind()

학생 성적 정보를 추가하는 프로그램 appendscorefile.c 앞의 예제 프로그램을 발전시켜 더 많은 학생의 성적 정보를 추가하는 프로그램 제일 먼저 파일 score.bin에 있는 학생 정보를 모두 읽어와 출력 다음에는 파일에 있는 마지막 학생 정보로부터 마지막 학생 번호를 인지 이 번호에 1씩 증가시키면서 다음에 추가될 학생의 번호로 이용 추가될 학생 정보는 학생마다 한 행씩 자료를 받아서 파일 score.bin에 추가 키보드 ctrl + z를 누르면 입력이 종료되고 다시 파일 score.bin에서 모든 자료를 읽어 모든 정보를 출력 파일 score.bin을 모드“a+”로 open 학생 정보를 추가도 하고, 다시 읽기도 하기 위한 목적

입출력 함수 텍스트 파일 입출력 헤더 파일 stdio.h에 그 함수원형이 정의

입출력 함수 이진 파일 입출력 함수 getw()와 putw() 헤더 파일 stdio.h에 그 함수원형이 정의 워드(word) 크기의 int형 정수를 파일에 이진 모드로 입출력하는 함수 현재 함수 _getw()와 _putw()의 사용을 권장

파일 삭제, 이름 바꾸기 함수 remove(), rename() 지정된 특정한 파일을 삭제 함수 지정된 파일 또는 폴더의 이름을 새로운 이름으로 바꾸는 역할 헤더 파일 stdio.h에 함수원형이 정의

파일이름 수정 rename.c 함수 rename()을 사용하여 파일 이름을 수정하는 프로그램 명령행 인자 old.c new.c

Thank You !