Microsoft PowerPoint - 제11강 파일 처리

Similar documents
chap7.key

PowerPoint Template

歯9장.PDF

<4D F736F F F696E74202D2034C5D8BDBAC6AEC6C4C0CFC0D4C3E2B7C2312E505054>

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

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

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

제1장 Unix란 무엇인가?

슬라이드 1

Microsoft PowerPoint - chap4 [호환 모드]

Microsoft PowerPoint - Chap14_FileAccess.pptx

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

C Programming

PowerPoint 프레젠테이션

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

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

<4D F736F F F696E74202D20C1A63132B0AD20B5BFC0FB20B8DEB8F0B8AEC7D2B4E7>

Microsoft PowerPoint - Lesson13.pptx

Microsoft PowerPoint APUE(Intro).ppt

Microsoft PowerPoint - 10_C_Language_Text_Files

11장 포인터

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

제7장 C 표준 파일 입출력

제7장 C 표준 파일 입출력

Microsoft PowerPoint - 제9강 문자열

BMP 파일 처리


본 강의에 들어가기 전

설계란 무엇인가?

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

쉽게 풀어쓴 C 프로그래밍

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

슬라이드 1

Microsoft PowerPoint - chap1 [호환 모드]

ABC 11장

À©µµ³×Æ®¿÷ÇÁ·Î±×·¡¹Ö4Àå_ÃÖÁ¾

2009년 상반기 사업계획

<4D F736F F F696E74202D20C1A63136C0E520C6C4C0CFC0D4C3E2B7C2>

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

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

PowerPoint 프레젠테이션

슬라이드 1

<4D F736F F F696E74202D FC6C4C0CF20C0D4C3E2B7C2205BC8A3C8AF20B8F0B5E55D>

제12장 파일 입출력

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

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

The Pocket Guide to TCP/IP Sockets: C Version

untitled

Microsoft PowerPoint - 11_C_Language_C_Standard_Library


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

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

제1장 Unix란 무엇인가?

K&R2 Reference Manual 번역본

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C4C656D70656C2D5A69762E637070>

Microsoft PowerPoint - Ch12.파일.pptx

2007_2_project4

11장 포인터

11장 포인터

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

데이타전송

PowerPoint 프레젠테이션

PowerPoint Presentation

ABC 11장

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

Microsoft PowerPoint - [2009] 02.pptx

PowerPoint 프레젠테이션

02장.배열과 클래스

<4D F736F F F696E74202D D20B9AEC0DABFAD2C20BDBAC6AEB8B2B0FA20C6C4C0CF20C0D4C3E2B7C2>

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

<4D F736F F F696E74202D20C1A632B0AD20BAAFBCF6BFCD20C0DAB7E12C20C0FCC3B3B8AEBFCD20C0D4C3E2B7C2>

Microsoft PowerPoint - ch07 - 포인터 pm0415

제1장 Unix란 무엇인가?

Microsoft PowerPoint APUE(File InO).pptx

Chapter #01 Subject

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

03 상수, 변수, 자료형

<4D F736F F F696E74202D20C1A63137C0E520B5BFC0FBB8DEB8F0B8AEBFCD20BFACB0E1B8AEBDBAC6AE>

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2

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

PowerPoint 프레젠테이션

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

연습문제만-수정

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

슬라이드 1

3. 1 포인터란 3. 2 포인터변수의선언과사용 3. 3 다차원포인터변수의선언과사용 3. 4 주소의가감산 3. 5 함수포인터

Computer Programming (2008 Fall)

Microsoft PowerPoint 웹 연동 기술.pptx

Microsoft PowerPoint - Chapter_04.pptx

11장 포인터

기초컴퓨터프로그래밍

슬라이드 1

11장 포인터

untitled

고급 프로그래밍 설계

본 강의에 들어가기 전

구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을


Transcription:

제13장 파일 처리

파일열기 : File Open FILE *fp; fp=fopen( filename, r ); File handling mode: r, w, a, rb, wb, ab, r+, w+, a+ fclose(fp) 파일의종류 : Text File, Binary File Text file:.txt,.doc,.hwp Binary file:.exe,.jpg,.gif,.mov,.mpeg,.tif,.pgm,.ppm. 파일읽기 / 쓰기 : Read/Write a file fscanf, fgetc, getc, fprintf, fputc, putc, fgets, fputs: for text file fgetc, getc, fputc, putc, fwrite: for binary file 한밭대정보통신공학과 и чунг хо 2

