C 13장. 입출력 라이브러리 #include <stdio.h> int main(void) { int num;

Slides:



Advertisements
Similar presentations
제6장 조건문.
Advertisements

C 프로그래밍 기초.
제12장 표준 입출력과 파일 입출력.
[ 단원 12 ] 파일처리 부산대학교 남 태 우.
쉽게 풀어쓴 C언어 Express 제16장 파일 입출력 C Express.
쉽게 풀어쓴 C언어 Express 제16장 파일 입출력 C Express.
2014 ITA 8월 강의 C Programming -1주차- C언어 기초 정대진 ( )
-Part3- 제3장 콘솔 입출력과 파일 입출력.
C 프로그래밍 소개 숙명여대 창병모 2011 가을.
Chapter 10– 표준 함수(1) Outline 10.1 스트림과 파일 10.2 입출력 표준 함수
Department of Computer Engineering
C 6장. 함수 #include <stdio.h> int main(void) { int num;
제3장 추가 실습 3장 관련 C 언어 프로그래밍 실습.
C 10장. 함수의 활용 #include <stdio.h> int main(void) { int num;
쉽게 풀어쓴 C언어 Express 제18장 입출력과 라이브러리 함수 C Express.
C 11장. 포인터의 활용 #include <stdio.h> int main(void) { int num;
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
제5장 제어명령
처음으로 배우는 C 프로그래밍 제2부 기초 제5장 반복문.
6장. printf와 scanf 함수에 대한 고찰
쉽게 풀어쓴 C언어 Express 제16장 파일 입출력 C Express Slide 1 (of 23)
HW#1 Source 파일 제출 3.20(수)까지 제출 학번_이름_01.c
Part 14 파일 입출력 ©우균, 창병모 ©우균, 창병모.
쉽게 풀어쓴 C언어 Express 제16장 스트림과 파일 입출력 C Express.
7. while 문의 흐름 제어.
쉽게 풀어쓴 C언어 Express 제17장 동적 메모리와 연결 리스트 C Express.
동적메모리와 연결리스트 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
Department of Computer Engineering
C 9장. 구조체 #include <stdio.h> int main(void) { int num;
C 7장. 배열과 문자열 #include <stdio.h> int main(void) { int num;
컴퓨터 프로그래밍 기초 - 2nd : scanf(), printf() 와 연산자 -
21장. 문자와 문자열 처리 함수.
9장 파일 입출력.
처음으로 배우는 C 프로그래밍 제5부 추가적인 화제들 제 11 장 파일 처리.
파일 기술자 복사 파일 기술자 복사 : dup(2) 파일 기술자 복사 : dup2(3)
12장 파일처리와 매크로 파일 입출력 함수 문자 입출력 함수 라인 입출력 함수 불록 입출력 함수 매크로.
Chapter 11 Strings.
Chapter 4. 보조자료 - 파일 입출력 파일의 기본 개념과 특징을 이해한다. 파일 처리 과정을 이해한다.
C언어 프로그래밍의 이해 Ch14. 파일 입출력.
Department of Computer Engineering
14주차.
10장 C 표준 파일 입출력 子曰 學而時習(실습?)之 不亦悅乎.
Chapter 13 Input/Output and Files
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express.
4장 제어문 선택문: if 문, if – else 문, switch 문
17강 파일처리함수(1) 강 의 내 용 파일 입출력의 개념 파일포인터를 이용한 입출력 파일 입출력 과정
18강 파일처리함수(2) 강 의 내 용 순차파일 만들기와 읽기 순차파일 입출력함수 랜덤파일 처리
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
2장 표준 입출력 표준 입출력 함수의 종류 형식화된 입출력 문자 입출력 문자열 입출력.
11장. 1차원 배열 IT응용시스템공학과 김 형 진 교수.
컴퓨터 프로그래밍 기초 - 4th : 수식과 연산자 -
제어문 & 반복문 C스터디 2주차.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
조 병 규 Software Quality Lab. 한국교통대학교
Fflush 사용이유 및 방법 [이유] 키보드에서 입력된 내용은 입력버퍼에 저장되었다가 Enter 키가 들어오면 프로그램으로 전달됨 이 때 입력버퍼에 있는 Enter 키도 프로그램으로 전달됨 그러므로 아래와 같은 프로그램에서 문자 하나를 입력해도 Enter키도 입력된 것으로.
6장 반복제어문 for 문 while 문 do while 문 기타 제어문.
파일 입출력.
-Part1- 제8장 조건문이란 무엇인가 (교재 199페이지 ~ 224페이지)
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express Slide 1 (of 28)
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express.
1학기 정리 지난 학기에 배운 내용을 복습해 본다..
구조체(struct)와 공용체(union)
실습과제 1번 생성된 파일 basic.txt를 프로젝트 폴더에서 메모장으로 열고 내용을 확인
어서와 C언어는 처음이지 제16장.
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
printf("Global Korea\n");
C 프로그래밍은 매우 도전적인 작업이다. 도전의 이면에 철저한 준비와 체계적인 노력
Chapter 09. 배열.
개정판 누구나 즐기는 C언어 콘서트 제12장 파일 입출력 출처: pixabay.
⊙ 입출력 처리란? data를 입력장치로부터 program 내부로 읽어 들이거나
Presentation transcript:

