Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 12 파일 입출력.

Similar presentations


Presentation on theme: "Chapter 12 파일 입출력."— Presentation transcript:

1 Chapter 12 파일 입출력

2

3

4 01. 입출력의 개요 입출력 프로그램에서 무엇인가 나가면 출력이고 무엇인가 들어오면 입력
하드웨어적으로 보자면 프로그램은 메모리에서 실행되므로 메모리에서 무엇인가 나가면 출력이고 무엇인가 들 어오면 입력 입출력 장치 입력장치 : 키보드, 하드디스크에 있는 파일, 슈퍼마켓에서 사용하는 바코드 리더기 등 출력장치 : 모니터, 하드디스크에 저장되는 파일, 프린터 등

5 01. 입출력의 개요 입출력은 하드웨어를 제어하는 복잡한 과정이므로 대부분의 프로그래밍 언어는 입출력을 지원하는 라이브러리 함수(전문가가 개발)를 제공 C 언어는 다양한 입출력장치 중에서 가장 대표적인 키보드와 모니터에 의한 입출력을 표준 입출력으로 정의 지금까지의 많은 예제에서는 표준 입출력 함수를 사용 표준 입출력은 프로그램이 수행되면서 처리되지만 프로그램이 종료되면 입출력의 결과가 사라진다

6 01. 입출력의 개요 파일 입출력 C 언어는 파일 입출력 함수를 라이브러리 함수로 제공
프로그램에서는 오늘 처리한 결과를 파일에 저장하고 다음번에 그 파일로부터 결과를 읽어들여 처리 C 언어는 파일 입출력 함수를 라이브러리 함수로 제공

7 02. 파일 포인터 파일로부터 데이터를 입력받고 파일에 데이터를 출력하려면 다음과 같이 파일을 열고, 파일의 입출력을 수행한 뒤, 파일을 닫는 일련의 과정이 필요합니다. 파일 포인터file pointer : 입출력 할 파일을 가리키는 포인터 C 언어는 파일 포인터를 위한 구조체 FILE을 <stdio.h>에서 제공 FILE 구조체 변수를 선언하고 이 변수로 fopen(), fclose() 함수 사용

8 02. 파일 포인터 fopen() 함수 fclose() 함수 사용 예
fclose() 함수는 fopen() 함수로 개방되어 사용된 파일을 닫는다. 파일에 입출력을 위한 통로 폐쇄 사용 예

9 02. 파일 포인터 fopen() 함수에서 지정되는 파일의 모드
파일로부터 단순하게 데이터를 입력받는 경우에는 읽기 전용으로, 파일에 데이터를 출력하는 경우에는 쓰기 전 용으로 지정하여 사용 파일에 데이터를 입출력할 때 용도에 적합한 모드로 지정하는 것이 좋다. 적합한 모드의 지정은 파일을 잘못 사용하는 것을 막을 수 있는 방법

10 02. 파일 포인터 예제 12-1

11 03. 텍스트 파일의 입출력 – 3.1 문자 단위 입출력 함수 문자 단위의 입출력 함수 : 하나의 문자를 파일에 읽고 쓰기 위한 함수 이 함수는 파일을 대상으로 입출력하는 것을 제외하고는 3장에서 설명한 getchar(), putchar() 함수와 같다 이 함수는 파일 포인터가 가리키는 파일로부터 하나의 문자(바이트)를 unsigned char형으로 읽어서 int 정수 형으로 반환 프로그램에서는 반환되는 정수형을 char형으로 치환하여 사용 읽은 문자가 파일의 마지막인 경우에는 -1을 의미하는 EOF(‘end of file’을 줄인 말로 -1 값을 가짐)를 반환 이 함수는 매개변수로 지정된 char 값(문자)을 파일 포인터가 가리키는 파일에 출력 이 함수의 반환 값은 출력된 문자. 출력이 실패하는 경우 EOF를 반환

12 03. 텍스트 파일의 입출력 – 3.1 문자 단위 입출력 함수 예제 12-1

13 03. 텍스트 파일의 입출력 – 3.2 행 단위 입출력 함수 행 단위 입출력 함수 : 파일에 행 단위 문자열을 읽고 쓸 수 있는 함수 이 함수는 파일 포인터가 가리키는 파일로부터 문자열을 읽어 str로 반환 length는 읽을 문자열의 최대 길이를 의미 이 함수는 한 행이 끝나거나, length의 길이만큼 읽었거나, 파일의 끝에 도달하면 그때까지의 문자열을 반환 문자열을 읽을 수 없을 경우 NULL 값을 반환 이 함수는 매개변수로 지정된 문자열을 파일 포인터가 가리키는 파일에 출력 이 함수는 출력이 성공하면 음수가 아닌 값을 반환하고, 실패하면 EOF를 반환