파일열기 : fopen() 함수를사용한다. 형태 : File *fopen(const char filename*, const char *mode); Ex.) FILE *fp=fopen( test.txt, w ); // 파일을쓰기모드로연다. 모드는 r:read 읽기, w: write 쓰기, a:append 첨가형태가있다. 한밭대정보통신공학과 и чунг хо 3

파일을 fcolse() 를이용하여닫지않고계속사용하려고할때모드는 r+ : 읽은후쓰기, w+ : 쓴후읽기, a+ : 추가후읽기또는쓰기, 이경우쓰기는파일끝에만가능 한밭대정보통신공학과 и чунг хо 4

파일출력함수 fprintf : printf 의파일출력버전 int fprintf(file *, const char *, ) 예 ) FILE *fp=fopenf( test.txt, w ); fprintf(fp, %s %d, 홍길동, 99); 파일입력함수 fscanf : scanf 의파일입력버전 int fscanf(file *, const char *, ) 예 ) char name[20]; int score; FILE *fp=fopenf( test.txt, r ); fscanf(fp, %s %d,name, score); 한밭대정보통신공학과 и чунг хо 5

파일출력함수 fprintf 가 printf 함수와동일할때 FILE pointer 대신 stdout 또는 stderr 을쓸때예 ) fprintf(stdout, %s %d, 홍길동, 99); fprintf(stderr, %s %d, 홍길동, 99); stdout, stderr 은 stdio.h 에정의된표준출력, 표준에러로모니터화면에출력됨을의미. 파일입력함수 fscanf 가 scanf 와동일할때예 ) char name[20]; int score; fscanf(stdin, %s %d,name, score); stdin 은 stdio.h 에정의된표준입력즉키보드 한밭대정보통신공학과 и чунг хо 6

표준입출력함수 gets 와 puts 의파일입출력버전임. 함수이름앞에 f 를붙여서파일입출력버전으로만든것중하나임. char *fgets(char *, int, FILE *); 예 ) char buf[81]; FILE *fp=fopen( test.txt, r ); fgets(buf, 81, fp);// 파일에서 buf 로한줄읽기 int fputs(char *, FILE *); 예 ) char buf[81]= 버퍼에있던내용 ; FILE *fp=fopen( test.txt, w ); fgets(buf, 81, fp); //buf 의내용을파일에쓰기 한밭대정보통신공학과 и чунг хо 7

파일출력함수 fgetc(), fputc() 는 getc(), putc() 와각각완전히동일 int fgetc(file *) : int getc(file *) 와동일 int fgetc(int, FILE *) : int getc(int, FILE *) 와동일예 ) char ch; FILE *fpi=fopen( source.txt, r ); FILE *fpo = fopen( target.txt, w ); while( (ch=fgetc(fpi))!= EOF) //End of File putc(ch, fpo); //textfile을한문자씩읽어다가다른파일에복사하는프로그램임. 한밭대정보통신공학과 и чунг хо 8

표준입출력에사용되는 getchar(), putchar() 는 getc(), putc() 를사용하여매크로로정의됨 #define getchar() getc(stdin) #define putchar(_c) putc((_c),stdout) 한밭대정보통신공학과 и чунг хо 9

텍스트파일 : 문서편집기로문서를편집할수있고파일을열었을때문자가다보이는파일. 텍스트파일의예 :.doc,.hwp,.txt,.c,.cpp,.java 등으로끝나는파일들 fprintf(), fscanf() 로자료의입출력을텍스트모드로처리 이진파일 (binary file): 바이트단위로저장하는파일, 파일을문서편집기로열었을때일부또는전부가읽을수없는파일..exe 과같은실행파일,.jpb,.pgm,.tiff,.mpeg,.avi 등사진또는비디오파일,.mp3 과같은오디오파일등 한밭대정보통신공학과 и чунг хо 10

텍스트파일과이진파일에서 255 라는숫자의저장방식 텍스트파일 : 2 5 5 라는세글자의숫자로서 3bytes 가필요 바이너리파일 : 1 바이트에이진수 11111111 과같은이진파일로저장됨. 한밭대정보통신공학과 и чунг хо 11