C 13장. 입출력 라이브러리 #include <stdio.h> int main(void) { int num; printf(“Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("Is negative.\n"); printf("num = %d\n", num); return 0; }

학습목표 ■ 스트림의 기본 개념을 알아보고, 표준 입출력에 대해 알아본다. ■ scanf 함수를 이용한 입력 시 에러 처리 방법을 알아본다. ■ 파일 입출력의 기본 개념에 대하여 알아본다. ■ 텍스트 파일 입출력과 바이너리 파일 입출력에 사용되는 표준 C 라이브러리 함수에 대하여 알아본다. 13장. 입출력 라이브러리

목차 표준 입출력 파일 입출력 스트림 기반의 입출력 printf 함수 다시 보기 scanf 함수 다시 보기 그 밖의 표준 입출력 함수 파일 입출력 파일 입출력의 개요 텍스트 파일 입출력 바이너리 파일 입출력 13장. 입출력 라이브러리

스트림 :연속된 데이터 바이트의 흐름 프로그램의 입출력(I/O) 표준 입출력 프로그램이 프로그램의 외부와 상호작용을 하는 것 스트림 기반의 입출력 스트림 :연속된 데이터 바이트의 흐름 프로그램의 입출력(I/O) 프로그램이 프로그램의 외부와 상호작용을 하는 것 장치 독립성(device independence) : 입출력 장치의 종류에 관계없이 동일한 방법으로 입출력을 수행한다. 13장. 입출력 라이브러리

표준 입출력 스트림 기반의 입출력 버퍼를 경유한 입출력 표준 C 입출력 라이브러리에서는 입력 스트림의 내부에 버퍼를 두고, 키보드로부터 입력된 내용을 임시로 버퍼에 저장했다가 특정 시점에 프로그램으로 한 번에 전달한다. 입력 장치와 CPU의 처리 속도 차에도 불구하고 효율적인 입출력이 가능하다. 13장. 입출력 라이브러리

표준 입출력 스트림 표준 입출력 표준 C 입출력 라이브러리는 표준 입출력 스트림을 제공한다. 스트림 기반의 입출력 표준 입출력 스트림 표준 C 입출력 라이브러리는 표준 입출력 스트림을 제공한다. 표준 입출력을 수행하기 위한 기본적인 스트림을 프로그램 시작 시 생성하고, 프로그램 종료 시 해제한다. stdin, stdout, stderr가 바로 표준 입출력 스트림이다. 13장. 입출력 라이브러리

printf 함수의 원형 printf 함수의 형식 문자열의 구조 표준 입출력 printf 함수 다시 보기 13장. 입출력 라이브러리

type 필드 : 출력할 값의 형식을 지정 type 필드 : 표준 입출력 type 필드 앞에 h, l, L 지정 printf 함수 다시 보기 type 필드 : 출력할 값의 형식을 지정 type 필드 : type 필드 앞에 h, l, L 지정 h : short형을 출력 l : long형을 출력 ex. %hd는 short형을 10진수 정수로 출력 ex. %ld는 long형을 10진수 정수로 출력 L : 실수형 중 long double형을 출력 13장. 입출력 라이브러리

