c 언어 스터디 05 - 파일 입출력

21
C Study 05 Copyright© 2015 by YoWu. All rights reserved. http://luckyyowu.tistory.com ([email protected]) 파일 입출력

Upload: yu-yongwoo

Post on 10-Jan-2017

166 views

Category:

Software


2 download

TRANSCRIPT

Page 1: C 언어 스터디 05 - 파일 입출력

C Study 05

Copyright© 2015 by YoWu. All rights reserved. http://luckyyowu.tistory.com ([email protected])

파일 입출력

Page 2: C 언어 스터디 05 - 파일 입출력

• 파일 입출력

Page 3: C 언어 스터디 05 - 파일 입출력

파일 입출력

•파일 입출력

• 입력을 파일에서

• 출력을 파일로

•종류

• 고 수준

• 저 수준

Page 4: C 언어 스터디 05 - 파일 입출력

파일 입출력

• 스트림(stream) : 입력과 출력을 byte의 흐름으로 생각

Page 5: C 언어 스터디 05 - 파일 입출력

파일 입출력

• OS 선점 파일 스트림 - 표준 입출력 스트림

• 0 : stdin (표준 입력 스트림)

• 1 : stdout (표준 출력 스트림)

• 2 : stderr (표준 에러 스트림)

Page 6: C 언어 스터디 05 - 파일 입출력

파일 입출력

• 고수준 파일 입출력

• FILE 구조체(stdio.h) 사용

Page 7: C 언어 스터디 05 - 파일 입출력

파일 입출력

• 고수준 파일 입출력

• 파일 개방

• FILE *fopen(const char *filename, const char *mode)

• mode : 파일 접근, 데이터 입출력 모드

Page 8: C 언어 스터디 05 - 파일 입출력

파일 입출력

• 고수준 파일 입출력

• 데이터 입출력 모드

• 텍스트 모드 vs 바이너리 모드

• \n

• \r\n

모드 의미

t 텍스트 모드

b 바이너리 모드

Page 9: C 언어 스터디 05 - 파일 입출력

파일 입출력

• 고수준 파일 입출력

• 파일 폐쇄

• int fclose(FILE *stream)

Page 10: C 언어 스터디 05 - 파일 입출력

예제 - 1

Page 11: C 언어 스터디 05 - 파일 입출력

파일 입출력

• 고수준 파일 입출력

• 키보드/파일 입력 함수

• int fgetc(FILE *stream)

• char* fgets(char * s, int n, FILE *stream)

• int fscanf(FILE *stream, const char *format, …)

• 모니터/파일 출력 함수

• int fputc(int c, FILE *stream)

• int fputc(const char *s, FILE *stream)

• int fprintf(FILE *stream, const char *format, …)

Page 12: C 언어 스터디 05 - 파일 입출력

예제 - 2

Page 13: C 언어 스터디 05 - 파일 입출력

예제 - 3

Page 14: C 언어 스터디 05 - 파일 입출력

파일 입출력

• 고수준 파일 입출력

• 파일의 끝

• 파일로부터 데이터를 읽어 들이는데 사용되는함수들은 파일의 끝에 도달할 경우 특정 값 리턴

• fgetc

• EOF(-1)

• fgets

• NULL(0)

• fcanf

• EOF(-1)

Page 15: C 언어 스터디 05 - 파일 입출력

예제 - 4

Page 16: C 언어 스터디 05 - 파일 입출력

예제 - 5

Page 17: C 언어 스터디 05 - 파일 입출력

실습 - 1

•프로그램상에서 파일을 만들어 본인의 이름, 주소, 학번을저장하는 프로그램을 작성

•Ex)저장할 사람 몇 명? 2[1] 이름 : XXX[1] 주소 : xxxxx[1] 학번 : xxxx[2] 이름 : XXXX[2] 주소 : xxxxx[2] 학번 : xxxxx

•실행 결과

• info.txt에 이름, 주소, 학번에 대한 정보 저장

Page 18: C 언어 스터디 05 - 파일 입출력

실습 - 2

• 학생들의 전체 정보를 파일로 먼저 저장해두고 이름을입력 받아 해당하는 사람에 대한 정보를 파일에서 찾아읽어와 출력해주는 프로그램 작성

• 데이터는 /home/study/data.txt에 있음

• 이름, 학교, 학과, 성별, 학점, 학번, 메일 순

Page 19: C 언어 스터디 05 - 파일 입출력

과제

• 파일 위치 지시자에 대해 조사

• Fseek 함수와 ftell 함수에 대해 조사하고 예제 만들어확인

• 파일을 복사하는 프로그램을 작성

• 복사할 파일의 경로 및 이름과 복사될 파일의 경로 및이름을 입력 받아 파일을 복사하는 프로그램 작성 (cp 명령어)

• 파일에서 특정 문자가 몇 개 있는지 카운트 해주는프로그램 작성

Page 20: C 언어 스터디 05 - 파일 입출력

과제

• 실습예제 2번에서 한 것에다 입력기능 추가

• 처음 프로그램을 실행시키면 입력과 출력을 선택할 수있게 하고 출력을 선택하면 실습예제 2와 동일하게수행

• 입력을 선택하면 이름, 학교, 학과, 성별, 학점, 학번, 메일을 입력받아 파일에 해당 내용을 추가하도록 작성

Page 21: C 언어 스터디 05 - 파일 입출력

과제

• OSI 7계층 조사

• 소켓 구조체, 소켓 함수 조사