19
20162학기 고급컴퓨터프로그래밍및실습 (36342-02) LAB #10 표준 라이브러리, 파일 입출력 1

LAB #10 표준라이브러리 파일입출력 - KOCWcontents.kocw.net/KOCW/document/2016/ewha/kimmyeong/20-2.pdf · 2017. 2. 20. · 표준라이브러리함수의사용 ,

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: LAB #10 표준라이브러리 파일입출력 - KOCWcontents.kocw.net/KOCW/document/2016/ewha/kimmyeong/20-2.pdf · 2017. 2. 20. · 표준라이브러리함수의사용 ,

2016년2학기 고급컴퓨터프로그래밍및실습 (36342-02)

LAB #10 표준 라이브러리, 파일 입출력

1

Page 2: LAB #10 표준라이브러리 파일입출력 - KOCWcontents.kocw.net/KOCW/document/2016/ewha/kimmyeong/20-2.pdf · 2017. 2. 20. · 표준라이브러리함수의사용 ,

표준 라이브러리 함수의 사용

<ctype.h>, <stdlib.h>

파일 입출력 (텍스트, 바이너리)

엑셀 파일 작업

실습 내용2

Page 3: LAB #10 표준라이브러리 파일입출력 - KOCWcontents.kocw.net/KOCW/document/2016/ewha/kimmyeong/20-2.pdf · 2017. 2. 20. · 표준라이브러리함수의사용 ,

문자 분류 함수: <ctype.h> 포함3

Page 4: LAB #10 표준라이브러리 파일입출력 - KOCWcontents.kocw.net/KOCW/document/2016/ewha/kimmyeong/20-2.pdf · 2017. 2. 20. · 표준라이브러리함수의사용 ,

(실습1) 문자 분류하기

사용자로부터 문자 1개를 입력 받은 후, 그 문자가 ‘알파벳’인지, '숫자’인

지, ‘특수문자’인지 찾아내어 그 결과를 출력하도록 아래 프로그램을 완성

하시오.

4

힌트isalpha(ch), isdigit(ch) 사용

Page 5: LAB #10 표준라이브러리 파일입출력 - KOCWcontents.kocw.net/KOCW/document/2016/ewha/kimmyeong/20-2.pdf · 2017. 2. 20. · 표준라이브러리함수의사용 ,

데이터 변환 함수: <stdlib.h>나 ctype.h> 포함

5

Page 6: LAB #10 표준라이브러리 파일입출력 - KOCWcontents.kocw.net/KOCW/document/2016/ewha/kimmyeong/20-2.pdf · 2017. 2. 20. · 표준라이브러리함수의사용 ,

(실습2) 호텔 방 사이의 거리 구하기

room1과 room2에 어떤 호텔의 3층 방 번호가 각각 저장되어 있다. 두 방

사이의 거리를 구하여 출력하도록 프로그램을 완성하시오.

6

315 316 317 341

바다

힌트atoi( ) 사용

Page 7: LAB #10 표준라이브러리 파일입출력 - KOCWcontents.kocw.net/KOCW/document/2016/ewha/kimmyeong/20-2.pdf · 2017. 2. 20. · 표준라이브러리함수의사용 ,

(실습3) 알파벳의 대소문자 구분

영문 이름을 입력 받은 후, 그 이름을 모두 소문자로 또는 모두 대문자로

출력하도록 프로그램을 완성하시오.

7

줄바꿈 표시 (enter 키)가나올 때까지 읽는다.

힌트: tolower( ),toupper( );

Page 8: LAB #10 표준라이브러리 파일입출력 - KOCWcontents.kocw.net/KOCW/document/2016/ewha/kimmyeong/20-2.pdf · 2017. 2. 20. · 표준라이브러리함수의사용 ,

(실습4) 입력한 알파벳 개수 세기

다음 프로그램은 한 줄에 하나의 문자를 받는다. 입력하는 문자가 n 또는 N

이 나올 때까지 입력을 받으며, 받은 입력 중에 알파벳은 몇 개 인지 세어

그 개수를 출력하도록 프로그램을 완성하시오.

8

실제 입력은 O<enter>p<enter>x<enter> .. 입니다.입력되는 문자들 중에서 알파벳만 읽어봅시다.

Page 9: LAB #10 표준라이브러리 파일입출력 - KOCWcontents.kocw.net/KOCW/document/2016/ewha/kimmyeong/20-2.pdf · 2017. 2. 20. · 표준라이브러리함수의사용 ,

(실습5) 텍스트 화일 읽기

data1.txt , data2.txt , data3.txt 화일에는 정수 10개가 각각 저장되어 있다.

각 화일에서 숫자들을 읽은 다음, 화면에 다음과 같은 모양으로 출력하는

프로그램을 작성하시오.

9

파일에서 읽기 전에그 파일들을 열어파일의 내용을 확인하시오.

Page 10: LAB #10 표준라이브러리 파일입출력 - KOCWcontents.kocw.net/KOCW/document/2016/ewha/kimmyeong/20-2.pdf · 2017. 2. 20. · 표준라이브러리함수의사용 ,

(실습6) 여러 파일 읽고 쓰기

data1.txt , data2.txt , data3.txt 화일에는 정수 10개가 각각 저장되어 있다.

각 화일에서 숫자들을 읽은 다음, result.txt 에 다음과 같은 모양으로 출력

하는 프로그램을 작성하시오.

10

입력용 파일 3개와 출력용 파일1개를 동시에 열고 작업한다.

Page 11: LAB #10 표준라이브러리 파일입출력 - KOCWcontents.kocw.net/KOCW/document/2016/ewha/kimmyeong/20-2.pdf · 2017. 2. 20. · 표준라이브러리함수의사용 ,

(복습1) 바이너리 파일 입출력

