• 검색 결과가 없습니다.

LAB #9 입출력 라이브러리 (파일 입출력을 중심으로)

N/A
N/A
Protected

Academic year: 2022

Share "LAB #9 입출력 라이브러리 (파일 입출력을 중심으로)"

Copied!
21
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

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

LAB #9 입출력 라이브러리 (파일 입출력을 중심으로)

1

(2)

함수의 리턴 값 받지 않기

텍스트 파일 만들기, 읽기, 쓰기 텍스트 파일의 끝 알아보기

난수를 사용한 테스트 데이터 생성 방법

실습 내용

2

(3)

(실습1) int f( ) 에서 리턴 값 받지 않기

이 프로그램을 직접 실 행시켜 보시오.

함수가 값을 리턴한다 고 해도 그 값을 꼭 받 을 필요는 없다는 것을 알 수 있습니다.

3

(4)

(실습2) int scanf( ) 사용해 보기

다음 프로그램을 작성하고 실행시켜 보시오. 어떤 경우에 (1) 또는 (2)가 출 력될까요? 직접 확인해 보세요.

4

1 2 3

정수 이외의 값을 입력해 보세요.

예) 1 hello c

(5)

(복습1) 파일 읽기

5

(6)

파일 생성하여 저장해 놓기

텍스트 화일을 다음과 같이 만들어, 지금 작성 중인 c 프로그램이 있는 폴더에 넣어 둔다.

6

(7)

(실습3) 파일에서 한 줄 읽기

방금 작성한 infile.txt 에서 한 줄을 읽어서 화면에 출력하는 프로그램을 작 성하시오.

7

입력 파일

화면 출력

(8)

(실습4) 파일 모두 읽기

infile.txt 에 숫자가 5개 있다는 것을 알고 있으므로, for loop 을 사용하여 숫자 5개를 모두 읽고, 그 결과를 화면에 출력하는 프로그램을 작성하시오.

8

(9)

(실습5) 파일 모두 읽기

infile.txt 에 저장되어 있는 숫자의 개수를 모른다고 가정하고, 프로그램을 작성해 보시오.

fscanf( ) 가 반환하는 값을 활용해 보시오.

예) while (fscanf( ) == 1) { }

파일에 몇 줄이 있었는지 그 값을 함께 출력해 보시오.

9

(10)

(복습2) 파일에 쓰기

10

이 프로그램은 infile.txt 의 첫 줄을 읽어서 result.txt 화일에 저장한다.

(11)

(실습6) 파일 출력

infile.txt 에 들어 있는 정수를 모두 읽어서, 그대로 result.txt 화일에 출력하 도록 해 보시오.

11

(12)

(실습7) 파일 출력

data.txt 화일에는 정수가 저장되어 있다. 이 화일을 읽어서 양수들은

positive.txt 에 저장하고, 음수들은 negative.txt 에 저장하는 프로그램을 작 성하시오.

12

(13)

(실습8) 한 줄에 5개씩 출력하기

infile.txt 에 숫자를 18개를 넣어 두고, 이 숫자들을 읽어서 result.txt 파일에 출력하도록 해 보시오. 이번에는 한 줄에 5개의 숫자가 출력 되도록 해 보시오.

13

힌트 : 숫자를 한 개씩 읽으면서 %4d 로 출력한다.

숫자를 읽을 때마다 카운터 (counter, 정수 변수 1개) 를 증가시키고, 카운터가 5의 배수일 때마다

출력하면서 줄을 바꾼다. 즉 “\n”를 포함한다.

(14)

(실습9) 텍스트 파일 만들기

0, 1, 2, … , 100 까지의 숫자를 옆의

그림에서와 같이 생성하여 data.txt 파일에 저장하는 프로그램을 작성하시오.

(힌트) for 루프를 돌면서 for 루프 변수인 i 값을 파일에 출력해 본다.

14

(15)

(실습10) 텍스트 파일 읽기

(실습 9)에서 만든 파일의 숫자들을 모두 읽은 후, 그 평균을 계산하여 화면 에 출력하는 프로그램을 작성하시오. 이 프로그램은 파일에 숫자가 몇 개 들어 있는지 사전에 모른다고 하자.

