lab #10 표준라이브러리 파일입출력 -...
TRANSCRIPT
![Page 1: LAB #10 표준라이브러리 파일입출력 - KOCWcontents.kocw.net/KOCW/document/2016/ewha/kimmyeong/20-2.pdf · 2017. 2. 20. · 표준라이브러리함수의사용 ,](https://reader035.vdocument.in/reader035/viewer/2022071112/5fe7d24c312d3a129a67fe6f/html5/thumbnails/1.jpg)
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. · 표준라이브러리함수의사용 ,](https://reader035.vdocument.in/reader035/viewer/2022071112/5fe7d24c312d3a129a67fe6f/html5/thumbnails/2.jpg)
표준 라이브러리 함수의 사용
<ctype.h>, <stdlib.h>
파일 입출력 (텍스트, 바이너리)
엑셀 파일 작업
실습 내용2
![Page 3: LAB #10 표준라이브러리 파일입출력 - KOCWcontents.kocw.net/KOCW/document/2016/ewha/kimmyeong/20-2.pdf · 2017. 2. 20. · 표준라이브러리함수의사용 ,](https://reader035.vdocument.in/reader035/viewer/2022071112/5fe7d24c312d3a129a67fe6f/html5/thumbnails/3.jpg)
문자 분류 함수: <ctype.h> 포함3
![Page 4: LAB #10 표준라이브러리 파일입출력 - KOCWcontents.kocw.net/KOCW/document/2016/ewha/kimmyeong/20-2.pdf · 2017. 2. 20. · 표준라이브러리함수의사용 ,](https://reader035.vdocument.in/reader035/viewer/2022071112/5fe7d24c312d3a129a67fe6f/html5/thumbnails/4.jpg)
(실습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. · 표준라이브러리함수의사용 ,](https://reader035.vdocument.in/reader035/viewer/2022071112/5fe7d24c312d3a129a67fe6f/html5/thumbnails/5.jpg)
데이터 변환 함수: <stdlib.h>나 ctype.h> 포함
5
![Page 6: LAB #10 표준라이브러리 파일입출력 - KOCWcontents.kocw.net/KOCW/document/2016/ewha/kimmyeong/20-2.pdf · 2017. 2. 20. · 표준라이브러리함수의사용 ,](https://reader035.vdocument.in/reader035/viewer/2022071112/5fe7d24c312d3a129a67fe6f/html5/thumbnails/6.jpg)
(실습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. · 표준라이브러리함수의사용 ,](https://reader035.vdocument.in/reader035/viewer/2022071112/5fe7d24c312d3a129a67fe6f/html5/thumbnails/7.jpg)
(실습3) 알파벳의 대소문자 구분
영문 이름을 입력 받은 후, 그 이름을 모두 소문자로 또는 모두 대문자로
출력하도록 프로그램을 완성하시오.
7
줄바꿈 표시 (enter 키)가나올 때까지 읽는다.
힌트: tolower( ),toupper( );
![Page 8: LAB #10 표준라이브러리 파일입출력 - KOCWcontents.kocw.net/KOCW/document/2016/ewha/kimmyeong/20-2.pdf · 2017. 2. 20. · 표준라이브러리함수의사용 ,](https://reader035.vdocument.in/reader035/viewer/2022071112/5fe7d24c312d3a129a67fe6f/html5/thumbnails/8.jpg)
(실습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. · 표준라이브러리함수의사용 ,](https://reader035.vdocument.in/reader035/viewer/2022071112/5fe7d24c312d3a129a67fe6f/html5/thumbnails/9.jpg)
(실습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. · 표준라이브러리함수의사용 ,](https://reader035.vdocument.in/reader035/viewer/2022071112/5fe7d24c312d3a129a67fe6f/html5/thumbnails/10.jpg)
(실습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. · 표준라이브러리함수의사용 ,](https://reader035.vdocument.in/reader035/viewer/2022071112/5fe7d24c312d3a129a67fe6f/html5/thumbnails/11.jpg)
(복습1) 바이너리 파일 입출력
다음 프로그램을 실행시켜 보면서 프로그램의 내용을 이해하시오.
11
계속
바이너리형태로 쓰기
파일 닫기
![Page 12: LAB #10 표준라이브러리 파일입출력 - KOCWcontents.kocw.net/KOCW/document/2016/ewha/kimmyeong/20-2.pdf · 2017. 2. 20. · 표준라이브러리함수의사용 ,](https://reader035.vdocument.in/reader035/viewer/2022071112/5fe7d24c312d3a129a67fe6f/html5/thumbnails/12.jpg)
(복습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. · 표준라이브러리함수의사용 ,](https://reader035.vdocument.in/reader035/viewer/2022071112/5fe7d24c312d3a129a67fe6f/html5/thumbnails/13.jpg)
(실습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. · 표준라이브러리함수의사용 ,](https://reader035.vdocument.in/reader035/viewer/2022071112/5fe7d24c312d3a129a67fe6f/html5/thumbnails/14.jpg)
(실습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. · 표준라이브러리함수의사용 ,](https://reader035.vdocument.in/reader035/viewer/2022071112/5fe7d24c312d3a129a67fe6f/html5/thumbnails/15.jpg)
(실습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. · 표준라이브러리함수의사용 ,](https://reader035.vdocument.in/reader035/viewer/2022071112/5fe7d24c312d3a129a67fe6f/html5/thumbnails/16.jpg)
(실습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. · 표준라이브러리함수의사용 ,](https://reader035.vdocument.in/reader035/viewer/2022071112/5fe7d24c312d3a129a67fe6f/html5/thumbnails/17.jpg)
(실습11) 매크로 함수의 이해
다음 프로그램을 실행하고, 출력 결과를 이해하시오.(참고) #define 으로 정의되는 매크로 함수의 파라미터 대치는 “의미를 고려하지 않은 채, “문자열 대치”에 해당한다.
COMP1과COMP2의 기능을이해하시오.
17
![Page 18: LAB #10 표준라이브러리 파일입출력 - KOCWcontents.kocw.net/KOCW/document/2016/ewha/kimmyeong/20-2.pdf · 2017. 2. 20. · 표준라이브러리함수의사용 ,](https://reader035.vdocument.in/reader035/viewer/2022071112/5fe7d24c312d3a129a67fe6f/html5/thumbnails/18.jpg)
(실습12) 엑셀 파일 읽기
엑셀 파일에 다음과 같이 저장하고, 이 파일을 공백으로 분리된 prn 파일로
저장한다. 이 파일로부터 숫자들을 읽어 그 모양 그대로 화면에 출력해 보
시오.
18
![Page 19: LAB #10 표준라이브러리 파일입출력 - KOCWcontents.kocw.net/KOCW/document/2016/ewha/kimmyeong/20-2.pdf · 2017. 2. 20. · 표준라이브러리함수의사용 ,](https://reader035.vdocument.in/reader035/viewer/2022071112/5fe7d24c312d3a129a67fe6f/html5/thumbnails/19.jpg)
(실습13) 텍스트 파일 엑셀에서 읽기
다음과 같은 텍스트 파일을 엑셀에서 열어 보시오.
19
일정한 간격으로 분리되어있다는 점을 사용하여 읽기