Chapter 7 Text Files.

Slides:



Advertisements
Similar presentations
6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
Advertisements

Format String Attack! 포맷 스트링 공격 경일대학교 사이버보안학과 학년 남주호.
C 프로그래밍 기초.
Part 03 상수, 변수, 자료형 ©우균, 창병모 © 우균, 창병모.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
-Part3- 제3장 콘솔 입출력과 파일 입출력.
C 프로그래밍 소개 숙명여대 창병모 2011 가을.
Chapter 10– 표준 함수(1) Outline 10.1 스트림과 파일 10.2 입출력 표준 함수
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
데이터 파일 C 데이터 파일과 스트림(Stream) 텍스트 파일 처리
자료 구조: Chapter 3 (2)구조체, 포인터
조 병 규 Software Quality Lab. 한국교통대학교
쉽게 풀어쓴 C언어 Express 제16장 파일 입출력 C Express Slide 1 (of 23)
HW#1 Source 파일 제출 3.20(수)까지 제출 학번_이름_01.c
Part 14 파일 입출력 ©우균, 창병모 ©우균, 창병모.
제15장 파일 입출력 문자열을 출력하는 여러가지 방법 (15-2쪽) 문자열만 처리하는 입출력 함수
07. 디바이스 드라이버의 초기화와 종료 김진홍
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
9장 파일 입출력.
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
제 17 강 formatted I/O shcho.pe.kr.
처음으로 배우는 C 프로그래밍 제5부 추가적인 화제들 제 11 장 파일 처리.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
파일 기술자 복사 파일 기술자 복사 : dup(2) 파일 기술자 복사 : dup2(3)
파일 기술자 파일 기술자 현재 열려있는 파일을 구분하는 정수값 저수준 파일 입출력에서 열린 파일을 참조하는데 사용
임베디드 실습 # LED, 7’Segment 제어
2주차: 변수, 수식, Control Flow.
Chapter 11 Strings.
Chapter 4. 보조자료 - 파일 입출력 파일의 기본 개념과 특징을 이해한다. 파일 처리 과정을 이해한다.
C언어 프로그래밍의 이해 Ch14. 파일 입출력.
11 표준 입출력과 파일 입출력 데이터를 읽고 쓰는 다양한 방법 익히기!.
프로그래밍 랩 – 7주 리스트.
TCP/IP Socket Programming…
14주차.
14장. 포인터와 함수에 대한 이해.
PySpark Review 박영택.
10장 C 표준 파일 입출력 子曰 學而時習(실습?)之 不亦悅乎.
Chapter 13 Input/Output and Files
9장 파일 입출력.
17강 파일처리함수(1) 강 의 내 용 파일 입출력의 개념 파일포인터를 이용한 입출력 파일 입출력 과정
18강 파일처리함수(2) 강 의 내 용 순차파일 만들기와 읽기 순차파일 입출력함수 랜덤파일 처리
C 2장. C 프로그램 시작하기 #include <stdio.h> int main(void) { int num;
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
어서와 C언어는 처음이지 제14장.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
유승석 FILE I/O File Input/Output 유승석 SD50 – C# & .NET Platform.
24장. 파일 입출력.
쉽게 풀어쓴 C언어 Express 제14장 포인터 활용 C Express Slide 1 (of 22)
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
01_ C++ 스타일의 입출력 02_ C 스타일의 입출력
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
8주차: Strings, Arrays and Pointers
5장 선택제어문 if 선택문 switch-case 선택문 다양한 프로그램 작성 조건 연산자.
제 15 강 문자와 코드 shcho.pe.kr.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
TVM ver 최종보고서
구조체(struct)와 공용체(union)
Chapter 12 파일 입출력.
9주차: Using Files and Others
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
제 29 강 스트링(string) 다루기 s a i s . s T i h t g r i n.
C 13장. 입출력 라이브러리 #include <stdio.h> int main(void) { int num;
1. 지역변수와 전역변수 2. auto, register 3. static,extern 4. 도움말 사용법
어서와 C언어는 처음이지 제21장.
C.
2019 1학기 응용프로그래밍 - 파일 처리 01 파일 열기 02 파일 저장과 내용 읽기 03 이진파일 처리 04 임의접근 파일 처리 05 파일 관련 함수들.
개정판 누구나 즐기는 C언어 콘서트 제12장 파일 입출력 출처: pixabay.
⊙ 입출력 처리란? data를 입력장치로부터 program 내부로 읽어 들이거나
제 10 강 문자 입출력.
Presentation transcript:

Chapter 7 Text Files

파일(file) 하나의 단위로 취급하는 외부 데이터의 단위 종류 보조메모리에 주로 저장 텍스트 파일 이진 파일 그래픽문자로 저장 라인(레코드) 단위로 분리 (\n) 이진 파일 보조메모리에 주로 저장 버퍼(buffer)를 통한 속도 조정 동시에 레코드 단위의 자료이동

Figure 7-1

파일과 스트림 C는 모든 파일을 스트림(stream)으로 본다. 파일 테이블 입출력을 문자의 열(시간의 흐름)로 봄 파일을 사용하는 부분과 외부파일을 연결 FILE *filename ; FILE *fpTempData;

Figure 7-2

Figure 7-3

표준 파일 세 개의 표준파일 <stdio.h>에 정의됨 표준입력(stdin), 표준출력(stdout), 표준에러(stderr)

Figure 7-4

사용자 정의 파일 FILE *fpStudents; /* file pointer */ FILE *fpGrades; 주로 파일포인터임을 보이기 위해 fp(file pointer)를 파일이름 앞에 쓰지만 다르게 써도 됨 FILE *grade;

Figure 7-5

Figure 7-6

표준 라이브러리 입/출력 함수 파일 열기 파일열기 fopen(“filename”, “mode”); “r”: open for reading, file exists, the marker is positioned at begging, no file  error “w”: open for writing, file exists  emptied, no file  created “a”: open for append, 파일이 있으면 끝에 지시자 위치, 없으면 새로 생성 예) fpTempData = fopen(“TEMPS.DAT”, “w”); fpTempData = fopen(“A:\\TEMPS.DAT”, “w”); 오류의 예 파일 열기에 실패하면 file pointer 값이 NULL이 됨, 꼭 검사를 할 것 논리적 오류: if (fpTemp = fopen(“TEMPS.DAT”, “w”) == NULL)

Figure 7-7

Figure 7-8

파일 닫기 fpTemps = fopen(“TEMPS.DAT”, “w”); … fclose(fpTemps); 오류 성공하면 0을 반환 실패하면 EOF 값을 반환, <stdio.h>에 이 값이 상수로 정의되어 있으며, 주로 -1임 예) if(fclose(fpTemps) == EOF) {오류 처리}

형식화 입출력 함수 형식화에 대해서는 앞에서 설명했으므로 생략 표 7-2에 잘 정리되어 있음

Figure 7-9

Figure 7-10

Figure 7-11

Figure 7-12

Figure 7-13

scanf와 fscanf 표준입력 장치: scanf(scan formatted) 파일 입력: fscanf(file scanf) 형식 scanf(“format string”, address list); fscanf(fp, “format string”, address list); 입력변환은 다음까지 계속 파일의 끝 부적절한 문자 읽은 문자의 수가 명시된 최대필드 길이에 도달 읽은 후 scanf는 성공적으로 읽은 변수의 수를 반환한다. 데이터가 하나도 없으면 EOF를 반환한다.

Figure 7-14

Figure 7-15