14 03. 텍스트 파일의 입출력 – 3.2 행 단위 입출력 함수 예제 12-3

15 03. 텍스트 파일의 입출력 – 3.3 형식 지정 함수 형식 지정 함수 : 형식을 지정하여 파일에 데이터를 읽고 쓰기 위한 함수 이 함수는 파일을 대상으로 입출력하는 것을 제외하고는, 지금까지 표준 입출력으로 사용한 scanf(), printf() 함 수와 같은 방식으로 동작 이 함수에서 사용하는 형식 지정자는 scanf(), printf()에서 사용하는 형식 지정자와 같다 이 함수는 파일 포인터가 가리키는 파일로부터 지정된 형식으로 입력 입력받은 데이터는 input_list의 항목에 저장 이 함수는 입력이 정상적으로 완료되면 입력된 항목의 개수를 반환하고, 오류가 발생하면 EOF를 반환 이 함수는 파일 포인터가 가리키는 파일에 지정된 형식으로 데이터를 출력 output_list의 항목이 지정된 형식으로 파일에 저장 이 함수는 출력이 정상적으로 완료되면 출력된 바이트 수를 반환하고, 오류가 발생하면 음수를 반환

16 03. 텍스트 파일의 입출력 – 3.3 형식 지정 함수 예제 12-4

17 04. 2진 파일의 입출력 – 4.1 2진 데이터 입출력 함수 C 언어는 컴퓨터가 처리하는 2진 데이터를 처리하는 fread()와 fwrite() 함수 제공 이 함수는 filepointer가 가리키는 파일로부터 size 크기의 데이터를 count로 지정된 개수만큼 읽어들여 buf 로 지정된 공간에 저장 입력이 수행되면 파일의 현재 위치(파일 내에서 읽어들이는 위치)는 입력된 크기만큼 뒤로 이동

18 04. 2진 파일의 입출력 – 4.1 2진 데이터 입출력 함수 이 함수는 buf에 저장된 size 크기의 데이터를 count로 지정된 개수만큼 filepointer가 가리키는 파일에 출력 출력이 수행되면 파일의 현재 위치(파일 내에서 읽어들이는 위치)는 입력된 크기만큼 뒤로 이동 교재 488페이지 위에서 둘째 줄 “입력이 수행되면 => 출력이 수행되면”으로 수정 요망

19 04. 2진 파일의 입출력 – 4.1 2진 데이터 입출력 함수 2진 파일을 개방하기 위한 fopen() 함수의 모드
텍스트 파일을 개방하기 위한 모드와 유사하다. 텍스트 모드 끝에 b를 붙여 사용

20 04. 2진 파일의 입출력 – 4.1 2진 데이터 입출력 함수 예제 12-5

21 04. 2진 파일의 입출력 – 4.1 2진 데이터 입출력 함수 예제 12-6

22 04. 2진 파일의 입출력 – 4.2 임의 접근 함수 임의 접근random access : 파일의 중간부터 데이터를 입출력 하는 방법 이 방법을 이용하면 파일의 중간에 빠르게 접근하여 효율적인 프로그램을 작성 가능 파일 포지션file position 2진 파일에 접근할 때 순차 접근 방법이든 임의 접근 방법이든 파일의 현재 위치를 나타내는 파일 포지션file position 이 존재 즉 2진 파일로부터 데이터를 읽어올 때 현재의 파일 포지션부터 데이터를 읽고, 2진 파일에 데이터를 쓸 때도 같은 형태로 동작

23 04. 2진 파일의 입출력 – 4.2 임의 접근 함수 파일 포지션을 이동할 수 있는 fseek() 함수
이 함수는 origin을 기준으로 offset으로 지정된 바이트 수만큼 파일 포지션을 이동 origin으로 지정되는 기준점은 상수로 정의된 SEEK_SET, SEEK_CUR, SEEK_END 중 하나

24 04. 2진 파일의 입출력 – 4.2 임의 접근 함수 예제 12-7

25 04. 2진 파일의 입출력 – 4.2 임의 접근 함수 예제 12-7 계속

26


Download ppt "Chapter 12 파일 입출력."

Similar presentations


Ads by Google