15

(16)

(실습11) 성적 계산하기

score.txt 는 학생들의 국어, 영어, 수학 과목의 시험 점수가 저장되 어 있는 파일이다. (다음과 같이 score.txt를 만드시오.) 한 행에는 한 학생의 이름과 그 학생의 국어, 영어, 수학 점수가 적혀있다.

score.txt 를 읽어서 각 학생의 성적 평균을 구한 후, grade.txt 에 저 장하는 프로그램을 작성하시오.

16

(17)

(실습12) 난수 생성 프로그램 1

다음 프로그램을 5회 실행시키면서 그 결과를 비교해 보시오.

또한 <솔루션 탐색기> <외부 종속성> 안에 보이는 <stdlib.h> 에서 RAND_MAX 가 어떤 값으로 정의되어 있는지 살펴보시오.

17

rand( ) 함수를 쓰기 위해

생성될 난수의 최대값

난수 생성 함수의 호출

(18)

(실습13) 난수 생성 프로그램 2

난수 생성을 할 때마다 다른 값이 생성되도록 하려면 난수열의 첫 째 원소값을 달리 주어야 한다. 이를 위해 srand( ) 를 사용한다.

18

time ( ) 함수 사용하기 위해

srand( ) 를 호출하면 rand( ) 에 첫 값을 준다. srand( ) 는 프로그램에서 한 번만 호출하면 된다.

실행시켜 보시오!!!

(19)

난수 생성 프로그램 3

생성되는 난수들의 범위를 지정해 보자.

19

0 32767

0 99 y = rand( ) % 100;

min max

y = rand( ) % (max-min+1) + min;

(20)

(실습14) 난수 생성

(프로그램 1) 0~99 사이의 난수 10개를 생성하여 정수 배열 a[10]에 저장해 놓고, 배열의 값을 화면에 출력하시오.

(프로그램 2) min = 100, max = 499 사이의 난수 10개를 생성하여, 프로그램 1과 같은 작업을 하시오.

20

(21)

(실습15) 학생 점수 파일 만들어 보기

student-name.txt 파일에는 학생 이름이 한 줄에 하나씩 10명 저장되어 있다. 이 학생들의 숙제1, 숙제2, 숙제3의 성적을 가상으로 만들어서 exam.txt 파일에 아래와 같이 저장하려고

한다. 숙제1의 점수는 30~50 사이의 정수로 하고, 숙제2의 점수는 50~80 사이의 정수로 하고,

숙제3의 점수는 40~100 사이의 정수로 되도록 random number

생성을 통해 파일을 만들어 보시오.

21

참조

관련 문서

지난 해 이후 오피스 임대시장 호황으로 오피스 빌딩은 꾸준히 높은 수요를 보이고 있는 가운데 공급과 매물이 수요에 못 미치면서 도심, 강남, 마포여의도 등 주요

아래와

ios_base::beg 파일의 처음 위치를 기준으로 새로운 위치로 이동 ios_base::cur 파일의 현재 위치를 기준으로 새로운 위치로 이동 ios_base::end 파일의

setf와 unsetf 멤버 함수를 이용한 입출력 형식 지정 setf 이외의 멤버 함수를 이용한 입출력 형식 지정 입출력 조작자를 이용한 입출력 형식 지정.. 사용자

입출력 인터페이스, 입출력 채널(channel), 입출력 프로세서, 입출력 제어기 (controller), 장치 제어기(device controller) 등의 여러 가지

Lab., Hanyang Univ.. Lab., Hanyang Univ.. Lab., Hanyang Univ.. Lab., Hanyang Univ.. Lab., Hanyang Univ.. Lab., Hanyang Univ.. Lab., Hanyang Univ.. Lab., Hanyang Univ..

• 파일 열기를 선택하면 그림과 같이 실행되고 VI를 찾기 위한 열(open) 파일 선택 대화상자가 화면에 나타난다. VI를 선택한 후

• 주기억장치의 일정 영역을 버퍼로 지정하고 입출력 데이터를 버퍼 에 둔 상태에서 입출력 기능만 별도로 수행하는 입출력 채널이 입출