PowerPoint Template

Similar documents
Microsoft PowerPoint - 제11강 파일 처리

PowerPoint 프레젠테이션

chap7.key

PowerPoint 프레젠테이션

Microsoft PowerPoint - C프로그래밍-chap16.ppt

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

歯9장.PDF

슬라이드 1

<4D F736F F F696E74202D2034C5D8BDBAC6AEC6C4C0CFC0D4C3E2B7C2312E505054>

금오공대 컴퓨터공학전공 강의자료

제1장 Unix란 무엇인가?

Microsoft PowerPoint - Chap14_FileAccess.pptx

Microsoft PowerPoint - 09_(C_Programming)_(Korean)_File_Processing

C Programming

Microsoft PowerPoint - C프로그래밍-chap15.ppt [호환 모드]

Microsoft PowerPoint - chap11.ppt [호환 모드]

Microsoft PowerPoint - chap4 [호환 모드]

Microsoft PowerPoint - 10_C_Language_Text_Files

PowerPoint 프레젠테이션

윤성우의 열혈 TCP/IP 소켓 프로그래밊

Microsoft PowerPoint - Lesson13.pptx

ABC 11장

제7장 C 표준 파일 입출력

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

11장 포인터

제7장 C 표준 파일 입출력

Microsoft PowerPoint - chap11-1.ppt [호환 모드]

BMP 파일 처리

Microsoft PowerPoint APUE(Intro).ppt

본 강의에 들어가기 전

윤성우의 열혈 TCP/IP 소켓 프로그래밊

금오공대 컴퓨터공학전공 강의자료

Microsoft PowerPoint - chap06-2pointer.ppt

2009년 상반기 사업계획

Microsoft PowerPoint - 제9강 문자열

Microsoft PowerPoint - Ch12.파일.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

설계란 무엇인가?

PowerPoint 프레젠테이션

슬라이드 1

Microsoft PowerPoint - Lecture 4-1 Linux File Environment.ppt [호환 모드]

<4D F736F F F696E74202D FC6C4C0CF20C0D4C3E2B7C2205BC8A3C8AF20B8F0B5E55D>

C 프로그램의 기본

PowerPoint Template

쉽게 풀어쓴 C 프로그래밍

Microsoft Word - FunctionCall

Microsoft PowerPoint - 11_C_Language_C_Standard_Library

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

PowerPoint 프레젠테이션

슬라이드 1

슬라이드 1

제1장 Unix란 무엇인가?

Computer Programming (2008 Fall)

제12장 파일 입출력

Microsoft PowerPoint - chap06-1Array.ppt

PowerPoint 프레젠테이션

PowerPoint Presentation

금오공대 컴퓨터공학전공 강의자료

PowerPoint 프레젠테이션

13 주차문자열의표현과입출력

PowerPoint 프레젠테이션

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

<4D F736F F F696E74202D20C1A63136C0E520C6C4C0CFC0D4C3E2B7C2>

OCW_C언어 기초

표준입출력스트림 기본적인스트림들은프로그래머가생성하지않아도자동으로생성된다. 이름스트림연결장치 stdin 표준입력스트림키보드 stdout 표준출력스트림모니터의화면 stderr 표준오류스트림모니터의화면 입출력함수의분류 사용하는스트림에따른분류 표준입출력스트림을사용하여입출력을하

Lab 3. 실습문제 (Single linked list)_해답.hwp

Microsoft PowerPoint - C_Programming_Basics.ppt [호환 모드]

2007_2_project4

PowerPoint Presentation

Microsoft PowerPoint - chap1 [호환 모드]

Microsoft PowerPoint - chap06-4 [호환 모드]

Microsoft PowerPoint 웹 연동 기술.pptx

PowerPoint 프레젠테이션

untitled

PowerPoint Presentation

PowerPoint Presentation

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - chap08.ppt

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

The Pocket Guide to TCP/IP Sockets: C Version

Microsoft PowerPoint - 10장 문자열 pptx

Microsoft PowerPoint - chap06-5 [호환 모드]

11장 포인터

11장 포인터

03 상수, 변수, 자료형

12 장파일입출력 파일입출력의기초파일열기, 사용하기, 닫기파일입출력모드문자단위파일입출력텍스트파일과이진파일 read, write 함수에의한이진파일입출력임의접근입출력스트림상태입출력연산자오버로딩과파일입출력 C++ 프로그래밍입문

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Microsoft PowerPoint - Perpect C 02.ppt [호환 모드]

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

11장 포인터

제1장 Unix란 무엇인가?

고급 프로그래밍 설계

untitled

ABC 11장

PowerPoint Template

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

Standard C Library.hwp

C 언어 프로그래밊 과제 풀이

Transcription:

13 파일처리 1

함수 fopen() 파일열기 파일을만들기위해서는함수 fopen() 을이용 함수 fopen() 의함수원형은다음과같으며헤더파일 stdio.h 파일에정의 함수 fopen() 은두개의문자열전달인자를이용, 반환값은포인터값인 FILE * 2