width 필드 : 출력하는 값의 폭을 지정 표준 입출력 출력의 폭을 지정하면 전체 폭의 오른쪽에 맞춰서 출력한다. printf 함수 다시 보기 width 필드 : 출력하는 값의 폭을 지정 출력의 폭을 지정하면 전체 폭의 오른쪽에 맞춰서 출력한다. 실수를 출력할 때는 소수점 이하 6자리를 기본적으로 출력한다. 13장. 입출력 라이브러리

precision 필드 : 출력하는 값의 정밀도를 지정 표준 입출력 printf 함수 다시 보기 precision 필드 : 출력하는 값의 정밀도를 지정 정밀도보다 출력할 정수의 개수가 적으면 0으로 채워서 출력한다. 실수 출력에 정밀도를 지정하면, 소수점 이하 자리수의 개수를 의미한다. 13장. 입출력 라이브러리

flags 필드 : -, +, O, 빈칸, # 문자가 올 수 있다. 표준 입출력 printf 함수 다시 보기 flags 필드 : -, +, O, 빈칸, # 문자가 올 수 있다. 13장. 입출력 라이브러리

표준 입출력 scanf 함수 다시 보기 scanf 함수의 원형 scanf 함수의 형식 문자열의 구조 13장. 입출력 라이브러리

type 필드 표준 입출력 문자 입력 : %c 정수 입력 : %d, %i, %u, %o, %x, %X scanf 함수 다시 보기 type 필드 문자 입력 : %c 정수 입력 : %d, %i, %u, %o, %x, %X 실수 입력 : %e, %E, %f, %g, %G 문자열 입력 : %s 13장. 입출력 라이브러리

width 필드 : 입력 받을 값의 폭을 지정 표준 입출력 입력받을 값의 자릿수를 지정한다. scanf 함수 다시 보기 width 필드 : 입력 받을 값의 폭을 지정 입력받을 값의 자릿수를 지정한다. width 필드를 지정하면 공백 문자로 구분하지 않고도 여러 값을 입력할 수 있다. *는 현재 입력을 무시하라는 의미이다. 13장. 입출력 라이브러리

표준 입출력 scanf 함수 다시 보기 scanf 함수의 형식 문자열 사용 예 13장. 입출력 라이브러리

scanf 함수를 이용한 입력 시 에러 처리 표준 입출력 scanf 함수의 리턴 값 : 정상적으로 입력된 항목의 개수 여러 개의 항목을 입력 받을 때는 전체 항목의 개수를 확인한다. 13장. 입출력 라이브러리

입력에 대한 에러 처리 예(1/4) 표준 입출력 scanf 함수 다시 보기 13장. 입출력 라이브러리 01: /* Ex13_01.c */ 02: #include <stdio.h> 03: 04: int main(void) 05: { 06: int a, b; 07: char op; 08: 09: while ( 1 ) 10: { 11: printf("수식을 입력하세요 (0 0 0 입력시 종료) : "); 12: if( scanf("%d %c %d", &a, &op, &b) < 3 ) 13: { 14: printf("잘못 입력하셨습니다.\n" 15: "<정수> <연산자> <정수>의 순으로 입력하세요.\n"); 16: continue; 17: } 18: 입력에 대한 에러 처리 13장. 입출력 라이브러리

입력에 대한 에러 처리 예(2/4) 표준 입출력 scanf 함수 다시 보기 13장. 입출력 라이브러리 19: if( a == 0 && op == '0' && b == 0 ) 20: break; 21: switch ( op ) 22: { 23: case '+': 24: printf("%d + %d = %d\n", a, b, a + b); 25: break; 26: case '-': 27: printf("%d - %d = %d\n", a, b, a - b); 28: break; 29: case '*': 30: printf("%d * %d = %d\n", a, b, a * b); 31: break; 32: case '/': 33: printf("%d / %d = %d\n", a, b, a / b); 34: break; 35: default: 36: printf("잘못된 연산자입니다.\n"); 37: continue; 38: } 13장. 입출력 라이브러리

