10-학습4-C 에서파일다루기

Download Report

Transcript 10-학습4-C 에서파일다루기

학습2 : C++프로그래밍기초
1/32
C++
C
앱개발
학과홈페이지 열린강의실에 가서
“10주차실습프로그램.zip”파일을 다운받아
압축을 풀어 수업 준비하기 바람…
학습2 : C++프로그래밍기초
2/32
지난 9주차에 공부했던 내용은?
- 구조체의 정의와 사용법에 대해서
- 공용체의 정의와 사용법에 대해서
- 열거형의 정의와 사용법에 대해서
학습2 : C++프로그래밍기초
지난 9 주차에 작성해봤던 프로그램들은?
◀작성해보자 3-1▶ 파일명 : 자기학번-3-1.cpp
우리 학과의 학생성적처리 프로그램을 작성하려고 한다.
다음에 제시한 <처리조건>을 지켜 프로그램을 작성해 보여라.
처리조건 예시는 교제 84 쪽 참조
◀작성해보자 3-2▶ 파일명 : 자기학번-3-2.cpp
앞의 <작성해보자-3-1.cpp>에서 작성한 프로그램을
<실행결과 예>에서 보인 것처럼“평균”점수를 기준으로“석차”를 구하여
출력하는 프로그램으로 버전업 시켜 보라.
결과 예시는 교제 84 쪽 참조
3/32
학습2 : C++프로그래밍기초
지난 강의시간의
“능력향상과제(7)의 낙서코너”의 내용은?
4/32
학습2 : C++프로그래밍기초
A반
사랑합니다~
고생하셨습니다
교수님 저 시험본거 소스...ㅎㅎㅎ 잘봐주세요♡♡♡
사랑합니다
점심 맛있게 드십시오!!
수업 감사합니다~
오늘도 수업 감사합니다
수업을 조금만 천천히 해 주세요
감사합니다
감사히 잘 들었습니다
수업 잘 들었습니다
좋은 강의 감사합니다
좋은 수업 감사합니다
좋은 강의 감사합니다
^.^
교수님 오늘 수업도 감사합니다
자주 지각해서 죄송합니다ㅠㅠ
항상 좋은 강의 감사합니다
일주일동안 고생하셨습니다 즐거운 주말 보내세요~ 감사합니다!
사랑해요♡
교수님 감사합니다
수고하셨어요
수고하셨습니다
수고하셨습니다~
감사합니다
감사합니다
타자가 느려서 좀더 노력할께요 조금씩 이해가 되는것도 같아요!
수고많으십니다ㅎㅎㅎ
빨라요
감사합니다
5/32
학습2 : C++프로그래밍기초
B반
6/32
좋은 수업 감사합니다
수고하셨습니다
수고하셨습니다
수고하셨습니다
수고하셨습니다
수업 잘 들었습니다 교수님 감사합니다
열정적인 수업 감사합니다
수고하셨습니다^.^
수고하셨습니다
신기했어요 3-1번이...
감사합니다
교수님 감기 조심하세요~
^.^
소팅은 어찌하나요
수고하셨습니다 수업이 좀 어렵네요
수고하셨습니다
수업 잘 들었습니다
열정적으로 강의하시느라 고생하셨습니다
수고하셨어요!
수고하셨습니다
점점 어려워지는 것 같습니다
수고하셨습니다
점점 어렵지만 열심히 할게요
학습2 : C++프로그래밍기초
C반
함수도 공용체를 사용할 수 있나요?
교수님 사랑합니다
매번 열강을 해주셨어 감사합니다^^
감사합니다!
수업 잘 들었습니다 앞으로도 좋은 수업 해주세요
감사합니다^^
감사합니다
조금만 천천히 나가주세요! 감사합니다
3-06에서 union no를 struct no로 바뀌었을 때 결과값이 어떻게 다른지 궁금합니다
이해했습니다
감사합니다
웨어어즈 사라코너 두둥두둥두두둥
수업 잘 들었습니다~^^♡
수업 재밌어요
수업 열심히 들었어용 ㅠ^ㅠ 실습도 열심히 했습니다!!!!!
(기호)따봉
문자를 열거 할 때는 #define 말고 더 없나요?
이해가 잘되게 강의해 주셔서 감사합니다
♡♡♡★ 이해 잘 되었어요 ★♡♡♡
사랑합니닷!
어려워요ㅠ^ㅠ 악!!!!!
7/32
학습2 : C++프로그래밍기초
J반
8/32
아주 좋았습니다
수고하셨습니다!
수고하셨습니다
수고하셨습니다
수고하셨습니다
수고하셨습니다
수고하셨습니다
수고하셨습니다
수고하셨습니다
교수님 감사합니다~
교수님 수고하셨습니다
감사합니다
수고하셨습니다
학습2 : C++프로그래밍기초
9/32
오늘 10 주차에 학습할 내용은?
이번 주부터는 학습4 부분이 시작됨~~~
학습2 : C++프로그래밍기초
1-1. C++의 개요
학습1 :
C++ 개요 및
개발환경구축
10/32
1-2. C++ 개발환경 구축하기
2-1. C++ 프로그램의 이해
2-2. 데이터 입출력
학습모듈
A
학습2 :
C++ 프로그래
밍 기초
2-3. 데이터 유형과 연산자
2-4. 선택문과 반복문
2-5. 배열과 포인터
2-6. 함수
2-7. 참조형 변수의 사용
2-8. 1차 프로젝트 - 가위바위보 게임 만들기
C++
학습모듈
학습3 :
구조체와 공용
체, 열거형
3-1. 구조체 - struct
3-2. 공용체 - union
3-3. 열거형 - enum .
B
학습4 :
C++에서
파일 다루기
4-1. 클래스에 의한 파일 입출력
4-2. 입출력 멤버함수
4-3. 사용자정의 입출력 조작자
5-1. 클래스와 객체
학습5 :
객체지향 프
로그래밍
5-2. 클래스의 사용과 연산자 오버로딩
5-3. 예외처리와 템플릿
5-4. 2차 프로젝트 - 전화번호검색 프로그램
개발하기
학습2 : C++프로그래밍기초
11/32
( 학습4 )
C++에서 파일 다루기
학습2 : C++프로그래밍기초
4-1. 클래스에 의한 파일 입출력
1. 파일 입출력의 개념
12/32
94쪽
학습2 : C++프로그래밍기초
2. 입출력 파일클래스
이 들 파일 클래스를 이용하려면 먼저 fstream.h 라는 해더 파일을
프로그램에 포함시켜야만 파일 입출력 가능하다.
13/32
학습2 : C++프로그래밍기초
14/32
3. 파일에서 데이터 읽고 쓰기
(1) 파일 개방
2 가지 사용방법이 이용될 수 있다.
이 2 가지 방법의 실행결과는 동일하다.
여기서는 이 2 가지 사용방법 중에서 사용형식2의 방법으로 설명하도록 한다.
학습2 : C++프로그래밍기초
15/32
학습2 : C++프로그래밍기초
16/32
(2) 개방된 파일 잠금
파일클래스 ifstream, ofstream에 의해 개방된 파일은
사용을 끝냈을 때에 close 멤버함수를 이용하여 잠금처리를 해주어야 한다.
학습2 : C++프로그래밍기초
17/32
따라하기 4-01.cpp
따라하기 4-02.cpp
따라하기 4-03.cpp
따라하기 4-04.cpp
학습2 : C++프로그래밍기초
18/32
◀작성해보자 4-1▶ 파일명 : 자기학번-4-1.cpp
구조체를 이용하여
다음에 제시한 학생의 시험성적을 "성적.txt"라는 파일로 저장해두고,
이 "성적.txt"파일에서 각 학생의 성적을 읽어 <실행결과 예>처럼
"성적처리표.txt" 파일로 출력하는 프로그램을 작성하라.
(앞의 84쪽 <작성해보자 3-1> 참조)
결과 예시는 교제 101 쪽 참조
학습2 : C++프로그래밍기초
◀작성해보자 4-2▶ 파일명 : 자기학번-4-2.cpp
앞의 <작성해보자 4-1> 문제에서 작성한 프로그램의 출력결과를
파일출력과 동시에 화면으로도 출력되게 수정해 보라.
19/32
학습2 : C++프로그래밍기초
4-2. 입출력 멤버함수
ifstream 과 ofstream 파일클래스의 멤버에는
문자와 문자열 데이터를 처리해 주는 멤버함수가 있다.
20/32
102쪽
학습2 : C++프로그래밍기초
21/32
따라하기 4-05.cpp
따라하기 4-06.cpp
학습2 : C++프로그래밍기초
22/32
◀작성해보자 4-3▶ 파일명 : 자기학번-4-3.cpp
프로그래밍에서 지정한 텍스트 파일을 읽어 그 파일의 내용이 총 몇 개
의 문자로 구성된 파일인지 출력하는 프로그램을 작성하라.
◀작성해보자 4-4▶ 파일명 : 자기학번-4-4.cpp
다음의 <실행결과 예>처럼 화면에 메시지가 나올 때, 임의로 지정한 파일을
원하는 파일명으로 복사하는 파일복사 프로그램을 get()과 put() 멤버함수를
이용하여 작성하라.
<실행결과 예>
복사할 파일명 : a.cpp <Enter>
복사될 파일명 : b.cpp <Enter>
복사를 완료했습니다.
학습2 : C++프로그래밍기초
23/32
따라하기 4-07.cpp
따라하기 4-08.cpp
학습2 : C++프로그래밍기초
◀작성해보자 4-5▶ 파일명 : 자기학번-4-5.cpp
<따라하기 4-8.CPP> 프로그램을 수정하여 출력결과가 파일로 출력되면서
화면으로도 출력되게 하라. 이때 화면으로 출력되는 결과는 매 줄마다
줄 번호를 붙여 출력되게 하라.
24/32
학습2 : C++프로그래밍기초
4-3. 사용자정의 입출력 조작자
25/32
106쪽
C++에서는 자신만의 입출력 조작자를 만들어 사용할 수 있도록
사용자정의 입출력 조작자를 정의할 수 있는 기술이 제공되고 있다.
이 기술은 사용자가 의도하는 대로 입출력을 보다 명확하고 효율적으로
작업할 수 있도록 도와준다.
학습2 : C++프로그래밍기초
26/32
학습2 : C++프로그래밍기초
27/32
따라하기 4-09.cpp
따라하기 4-10.cpp
따라하기 4-11.cpp
학습2 : C++프로그래밍기초
Q&A
28/32
109쪽
Q1. "a.txt" 파일을 입력파일로 개방하면서 스트림객체명을 in 이라고
지정하는 문장은?
A1. ifstream in("a.txt");
Q2. "b.txt" 파일을 입력파일로 개방하면서 스트림객체명을 out 이라고
지정하는 문장은?
A2. ofstream out("b.txt" );
Q3. ifstream, ofstream 때문에 포함시켜야 하는 해더파일은?
A3. fstream.h
학습2 : C++프로그래밍기초
Q4. 다음 프로그램은 하나의 숫자 값을 출력하는데 실수일 경우
총 10자리 내에 소수점 이하 5자리까지 출력하는 출력 조작자 format을
이용하여 프로그램한 예이다. □안을 채워 <실행결과>와 같이 출력하도록
코딩보라.
A4. 다음의 문장을 □안에 코딩해 넣으면 된다.
form<<setw(10);
form<<setiosflags(ios::fixed);
form<<setprecision(3);
return form
29/32
학습2 : C++프로그래밍기초
능력향상 실습문제
30/32
110쪽
[1] 학생 전화번호검색 프로그램을 개발하려고 한다.
다음에 제시한 학생정보가 저장된 파일이 "학생정보.txt"라는 파일에 저
장
되어 있다고 하자. 이 파일을 이용하여 <출력결과 예>에서 보인 것처럼
검색하고자 하는 학생의 이름을 입력하면 그 학생의 전화번호 찾아 화면
에
결과 예시는 교제 110 쪽 참조
출력하도록 하고, 계속 검색할지 여부를 묻는 프로그램을 개발해 보여라.
[2] 앞의 101쪽의 <작성해보자 4-2> 문제에서 작성한 프로그램을 참조하여 다음에
보인 <실행결과 예>처럼 메뉴에서 선택하는 대로 구동하는 성적처리 프로그램
으로 버전업시켜라.
결과 예시는 교제 111 쪽 참조
학습2 : C++프로그래밍기초
질문?
31/32
학습2 : C++프로그래밍기초
32/32
능력향상과제(8)
작성하여 제출하자
오늘도 수고했다