파일열기 인자 함수 fopen() 에서 첫번째문자열은처리하려는파일이름이고, 두번째문자열은파일처리종류 ( 모드 ) FILE *f; char fname[] = "basic.txt"; if ((f = fopen(fname, "w")) == NULL) { printf( " 파일이열리지않습니다.\n" ); }; fclose(f); 조건문 if 를위와같이함수 fopen() 과함께이용하면파일열기에실패할경우문장 " 파일이열리지않습니다.\n" 을출력 파일처리가모두끝났으면파일포인터 f 를인자로함수 fclose(f) 를호출하여반드시파일을닫도록 3

파일처리모드 파일처리모드종류의미 함수 fopen() 의두번째인자는파일처리종류 ( 모드 ) r, w, a, r+, w+, a+ 의종류 4

예제 13-1 5

함수 fprintf, fscanf 파일에자료를쓰거나읽기위하여함수 fprintf() 와 fscanf() 를이용 이함수를이용하기위해서는헤더파일 stdio.h 파일을포함 함수 fprintf() 와 fscanf() 의함수원형 int fprintf(file *, const char *,...); int fscanf(file *, const char *,...); 위함수의첫번째인자는입출력에이용될파일이고, 두번째인자는입출력되는문자열이며, 다음인자들은입출력될변수목록 함수원형에서기호 은여러인자가계속됨을의미 함수 fprintf() 와 fscanf() 를표준입출력에도이용가능 즉함수 fprintf() 와 fscanf() 의첫번째인자에각각 stdin 또는 stdout 를이용하면표준입력, 표준출력으로이용이가능 기호상수 stdin, stdout 은 stderr 과함께헤더파일 stdio.h 에정의되어있는값으로각각표준입력, 표준출력, 표준에러를의미 6

예제 13-2 7

함수 fgets() 와 fputs() 함수 fgets() 와 fputs() 파일에문자열을입출력하는함수로 fgets() 와 fputs() 이함수도헤더파일 stdio.h 파일에다음과같은함수원형으로정의 함수 fgets() 는문자열을개행문자 (\n) 까지읽어개행문자도함께입력문자열에저장 마찬가지로함수 fputs() 는문자열을그대로출력 함수 fgets() 인자 첫번째인자는문자열이저장될문자포인터이고, 두번째인자는입력할문자의최대수이며, 세번째인자는입력문자열이저장될파일 함수 fputs() 인자 첫번째인자는출력될문자열이저장된문자포인터이고, 두번째인자는문자열이출력되는파일 char * fgets(char *, int, FILE *); int fputs(char *, FILE *); 8

함수 fgetc() 와 fputc() 문자하나를파일에입출력하는함수로 fgetc() 와 fputc() 를제공 이함수의원형은헤더파일 stdio.h 에정의 이함수들은문자하나의입출력의대상인파일포인터를인자로이용 int fgetc(file *); int fputc(int, FILE *); 이함수와같은함수로 getc() 와 putc() 도이용가능 int getc(file *); int putc(int, FILE *); 문자의표준입출력에이용되는 getchar() 와 putchar() 는다음과같이함수 getc() 와 putc() 를이용한매크로 #define getchar() #define putchar(_c) getc(stdin) putc((_c),stdout) 함수 fgetc() 와 fputc() 는 getc() 와 putc() 와그기능은동일하며, fgetc() 와 fputc() 는함수이고, getc() 와 putc() 는매크로 9

함수 feof() 와 ferror() 함수 feof() 파일의내부포인터위치가파일의끝 (EOF) 인지를검사하는데필요한함수 이함수는헤더파일 stdio.h 에다음함수원형으로정의 int feof(file *); 파일의위치가파일의마지막 (end of file) 인지를검사하여, 파일의마지막이면 0 이아닌값을, 파일의마지막이아니면 0 을반환 그러므로표준입력에서계속적으로입력을받는구문으로다음을이용가능 while (!feof(stdin)) { } 함수 ferror() 파일처리에서오류가발생했는지검사하는함수 함수의원형은헤더파일 stdio.h 에정의 int ferror(file *); 이전파일처리에서오류가발생하면 0 이아닌값을발생하고, 오류가발생하지않으면 0 을반환 10

예제 13-3 11

예제 13-4 목적 list filename 을입력 파일 filename 의내용을표준출력으로출력하는프로그램 조건 명령어줄인자를활용, 두번째인자가파일이름에해당 파일내용의출력은한줄마다맨앞에줄번호를출력 12

텍스트파일과이진파일 텍스트파일 텍스트파일은텍스트편집기 ( 에디터 ) 로그내용을알수있으며, 그내용을확인할수있을뿐만아니라인쇄가가능 함수 fprintf() 와 fscanf() 는자료의입출력을텍스트모드로처리 함수 fprintf() 를이용하여정수형변수 cnt 에저장된값을파일 f 에출력하는과정 이진파일 텍스트파일과는다르게이진 (binary) 파일은 C 언어의자료형을모두유지하면서바이트단위로저장하는파일 이진파일의대표적인예가실행파일, 이러한이진파일은일반편집기로는그내용확인불가능 13