표준 입출력 scanf 함수 다시 보기 입력에 대한 에러 처리 예(3/4) 39: 40: } 41: 42: return 0; 43: } 입력 버퍼에 들어 있는 “a b c”는 사용되지 않았으므로 계속 입력 버퍼에 남아있게 된다. 13장. 입출력 라이브러리

표준 입출력 scanf 함수 다시 보기 입력에 대한 에러 처리 예(4/4) 13장. 입출력 라이브러리

ffush 함수 : 입력 버퍼를 강제로 비울 때 사용 표준 입출력 scanf 함수 다시 보기 ffush 함수 : 입력 버퍼를 강제로 비울 때 사용 13장. 입출력 라이브러리

표준 입출력 그 밖의 표준 입출력 함수 그 밖의 표준 입출력 함수 13장. 입출력 라이브러리

표준 입출력 함수와 파일 입출력 함수 표준 입출력 스트림 방식의 입출력 라이브러리는 입출력 장치에 관계없이 동일한 방식으로 입 그 밖의 표준 입출력 함수 표준 입출력 함수와 파일 입출력 함수 스트림 방식의 입출력 라이브러리는 입출력 장치에 관계없이 동일한 방식으로 입 출력을 처리할 수 있다. 키보드 입력과 파일 입력, 콘솔 출력과 파일 출력을 동일하게 처리할 수 있다. 표준 C 입출력 라이브러리는 표준 입출력 함수를 파일 입출력 함수와는 별도로 제공한다. 콘솔 출력에는 printf 함수를 사용하고, 파일 출력에는 fprintf 함수를 사용한다. 언제든지 표준 입출력 함수 대신 파일 입출력 함수를 이용해서 표준 입출력을 처리할 수 있다. 13장. 입출력 라이브러리

파일 입출력의 개요(1/2) 파일 입출력 파일 입출력을 할 때는, 먼저 스트림을 생성한 다음에 입출력을 수행해야 한다. fopen 함수로 파일을 열면 파일 포인터가 리턴된다. 파일에 접근하려면 항상 파일 포인터가 필요하다. 일단 파일을 연 다음에는 여러 가지 파일 입출력 함수를 이용해서 입출력 작업을 수행한다. 텍스트 파일 입출력 : fgetc, fputc, fgets, fputs, fscanf, fprintf 바이너리 파일 입출력 : fread, fwrite 모든 입출력이 끝나면 파일을 닫아야 한다. 파일을 닫을 때 fclose 함수를 사용한다. 13장. 입출력 라이브러리

파일 입출력 파일 입출력의 개요 파일 입출력의 개요(2/2) 13장. 입출력 라이브러리

파일 열기(1/2) 파일 입출력 파일 입출력을 수행하려면 우선 fopen 함수를 호출해서 파일을 열어야 한다. 파일 입출력의 개요 파일 열기(1/2) 파일 입출력을 수행하려면 우선 fopen 함수를 호출해서 파일을 열어야 한다. fopen 함수의 원형 filename : 파일 이름 mode : 파일 열기 모드 리턴 값 : 생성된 파일 스트림의 파일 포인터를 리턴한다. 파일을 열 수 없으면 널 포인터를 리턴한다. 기본적으로 파일을 텍스트 파일로 간주한다. 13장. 입출력 라이브러리

파일 입출력 파일 입출력의 개요 파일 열기(2/2) 파일 열기 모드 13장. 입출력 라이브러리

파일 닫기 파일 입출력 파일 입출력이 끝나면 fclose 함수를 호출해서 반드시 파일을 닫아야 한다. fclose 함수의 원형 파일 입출력의 개요 파일 닫기 파일 입출력이 끝나면 fclose 함수를 호출해서 반드시 파일을 닫아야 한다. fclose 함수의 원형 stream : 파일 포인터 리턴 값 : 파일 닫기가 성공하면 0을 리턴하고, 실패하면 EOF(-1)을 리턴한다. 13장. 입출력 라이브러리