EOF: 텍스트파일의끝으로서 -1 과같음 foef() 함수는 EOF 로끝나지않는이진파일의끝을체크할수있는함수, 텍스트파일의끝도찾음. 파일끝이면 0 이아닌값을반환, 끝이면 NULL 반환 예 ) FILE *fpi = fopen( test.jpg, rb ); //b 는 binary file 의미 while(!feof(fp)) putc(getc(fp), fpo); // 이진파일의복사, 텍스트파일도복사가능 // 파일입출력모드에이진파일의경우 b 를붙임 // rb, wb, ab, rb+, r+b, wb+, w+b, ab+, a+b 한밭대정보통신공학과 и чунг хо 12

foef() 함수 int feof(file *); 표준입력인경우 while(!feof(stdin)){ }; // 이경우파일의끝은 ^Z 를입력, UNIX 운영체제에서는 ^D 를사용 ferror() 함수 int ferror(file *); // 파일처리오류시 0 반환, 아니면 0 이아닌값을반환 한밭대정보통신공학과 и чунг хо 13

이진파일의읽기쓰기함수 size_t fwrite(const void *, size_t, size_t, FILE *); size_t fread(const void *, size_t, size_t, FILE *); // 인자설명 (buffer, 입출력단위의바이트크기, 개수, 파일포인터 ) // 반환값은입력또는출력한자료형의개수 한밭대정보통신공학과 и чунг хо 14

예 ) 가로세로 256x256 크기의.pgm 이미지파일을복사하는프로그램헤더부분 : P2 256 256 255\n 여기서 P2는회색파일임을의미로정해져있음. 256 256 은각각가로세로크기 255는 graylevel의최대값으로항상같은값. \n은정해져있음. 그다음약간의코멘트가계속될수있음. FILE *fpi=fopen( lena.pgm, rb ); // 이진파일읽기모드열기 FILE *fpo=fopen( copy.pgm, wb );// 이진파일쓰기모드열기 int i; char magic[3]; int hsize, vsize; unsigned char buf[256]; fscanf(fpi, %s%d%d, magic, &hsize, &vsize); // 입력파일의헤더읽기 fprintf(fpo, %s %d %d 255\\n, magic, &hsize, &vsize); // 출력파일헤더쓰기 한밭대정보통신공학과 и чунг хо 15

// 파일에서 256 바이트씩읽어서쓰기 unsigned char buf[256]; for(i=0;i<256;i++) { fread(buf, sizeof(unsigned char), 256, fpi); fwrite(buf, sizeof(unsigned char), 256, fpo); } 한밭대정보통신공학과 и чунг хо 16

int fseek(file *fp, long offset, int mode); Mode: SEEK_SET 파일의시작 SEEK_CUR 파일의현재위치 SEEK_END 파일의끝위치파일의끝에서 300000 바이트만큼앞쪽으로이동 fseek(fpi, -300000, SEEK_END); 파일의앞에서 200000 바이트만큼끝쪽으로이동 fseek(fpi, 200000, SEEK_SET); 한밭대정보통신공학과 и чунг хо 17

음악 / 음악샘플 /Kalimba.mp3 파일의끝에서 300000 bytes 를읽어서쓰기 FILE *fpi = fopen( Kalimba.mp3, rb ); FILE *fpo = fopen( ba.mp3, wb ); int i; fseek(fpi, -300000, SEEK_END); for(i=0;i<300000;i++) putc(fgetc(fpi), fpo); 한밭대정보통신공학과 и чунг хо 18

파일의크기를알아내는프로그램 FILE *fpi = fopen( Kalimba.mp3, rb ); fseek(fpi,0, SEEK_END); printf( file size = %d\n, ftell(fpi)); 한밭대정보통신공학과 и чунг хо 19

파일열기 : File Open 구조체 Structure FILE *fp; Struct TAGNAME { int a; double b; char c[12];} s; fp=fopen( filename, r ); Allocation of Initial Value File handling mode: r, w, a, rb, wb, ab, r+, w+, a+ Structure Array fclose(fp) Reference of Structure Members 파일의종류 : Text File, Binary File 공용체 Union Text file:.txt,.doc,.hwp Union TAGNAME { int a; double b; char c[12];} Binary Data file:.exe, usage,.jpg, length.gif, of.mov, union.mpeg,.tif,.pgm,.ppm. 열거형 Enum 파일읽기 / 쓰기 : Read/Write a file enum fscanf, color fgetc, {yellow, getc, fprintf, red, blue, fputc, magenta, putc, fgets, green} fputs: col; for text file fgetc, getc, fputc, putc, fwrite: for binary file 한밭대정보통신공학과 и чунг хо 20