• 검색 결과가 없습니다.

제 10 장 입출력 함수장 입출력 함수

N/A
N/A
Protected

Academic year: 2021

Share "제 10 장 입출력 함수장 입출력 함수"

Copied!
15
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

제 10 장 입출력 함수

(2)

목 차

표준 입출력 함수

표준 파일 입출력 함수

문자 관련 제어 표준 함수

블록 입출력 함수

순차 접근과 임의 접근 파일

(3)

표준 입출력 함수 (1)

콘솔 모드에서의 자료 입출력 함수

<stdio.h> 에 정의 되어 있음

표준 문자 입출력 함수

scanf()

printf()

getchar()

1 개의 문자를 콘솔로부터 입력 받음

putchar()

1 개의 문자를 콘솔로 출력

(4)

표준 입출력 함수 (2)

표준 문자열 입출력 함수

다수의 문자를 배열의 형태로 입출력

gets()

scanf() 와 비슷 -> 문자사이의 공백을 구분자로 인식

문자사이의 공백을 무시

엔터키 값이 종료를 의미

개행문자 (\n) 를 NULL 문자 (\0) 로 변환

128 바이트의 크기

입력될 문자열의 최대 길이는 127 바이트

NULL 종료 문자를 저장하기 위한 1 바이트가 추가

puts()

오류 시 EOF 반환

NULL 문자를 개행문자 (\n) 로 변환

(5)

표준 파일 입출력 함수 (1)

텍스트 파일과 이진 파일

텍스트 파일

ASCII 코드값으로 저장됨

일반적인 에디터로 정상적으로 열림

txt 파일 , 소스 파일 등

이진 파일

Binary 파일 , 기계어 파일

전용 Viewer 가 필요

실행 파일 , 멀티미디어 파일 등

(6)

표준 파일 입출력 함수 (2)

파일 포인터 함수

파일을 열거나 닫을 때 사용

파일은 일종의 자료의 배열이므로 포인터 이용

<stdio.h> 포함해야 함

사용 순서

“FILE*" 형태의 변수를 선언을 이용

FILE *fp;

파일 열기 (fopen)

fp = fopen(“ 파일명” , “ 모드” );

파일 닫기 (fclose)

fclose(fp);

(7)

표준 파일 입출력 함수 (3)

파일 열기 모드

텍스트 모드 열기 ( 읽기 모드 ) 이진 모드 열기 ( 읽기 모드 )

fp=fopen("text.txt", "r"); fp=fopen("text.txt", "rb");

텍스트 모드 열기 ( 쓰기 모드 ) 이진 모드 열기 ( 쓰기 모드 )

fp=fopen("text.txt", "w"); fp=fopen("text.txt", “wb");

"r"

"w"

"a"

"r+"

"w+"

"a+"

읽기

쓰기 ( 새로 생성 ) 끝에 추가 쓰기 읽고 쓰기

읽고 쓰기 ( 새로 생성 ) 추가를 위해 읽고 쓰기

"rb"

"wb"

"ab"

"rb+"

"wb+"

"ab+"

읽기

쓰기 ( 새로 생성 ) 끝에 추가 쓰기 읽고 쓰기

읽고 쓰기 ( 새로 생성 ) 추가를 위해 읽고 쓰기

(8)

문자 관련 제어 함수 (1)

문자 제어 표준 함수

int fgetc()

int fgetc(FILE *fp);

파일 fp 로부터 한 문자를 입력 받음

return value : 입력문자 , 오류 시 EOF 반환

char c; FILE *fp = fopen("text.txt", "r"); c = fgetc(f p);

int fputc(int c, FILE *fp);

파일 fp 에 한 문자를 기록

return value : 출력문자 , 오류 시 EOF 반환

c = 'A'; fputc(c);

(9)

문자 관련 제어 함수 (2)

문자 제어 표준 함수 ( 계속 )

int getc()

int getc(FILE *fp);

fgetc() 와 같음

int putc(int c, FILE *fp);

파일 fp 에 한 문자를 기록

fputc() 와 같음

(10)

문자 관련 제어 함수 (3)

문자열 제어 표준 함수

fgets()

char *fgets(char *s, int n, FILE *fp);

파일 fp 로부터 최대 n 바이트 문자열 입력 ( 개행 코드까지 )

return value : 문자열 포인터 , 파일 종료 시 NULL 반환

if(fgets(temp,80,out) == NULL)

fputs()

int fputs(char *s, FILE *fp);

파일 fp 에 문자열 s 를 입력

return value : 에러 시 음수 , 성공 시 문자열 길이 출력

(11)

문자 관련 제어 함수 (4)

문자열 제어 표준 함수

fprintf()

int fprintf(FILE *fp, ………);

파일 fp 에 printf 와 같은 기능으로 자료를 기록

fscanf()

int fscanf(FILE *fp, ………);

파일 fp 에서 scanf 와 같은 기능으로 자료를 읽음

(12)

블록 입출력 함수 (1)

블록 자료 읽기 / 쓰기

파일 커서 이용

(13)

블록 입출력 함수 (2)

블록 자료 쓰기

fwrite()

buffer 가리키는 메모리 블록의 size 만큼 블록 기록

size_t fwrite(void *buffer, size_t size, size_t count, FILE *stream)

블록 자료 읽기

fread()

size_t fread(void *buffer, size_t size, size_t count, FILE *stream)

(14)

순차 접근과 임의 접근 (1)

순차 접근 파일

각 레코드가 일정한 순서대로 저장

일반적으로 레코드 키를 이용

번지순이나 문자순으로 저장

일괄처리에 주로 사용

size_t rewind(FILE *stream);

임의 접근 파일

파일에 기록된 데이터를 바이트 배열로 취급

임의의 위치에 있는 데이터를 읽거나 쓰기

파일 포인터 (file pointer) 라는 커서 이용

(15)

순차 접근과 임의 접근 (2)

임의 접근 파일 ( 계속 )

size_t fseek(FILE *stream, long offset, int origi n)

;

fseek 옵션

상수값 매크로 의 미

0 SEEK_SET 파일의 시작 위치

1 SEEK_CUR 현재의 파일 포인터 위치 2 SEEK_END 파일의 끝 위치

참조

관련 문서

특정 네임스페이스에 포함되어 있는 식별자를 전역 네임스페이스(또 는 다른 네임스페이스)에 있는 것처럼 사용하는 방법.

: 총비용접근법과 일맥상통한 것으로 서로 다른 활동의 비용 패턴이 경우에 따라서는 서로 간에 상충하는 경우가 발생한다고

채터링을 방지하는 것을 스위치 디바운싱(Debouncing)이라하고 하드웨 어적인 방법과 소프트웨어적인 방법이 있다.. 그러나

입출력 인터페이스, 입출력 채널(channel), 입출력 프로세서, 입출력 제어기 (controller), 장치 제어기(device controller) 등의 여러 가지

• 프로세서 내부에 있는 입출력 데이터와 주소 레지스터를 입출력 모 듈과 연결한 형태로 주소 레지스터와 버스 사이에서 데이터를 직접 전송할 수 있는 가장

젖소에서는 유관동이 크게 확장되어 유선관의 말단에 유선조(乳腺槽, gland cistern)가 있고, 유선조에 이어진 유두조(乳頭槽, teat cistern)가 유두의 내부를 차지하고 있다..

• 주기억장치의 일정 영역을 버퍼로 지정하고 입출력 데이터를 버퍼 에 둔 상태에서 입출력 기능만 별도로 수행하는 입출력 채널이 입출

이 학생들의 숙제1, 숙제2, 숙제3의 성적을 가상으로 만들어서 exam.txt 파일에 아래와