함수 fwrite 와 fread 이진파일처리 이진 (binary) 모드로입출력을처리하려면함수 fwrite() 와 fread() 를이용 함수 fwrite() 는헤더파일 stdio.h 에다음과같은함수원형으로정의 size_t fwrite(const void *, size_t, size_t, FILE *); size_t fread(void *, size_t, size_t, FILE *); 이진파일에저장되어있는자료형을입력하는함수 fread() 각각의인자는출력함수 fwrite() 와동일 인자와반환값 인자 첫번째인자는출력될자료의주소값이며, 두번째인자는출력될자료의바이트크기이고, 세번째인자는출력될단위자료의묶음개수이고, 마지막인자는출력될파일포인터 반환값값은파일에출력된단위자료형의개수 위에서첫번째인자의자료형이 void * 로모든자료형의포인터를대신할수있는포인터변수 14

이진파일입출력이해 함수 fwrite() 를이용하여정수형변수 cnt 값을파일 f 에출력하는과정 함수 fwrite() 는바이트단위로원하는블록을파일에출력하기위한함수 함수 fwrite() 에의하여출력된자료는함수 fread() 를이용하여입력해야그자료유형유지가가능 15

이진파일열기모드 문자 b 추가 이진파일을위한파일열기모드에서문자 b 를추가 이진 (binary) 을의미하는 b 는모든파일열기모드에이용 파일열기모드에서 b 가없으면기본적으로텍스트파일을의미 FILE *f = fopen(fname, "wb"); 16

예제 13-5 17

파일내부위치 파일위치포인터 파일을열면항상파일위치포인터 (file pointer) 라는것이파일의한장소를가리킴 파일내부를바이트단위로파일내부위치를나타내는값 파일포인터가 100L 이라면파일의처음에서부터 100 바이트떨어진위치에현재파일포인터가위치 파일포인터값은일반적으로자료형 long 으로취급하므로상수를기술할때 100L 처럼수뒤에 L 을기술가능 파일포인터는파일내부에서자료를읽거나쓰는만큼파일의현재위치에서뒤로이동 순차적, 임의접근 파일에서원하는장소로자유롭게이동하는것을임의접근 (Random Access) 파일의임의접근을처리하기위해서는파일포인터를자유자재로이동하는함수 fseek() 이필요 18

함수 fseek() fseek() 함수 fseek() 는함수원형이헤더파일 stdio.h 파일에정의 함수 fseek() 는파일 fptr 에서기준점 mode 에서 offset 만큼떨어진곳으로파일포인터를위치하는함수 offset 함수 fseek() 에서두번째인자는 long 유형으로기준점으로부터떨어진값을말하며흔히오프셋 (offset) 이라함 함수 fseek() 에서세번째인자는정수형기호상수로다음세가지중의하나를이용 int fseek(file *fptr, long offset, int mode) 19

기준세가지 함수 fseek(f, 100L, SEEK_SET) 의호출 파일의처음위치에서 100 바이트떨어진위치로이동 함수 fseek(f, 100L, SEEK_CUR) 의호출 파일의현재위치에서 100 바이트떨어진위치로이동 함수 fseek(f, -100L, SEEK_END) 의호출 파일끝위치에서앞으로 100 바이트떨어진위치로이동 20

파일관련여러함수 함수 fseek() 에서두번째인자는세번째인자인기준점으로부터떨어진값을말하며, 양수는뒤, 음수는앞으로방향을지시 파일포인터와관련된함수로서다음세가지함수를이용 함수 ftell() 은인자인파일의파일포인터를반환하며 함수 rewind() 는파일포인터를무조건제일앞으로이동 21

예제 13-7 appendscore.c 바로이전에작성한 readscorefile.c 프로그램을발전시켜더많은학생의성적정보를추가하는프로그램을작성 프로그램이실행되면제일먼저파일 score.bin 파일에있는학생정보를모두읽어와출력 파일에있는마지막학생정보로부터마지막학생번호를알아냄 이번호에 1 씩증가시키면서다음에추가될학생의번호로이용 22

입출력함수 여러입출력함수 23

파일삭제, 이름바꾸기 함수 remove() 지정된특정한파일을삭제하고 함수 remove() 는 remove( sample.txt ) 와같이문자열로지정된파일을삭제 함수 rename() 지정된파일의이름을새로운이름으로바꾸는역할을수행 함수 rename() 은 rename( oldname.txt, newname.txt ) 과같이앞의파일이름을뒤파일이름으로바꾸는역할 함수 remove() 와 rename() 도헤더파일 stdio.h 에그함수원형이정의 24

예제 13-8 25

C 로배우는프로그래밍기초 2 nd Edition 26