ferror 함수 feof 함수 파일 입출력 파일 입출력 시 발생하는 에러를 확인한다. 파일의 끝인지를 검사한다. 파일 입출력의 개요 ferror 함수 파일 입출력 시 발생하는 에러를 확인한다. 리턴 값 : 스트림에 에러가 발생했으면 0을 이 아닌 값을 리턴하고, 에러가 발생하지 않았으면 0을 리턴한다. feof 함수 파일의 끝인지를 검사한다. 리턴 값 : 읽은 위치가 파일의 끝이면 0이 아닌 값을 리턴하고, 그렇지 않으면 0을 리턴한다. 13장. 입출력 라이브러리

파일 입출력 텍스트 파일 입출력 텍스트 파일 입출력 함수 13장. 입출력 라이브러리

fgetc, fputc 파일 입출력 파일로부터 문자 하나를 입력 받거나 출력할 때 사용된다. 텍스트 파일 입출력 13장. 입출력 라이브러리

fgetc, fputc를 이용한 텍스트 파일 복사(1/2) 파일 입출력 텍스트 파일 입출력 fgetc, fputc를 이용한 텍스트 파일 복사(1/2) 01: /* Ex13_02.c */ 02: #include <stdio.h> 03: 04: int main(int argc, char *argv[ ]) 05: { 06: FILE *fp1, *fp2; 07: char ch; 08: 09: if( argc < 3 ) 10: { 11: printf("Usage: FCopy src_file dest_file\n"); 12: return -1; 13: } 14: 15: fp1 = fopen(argv[1], "r"); 16: if( fp1 == NULL ) 17: { 18: printf("%s 파일 열기 실패\n", argv[1]); 19: return -1; 20: } 파일 포인터 변수 선언 입력용 파일 열기 13장. 입출력 라이브러리

fgetc, fputc를 이용한 텍스트 파일 복사(2/2) 파일 입출력 텍스트 파일 입출력 fgetc, fputc를 이용한 텍스트 파일 복사(2/2) 21: 22: fp2 = fopen(argv[2], "w"); 23: if( fp2 == NULL ) 24: { 25: printf("%s 파일 열기 실패\n", argv[2]); 26: return -1; 27: } 28: 29: while( (ch = fgetc(fp1)) != EOF ) 30: fputc(ch, fp2); 31: 32: fclose(fp1); 33: fclose(fp2); 34: 35: return 0; 36: } 출력용 파일 열기 테스트 파일 복사 파일 닫기 a.txt 파일을 먼저 생성한 다음 명령 프롬프트에 “fcopy.exe a.txt b.txt” 로 실행하면 b.txt 파일이 생성된다. 13장. 입출력 라이브러리

fgets, fputs 파일 입출력 파일로부터 한 줄의 문자열을 입력 받거나 출력할 때 사용된다. fgets fputs 텍스트 파일 입출력 fgets, fputs 파일로부터 한 줄의 문자열을 입력 받거나 출력할 때 사용된다. fgets str : 읽은 문자열을 저장할 문자 배열의 주소 n : 문자 배열의 크기 stream : 입력용 파일 포인터 리턴 값 : 파일로부터 문자열을 최대 n-1개만큼(또는 줄바꿈 문자까지) 읽어서 str에 저장한다. 에러를 만나거나 EOF를 만나면 NULL을 리턴한다. fputs str : 저장할 문자열 fp : 출력용 파일 포인터 리턴 값 : 저장한 문자수 13장. 입출력 라이브러리

fgets, fputs를 이용한 텍스트 파일 복사(1/2) 파일 입출력 텍스트 파일 입출력 fgets, fputs를 이용한 텍스트 파일 복사(1/2) 01: /* Ex13_03.c */ 02: #include <stdio.h> 03: 04: #define MAX_BUF 100 05: 06: int main(int argc, char *argv[ ]) 07: { 08: FILE *fp1, *fp2; 09: char buffer[MAX_BUF]; 10: 11: if( argc < 3 ) 12: { 13: printf("Usage: FCopy src_file dest_file\n"); 14: return -1; 15: } 16: 17: fp1 = fopen(argv[1], "r"); 18: if( fp1 == NULL ) 19: { 문자 배열 선언 13장. 입출력 라이브러리