다음 프로그램을 실행시켜 보면서 프로그램의 내용을 이해하시오.

11

계속

바이너리형태로 쓰기

파일 닫기

Page 12: LAB #10 표준라이브러리 파일입출력 - KOCWcontents.kocw.net/KOCW/document/2016/ewha/kimmyeong/20-2.pdf · 2017. 2. 20. · 표준라이브러리함수의사용 ,

(복습1) 바이너리 파일 입출력12

정수 10개가 들어 있는 배열을fp 가 가리키는 파일에서 읽어배열 arr2[10] 에 저장한다.

배열 arr2[10]에 저장되어 있는내용을 확인하기 위해 우리가알아볼 수 있는 포맷으로 (%d) 화면에 (stdout) 출력해 본다.

Page 13: LAB #10 표준라이브러리 파일입출력 - KOCWcontents.kocw.net/KOCW/document/2016/ewha/kimmyeong/20-2.pdf · 2017. 2. 20. · 표준라이브러리함수의사용 ,

(실습7) 변수들의 바이너리 입출력

다음을 순서대로 실행하는 프로그램을 작성해 보시오.

(1) 정수 변수 a, b, c 를 선언하고 각각 10, 20, 30으로 초기화한다.

(2) 이 변수들을 하나씩 바이너리 형태로 outfile.dat 에 저장한다.

(3) 제대로 저장이 되었는지 알아보기 위해 outfile.dat 에 저장한

값들을 순서대로 정수 변수 x, y, z 에 읽어들인다.

(4) 변수 x, y, z 의 값들을 다음 그림과 같이 화면에 출력해 본다.

13

Page 14: LAB #10 표준라이브러리 파일입출력 - KOCWcontents.kocw.net/KOCW/document/2016/ewha/kimmyeong/20-2.pdf · 2017. 2. 20. · 표준라이브러리함수의사용 ,

(실습8) 구조체의 바이너리 입출력

다음을 순서대로 실행하는 프로그램을 작성해 보시오.

(1) 학생 구조체를 선언한다. 이 구조체에는 이름, 학년, 점수가 각각

Name[20], year, score 에 저장된다.

(2) main( ) 에서 학생 3명 s1, s2, s3을 선언하고 임의로 초기화 한다.

(3) 학생 3명의 정보를 각각 바이너리 형태로 student.dat 화일에 쓴다.

(3) 제대로 저장이 되었는지 알아보기 위해 student.dat 에 저장한

학생 정보를 학생 구조체 t1, t2, t3에 읽어들인다.

(4) t1, t2, t3 에 저장된 학생 정보를 아래 그림과 같이 화면에 출력해 본다.

14

Lab10 – p8 - base.txt참고

Page 15: LAB #10 표준라이브러리 파일입출력 - KOCWcontents.kocw.net/KOCW/document/2016/ewha/kimmyeong/20-2.pdf · 2017. 2. 20. · 표준라이브러리함수의사용 ,

(실습9) 구조체 배열의 바이너리 입출력

실습 8에서 student 구조체를 선언하였다. main( ) 에서 학생 3명의 정보를

담을 수 있는 구조체 배열을 선언하고, 실습4에서와 같은 정보를 배열이 담

는다.

이제 학생 구조체 배열을 바이너리 파일인 student2.dat 파일에 한꺼번에

쓴다.

student2.dat 화일에 저장된 정보를 또 하나의 학생 정보를 담는 구조체 배

열에 저장하고, 잘 저장이 되었는지 화면에 값들을 출력해 본다.

15

Lab10 – p9 - base.txt 참고

Page 16: LAB #10 표준라이브러리 파일입출력 - KOCWcontents.kocw.net/KOCW/document/2016/ewha/kimmyeong/20-2.pdf · 2017. 2. 20. · 표준라이브러리함수의사용 ,

(실습10) 행렬의 덧셈

matrix.txt 파일에 4x4 행렬이 두 개 들어 있다. 이 두 행렬을 a[4][4] 와

b[4][4] 에 읽어 들인 후, 두 행렬을 더하여 행렬 c[4][4]에 저장하시오. 그 다

음에 c[4][4]를 화면에 출력하시오.

16

입력 파일 출력 파일

Page 17: LAB #10 표준라이브러리 파일입출력 - KOCWcontents.kocw.net/KOCW/document/2016/ewha/kimmyeong/20-2.pdf · 2017. 2. 20. · 표준라이브러리함수의사용 ,

(실습11) 매크로 함수의 이해

다음 프로그램을 실행하고, 출력 결과를 이해하시오.(참고) #define 으로 정의되는 매크로 함수의 파라미터 대치는 “의미를 고려하지 않은 채, “문자열 대치”에 해당한다.

COMP1과COMP2의 기능을이해하시오.

17

Page 18: LAB #10 표준라이브러리 파일입출력 - KOCWcontents.kocw.net/KOCW/document/2016/ewha/kimmyeong/20-2.pdf · 2017. 2. 20. · 표준라이브러리함수의사용 ,

(실습12) 엑셀 파일 읽기

엑셀 파일에 다음과 같이 저장하고, 이 파일을 공백으로 분리된 prn 파일로

저장한다. 이 파일로부터 숫자들을 읽어 그 모양 그대로 화면에 출력해 보

시오.

18

Page 19: LAB #10 표준라이브러리 파일입출력 - KOCWcontents.kocw.net/KOCW/document/2016/ewha/kimmyeong/20-2.pdf · 2017. 2. 20. · 표준라이브러리함수의사용 ,

(실습13) 텍스트 파일 엑셀에서 읽기

다음과 같은 텍스트 파일을 엑셀에서 열어 보시오.

19

일정한 간격으로 분리되어있다는 점을 사용하여 읽기