#include <stdio.h> #define FLUSH while (getchar() != '\n') #define ERR1 "\aPrice incorrect. Re-enter both fields\n" #define ERR2 "\aAmount incorrect. Re-enter both fields\n" int main (void) { int ioResult; int amount; float price; /* Read price and amount */ do printf("\nEnter amount and price: "); ioResult = scanf("%d%f", &amount, &price); if (ioResult != 2) FLUSH; if (ioResult == 1) printf(ERR1); else printf(ERR2); } /* if */ } while (ioResult != 2); printf("Amount: %d | Price: %5.2f\n", amount, price); return 0; } /* main */

#include <stdio.h> #include <stdlib.h> int main (void) { /* Local Definitions */ FILE *fpIn; int numIn; /* Statements */ fpIn = fopen("P7-03.DAT", "r"); if (!fpIn) printf("Could not open file\a\n"); exit (101); } /* if open fail */ while ((fscanf(fpIn, "%d", &numIn)) == 1) printf("%d ", numIn); return 0; } /* main */

#include <stdio.h> #include <stdlib.h> int main (void) { FILE *fpIn; FILE *fpOut; int numIn; int closeResult; printf("Running file copy\n"); fpIn = fopen("P7-03.DAT", "r"); if (!fpIn) printf("Could not open input file\a\n"); exit (101); } /* if open fail */ fpOut = fopen("P7-04.DAT", "w"); if (!fpOut) printf("Could not open output file\a\n"); exit (102); while ((fscanf(fpIn, "%d", &numIn)) == 1) fprintf(fpOut, "%d\n", numIn); closeResult = fclose(fpOut); if (closeResult == EOF) printf("Could not close output file\a\n"); exit (201); } /* if close fail */ printf("File copy complete\n"); return 0; } /* main */

문자 입출력 함수: 표준입출력 한 문자 입력 한 문자 출력 형식: int getchar(void) ; 오류가 발생하면 EOF를 반환 반환을 정수로 하는 이유는 EOF 때문임 한 문자 출력 형식: int putchar(int out_char) ; 오류가 발생하면 EOF반환 성공하면 출력한 값을 반환

문자 입출력: 파일 입출력 getc, fgetc putc, fputc 형식: 예: 파일의 끝을 만나거나 오류면 EOF를 반환 int getc(FILE *fpIn); int fgetc(FILE *fpIn); 예: nextChar = getc(fpMyFile); nextChar = fgetc(fpMyFile); 파일의 끝을 만나거나 오류면 EOF를 반환 putc, fputc int putc (int oneChar, FILE *fpOut); int fputc (int oneChar, FILE *fpOut); putc(oneChar, fpMyfile); fputc(oneChar, fpMyfile); 오류가 생기면 모두 EOF를 반환, 성공하면 출력 값을 반환

ungetc ungetc getc와 반대로 읽은 것 하나를 되돌림 다수 문자를 되돌릴 수 있는지는 시스템에 따라 가르므로 사용하지 말 것, 다수를 돌릴 수 있을 때 돌리지 못하면 EOF를 출력 int ungetc(int oneChar, FILE *stream); 사용 예 option = getc(stdin); if (isdigit(option)) ungetc(option, stdin); else ….

#include <stdio.h> int main (void) { FILE *fpText; int c; int closeStatus; printf("This program copies your input to a file.\n"); printf("When you are through, enter <EOF>.\n\n"); if (!(fpText = fopen("P7-07.DAT","w"))) printf("Error opening FILE1.DAT for writing"); return (1); } /* if open */ while ((c = getchar()) != EOF) fputc(c, fpText); closeStatus = fclose(fpText); if (closeStatus == EOF) printf("Error closing file\a\n"); return 100; } /* if */ printf("\n\nYour file is complete\n"); return 0; } /* main */

실습과 8장 예습 실습 예습 텍스트를 읽어서 자음, 모음, 구두점 수 및 단어 수를 출력하는 프로그램을 작성하라. 파일에서 정수 숫자를 읽어 짝수와 홀수를 구별하여 다른 파일에 저장하는 프로그램을 작성하라. 문제 22, 47 예습 8, 16, 17, 28번