fgets, fputs를 이용한 텍스트 파일 복사(2/2) 파일 입출력 텍스트 파일 입출력 fgets, fputs를 이용한 텍스트 파일 복사(2/2) 20: printf("%s 파일 열기 실패\n", argv[1]); 21: return -1; 22: } 23: 24: fp2 = fopen(argv[2], "w"); 25: if( fp2 == NULL ) 26: { 27: printf("%s 파일 열기 실패\n", argv[2]); 28: return -1; 29: } 30: 31: while( fgets(buffer, MAX_BUF, fp1) != NULL ) 32: fputs(buffer, fp2); 33: 34: fclose(fp1); 35: fclose(fp2); 36: 37: return 0; 38: } 한 번에 char[100]만큼씩 파일을 읽고 쓰기 때문에 파일 입출력의 횟수가 훨씬 적다. 파일 입출력 시 적은 양의 데이터를 여러 번 입출력을 하는 것보다는 한 번에 많은 양의 데이터를 입출력하는 것이 더 효율적이다. 한 줄씩 문자열 복사 13장. 입출력 라이브러리

fscanf, fprintf 파일 입출력 형식화된 문자열을 파일로 입출력할 때는 사용된다. stream : 파일 포인터 텍스트 파일 입출력 fscanf, fprintf 형식화된 문자열을 파일로 입출력할 때는 사용된다. stream : 파일 포인터 나머지 매개변수는 scanf, printf 함수와 동일하다. 13장. 입출력 라이브러리

상품 목록을 텍스트 파일로 저장하는 예제(1/3) 파일 입출력 텍스트 파일 입출력 상품 목록을 텍스트 파일로 저장하는 예제(1/3) 01: /* Ex13_04.c */ 02: #include <stdio.h> 03: #include <stdlib.h> 04: #include <string.h> 05: 06: #define MAX_PRODUCT 5 07: 08: typedef struct product { 09: char name[20]; 10: int price; 11: int stock; 12: } PRODUCT; 13: 14: int main( ) 15: { 16: PRODUCT prd[MAX_PRODUCT]; 17: int i; 18: FILE *fp = NULL; 19: 13장. 입출력 라이브러리

성적에 대한 보고서를 생성하는 예제(2/3) 파일 입출력 텍스트 파일 입출력 13장. 입출력 라이브러리 20: printf("%d 개의 상품 정보를 입력하세요. \n", MAX_PRODUCT); 21: for( i = 0 ; i < MAX_PRODUCT ; i++ ) 22: { 23: printf("상품명 : "); 24: scanf("%s", prd[i].name); 25: printf("가격, 재고량 : "); 26: scanf("%d %d", &prd[i].price, &prd[i].stock); 27: } 28: 29: fp = fopen("productlist.txt", "w"); 30: if( fp == NULL ) 31: { 32: printf("파일 열기 실패\n"); 33: return -1; 34: } 35: 텍스트 파일 열기 13장. 입출력 라이브러리

성적에 대한 보고서를 생성하는 예제(3/3) 파일 입출력 프로그램 실행 결과 로 생성된 파일 productlist.txt 텍스트 파일 입출력 성적에 대한 보고서를 생성하는 예제(3/3) 36: fprintf(fp, "상 품 명 가 격 재 고 량\n“); 37: for( i = 0 ; i < MAX_PRODUCT ; i++ ) 38: { 39: fprintf(fp, "%-20s %8d %10d\n", 40: prd[i].name, prd[i].price, prd[i].stock); 41: } 42: 43: fclose(fp); 44: return 0; 45: } 텍스트 파일로 출력 텍스트 파일 닫기 프로그램 실행 결과 로 생성된 파일 productlist.txt 상 품 명 가 격 재 고 량 커피믹스 12000 30 생수2L 9500 20 A4용지 3000 5 클리어파일 1000 15 화장지 12000 9 13장. 입출력 라이브러리

파일 입출력 바이너리 파일 입출력 바이너리 파일 입출력 함수 13장. 입출력 라이브러리

fwrite 함수 파일 입출력 파일로 바이너리 데이터를 저장한다. fwrite 함수의 원형 바이너리 파일 입출력 fwrite 함수 파일로 바이너리 데이터를 저장한다. fwrite 함수의 원형 buffer : 파일로 저장할 데이터의 주소 buffer는 배열의 시작 주소가 될 수도 있고, 기본형 변수나 구조체 변수의 주소가 될 수도 있다. size : 저장할 데이터 항목 하나의 바이트 크기 count : 저장할 항목의 개수 stream : 파일 포인터이다. 리턴 값 : 저장한 항목의 개수 13장. 입출력 라이브러리

fread 함수 파일 입출력 파일에서 바이너리 데이터를 읽어온다. fread 함수의 원형 바이너리 파일 입출력 fread 함수 파일에서 바이너리 데이터를 읽어온다. fread 함수의 원형 buffer : 파일로 저장할 데이터의 주소 buffer는 배열의 시작 주소가 될 수도 있고, 기본형 변수나 구조체 변수의 주소가 될 수도 있다. size : 저장할 데이터 항목 하나의 바이트 크기 count : 저장할 항목의 개수 stream : 파일 포인터이다. 리턴 값 : 저장한 항목의 개수 13장. 입출력 라이브러리

바이너리 파일의 입출력 예제(1/2) 파일 입출력 바이너리 파일 입출력 13장. 입출력 라이브러리 01: #include <stdio.h> 02: #include <stdlib.h> 03: 04: int main(void) 05: { 06: int arr1[10] = { 34, 90, 87, 65, 46, 21, 19, 53, 78, 2 }; 07: int arr2[10]; 08: int i; 09: FILE *fp; 10: 11: fp = fopen("test.dat", "wb"); 12: if( fp == NULL ) 13: { 14: printf("파일 열기 실패\n"); 15: return -1; 16: } 17: 18: fwrite(arr1, sizeof(int), 10, fp); 19: fclose(fp); 출력용 바이너리 파일 열기 바이너리 파일로 정수형 배열 저장 13장. 입출력 라이브러리

바이너리 파일의 입출력 예제(2/2) 파일 입출력 바이너리 파일 입출력 13장. 입출력 라이브러리 20: 21: fp = fopen("test.dat", "rb"); 22: if( fp == NULL ) 23: { 24: printf("파일 열기 실패\n"); 25: return -1; 26: } 27: 28: fread(arr2, sizeof(int), 10, fp); 29: fclose(fp); 30: 31: for( i = 0 ; i < 10 ; i++ ) 32: printf("%d ", arr2[i]); 33: printf("\n"); 34: 35: return 0; 36: } 입력용바이너리 파일 열기 바이너리 파일로 정수형 배열 읽기 13장. 입출력 라이브러리

fseek, ftell 파일 입출력 파일의 임의 접근에 사용된다. 바이너리 파일 입출력 fseek, ftell 파일의 임의 접근에 사용된다. fseek 함수 : 파일에서 입출력을 수행할 위치를 조정한다. ftell 함수 : 파일의 입출력 위치를 리턴한다. 13장. 입출력 라이브러리

학습정리 표준 입출력 스트림 기반의 입출력 : 연속된 데이터 바이트의 흐름을 스트림이라고 한다. 스트림을 이용하면 입출력 장치의 종류에 관계없이 동일한 방법으로 입출력을 수행할 수 있다. printf 함수 : printf 함수의 형식 문자열의 구조는 다음과 같다. %[flags] [width] [.precision] [{h | l | L}]type scanf 함수 : scanf 함수의 형식 문자열의 구조는 다음과 같다. %[*] [width] [{h | l | L}]type scanf 함수의 리턴 값을 이용하면 입력 시 에러 처리를 구현할 수 있다. 그 밖의 표준 입출력 함수 13장. 입출력 라이브러리

학습정리 파일 입출력 파일 열기와 파일 닫기 : 파일 열기에는 fopen 함수를 이용하고, 파일 닫기에는 fclose 함수를 이용한다. FILE *fopen(const char *filename, const char *mode); int fclose(FILE *stream); 텍스트 파일 입출력 함수 바이너리 파일 입출력 함수 size_t fread(void *buffer, size_t size, size_t count, FILE *stream); size_t fwrite(const void *buffer, size_t size, size_t count, FILE *stream); 13장. 입출력 라이브러리

13장. 입출력 라이브러리 수고하셨습니다. 질문 있습니까?