설계란 무엇인가?

Similar documents
1. C++ 표준라이브러리의구성 C++ 표준라이브러리의구성 본교재를통해소개할라이브러리 범주설명예관련장 / 절 입출력 표준입출력 파일입출력 ostream ofstream 11.2~11.9 절 12 장 문자열문자열처리 string 절 수치계산수치계산관련 comp

(Microsoft PowerPoint - 11\300\345.ppt [\310\243\310\257 \270\360\265\345])

C++ Programming

설계란 무엇인가?

12 장파일입출력 파일입출력의기초파일열기, 사용하기, 닫기파일입출력모드문자단위파일입출력텍스트파일과이진파일 read, write 함수에의한이진파일입출력임의접근입출력스트림상태입출력연산자오버로딩과파일입출력 C++ 프로그래밍입문

쉽게 풀어쓴 C 프로그래밍

설계란 무엇인가?

C++ Programming

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - [2009] 02.pptx

쉽게 풀어쓴 C 프로그래밍

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

C프로-3장c03逞풚

Microsoft PowerPoint - additional01.ppt [호환 모드]

Microsoft PowerPoint - Chapter 1-rev

1. 표준입출력 C++ : C의모든라이브러리를포함 printf, scanf 함수사용가능예 : int, double, 문자열값을입력받고출력하기 #include <cstdio> int ivar; double dvar; char str[20]; printf("int, dou

설계란 무엇인가?

설계란 무엇인가?

PowerPoint Template

설계란 무엇인가?

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

슬라이드 1

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

Microsoft PowerPoint - Chapter 10.ppt

쉽게 풀어쓴 C 프로그래밍

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-

Slide 1

<432B2BC7C1B7CEB1D7B7A1B9D628BABBB9AE5FC3D6C1BE295B315D2E687770>

Microsoft PowerPoint - Chap12-OOP.ppt

2002년 2학기 자료구조

Microsoft PowerPoint - Chapter 6.ppt

윤성우의 열혈 TCP/IP 소켓 프로그래밍

PowerPoint Presentation

PowerPoint 프레젠테이션

(Microsoft PowerPoint - 07\300\345.ppt [\310\243\310\257 \270\360\265\345])

PowerPoint 프레젠테이션

PowerPoint Template

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

C++ Programming

The C++ Programming Language 4 장타입과선언 4.11 연습문제 Hello,world! 프로그램을실행시킨다. 프로그램이컴파일되지않으면 B3.1 을참고하자. #include<iostream> //#include 문, 헤더파일, 전처리지시

금오공대 컴퓨터공학전공 강의자료

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

OCW_C언어 기초

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft PowerPoint - additional08.ppt [호환 모드]

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - additional-11_13l.ppt [호환 모드]

1. 클래스와배열 int 형배열선언및초기화 int ary[5] = 1, 2, 3, 4, 5 ; for (int i = 0; i < 5; i++) cout << "ary[" << i << "] = " << ary[i] << endl; 5 장클래스의활용 1

Slide 1

프입2-강의노트-C++기초

(Microsoft Word - \301\337\260\243\260\355\273\347.docx)

Microsoft PowerPoint - chap11.ppt [호환 모드]

Microsoft PowerPoint - additional03.ppt [호환 모드]

11장 포인터

쉽게 풀어쓴 C 프로그래밍

PowerPoint Template

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

13 주차문자열의표현과입출력

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

Microsoft PowerPoint - additional06.ppt [호환 모드]

080629_CFP °ø°³¿ë.hwp

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

Slide 1

Microsoft PowerPoint - chap12.ppt [호환 모드]

class Sale void makelineitem(productspecification* spec, int qty) SalesLineItem* sl = new SalesLineItem(spec, qty); ; 2. 아래의액티비티다이어그램을보고 Java 또는 C ++,

1. 기본형의형변환복습 C/C++ 형변환의종류 자동형변환 ( 묵시적형변환 ) 강제형변환 ( 명시적형변환 ) 기본형의자동형변환의예 1. 배열 to 포인터변환 배열명은해당배열의첫번째원소의 주소로변환됨 int ary[10]; int *pary = ary; 2. 함수 to 포

02장.배열과 클래스

C++ Programming

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Microsoft PowerPoint - chap10-함수의활용.pptx

Slide 1

Microsoft PowerPoint - chap06-2pointer.ppt

PowerPoint Presentation

Microsoft PowerPoint - 05장(함수) [호환 모드]

Microsoft PowerPoint - additional07.ppt [호환 모드]

Programming hwp

<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>

Microsoft PowerPoint - Lesson2.pptx

Microsoft PowerPoint - chap06-4 [호환 모드]

PowerPoint 프레젠테이션

Microsoft PowerPoint - C프로그래밍-chap15.ppt [호환 모드]

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

4 장클래스와객체 클래스와객체 public과 private 구조체와클래스객체의생성과생성자객체의소멸과소멸자생성자와소멸자의호출순서디폴트생성자와디폴트소멸자멤버초기화멤버함수의외부정의멤버함수의인라인함수선언 C++ 프로그래밍입문

Microsoft PowerPoint APUE(Intro).ppt

C 프로그램의 기본

Microsoft PowerPoint - 10장 문자열 pptx

Microsoft PowerPoint - chap-03.pptx

윤성우의 열혈 TCP/IP 소켓 프로그래밊

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 (제 2 장. 복소수 기초)

C++ Programming

1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문

YRRZBRRLMCEQ.hwp

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

adfasdfasfdasfasfadf

The C++ Programming Language 5 장포인터, 배열, 구조체 5.9 연습문제 다음의선언문을순서대로작성해보자. 문자에대한포인터, 10개정수의배열, 10개정수의배열의참조자, 문자열의배열에대한포인터, 문자에대한포인터에대한포인터, 상수정수, 상수

Transcription:

금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하

15 강. 표준입출력목차 C++ 입출력클래스 입출력형식설정방법 setf, unsetf 멤버함수에의한입출력형식설정 setf 이외의멤버함에의한입출력형식설정 입출력조작자에의한입출력형식설정 문자및문자열입출력멤버함수 문자단위입출력 줄단위입력 입출력스트림상태 string 클래스 complex 클래스 1 /17

15 강. 표준입출력 C++ 입출력클래스 C++ 입출력관련클래스구성도 ios_base ios 상속 입출력형식설정 입출력형식설정 표준입력 (cin) istream ostream 표준출력 (cout) iostream 파일입력 ifstream ofstream 파일출력 파일입출력 fstream 본강좌 : cin, cout 사용방법 입출력형식설정, 멤버함수사용 2 /17 파일입출력시에도동일사용가능

15 강. 표준입출력입출력형식설정방법 입출력형식이란? 정수출력시 16진수로출력하고싶은데, 8진수로출력하고싶은데 실수출력시 총 6자리만찍고싶은데 bool 값입력, 출력시 1, 0이아니고 true, false로입력또는출력하고싶은데 입출력형식설정방법 멤버함수이용 입출력조작자이용 3 /17

15 강. 표준입출력입출력형식설정방법 입출력형식설정원리 ios_base 클래스내에각종형식을표현할수있는변수존 재 비트별로특정서식에대한값을유지 setf, unsetf 멤버함수 특정비트값을변경하는방법 setf : 해당비트값을 1(set) 로변경하는함수 01 0 10 16 진수 8 진수 10 진수 unsetf : 해당비트값을 0(reset) 으로변경하는함수 cout.setf(4); // 100 cout.unsetf(1); // 001 cout.setf(ios_base::hex); cout.unsetf(ios_base::dec); 4 /17 각종서식의값이 const 문자열상수로선언되어있음

15 강. 표준입출력입출력형식설정방법 setf, unsetf 멤버함수사용예 void main(void) { cout.setf(ios_base::hex); cout.unsetf(ios_base::dec); cout.setf(ios_base::showbase); cout.setf(ios_base::boolalpha); cout.setf(ios_base::showpoint); int a = 16; bool b = true; double c = 3; 정수 : 16진수출력켜기정수 : 10진수출력끄기정수 : 진법표기 bool : true, false 출력실수 : 소수점표기 cout << a << endl; cout << b << endl; cout << c << endl; 5 /17

15 강. 표준입출력입출력형식설정방법 6 /17 또다른 setf 함수 정수진법의경우 dec, oct, hex 중하나만켜져야함 cout.setf(ios_base::hex, ios_base::basefield) 진법표기중 16 진수만켜지고나머지는꺼짐 void main(void) 정수 : 진법표기 (hex, oct, dec) { cout.setf(ios_base::hex, ios_base::basefield); cout.setf(ios_base::scientific, ios_base::floatfield); cout.setf(ios_base::right, ios_base::adjustfield); int a = 16; double b = 123.456; cout << a << endl; cout << b << endl; 실수 : 소수점표기법 (fixed), 과학적표기법 (scientific) 해당필드기준정렬방법 : left, right, internal 필드크기설정하는 함수 (width) 와함께사용

15 강. 표준입출력입출력형식설정방법 하나의비트만으로설정할수없는형식 출력대상필드크기, 공백자리의채움문자, 실수출력자 리수 각각전용멤버함수를사용하여지정 void main(void) { cout.width(10); cout << "hello" << endl; cout.fill('%'); cout.width(20); cout << "hello" << endl; 출력필드크기설정 : 디폴트오른쪽정렬 공백자리채움문자설정 cout.precision(6); cout << 123.123456 << endl; 실수 : 총 6 자리출력 7 /17

15 강. 표준입출력입출력형식설정방법 입출력조작자란? <<, >> 입출력연산자와함께사용, 입출력형식을설정하는방법 cout << oct << 16 << hex << 16 << endl; oct, hex 가바로입출력조작자! 입출력조작자의동작원리 cout << hex cout.operator<<(hex) << 연산자오버로딩호출 hex(cout) 매개변수로넘어온함수 (hex) 실행 cout.setf(ios_base::hex, ios_base::basefield) 함수내에서자신의서식설정 8 /17

15 강. 표준입출력입출력형식설정방법 입출력조작자사용예 #include <iostream> #include <iomanip> using namespace std; setfill,setw 입출력조작자포함 void main(void) hex : 16진수출력, oct : 8진수출력, dec : 10진수출력 { cout << hex << 16 << endl; cout << oct << 16 << endl; cout << dec; cout << 16 << setfill('x') << setw(10) << endl; cout << 16 << " hi " << endl; setfill : 채움문자설정 setw : 출력필드크기설정, 한번적용후 reset 9 /17

15 강. 표준입출력문자및문자열입출력멤버함수 istream 클래스의문자입력함수 int get(void); istream &get(char &); ostream 클래스의문자출력함수 ostream &put(char); 예 : 키보드입력을 그대로화면에출력 void main(void) { char ch; cin.get(ch); 파일의끝이아닌동안 키보드입력의경우 Ctrl+z 10 /17 while (!cin.eof()) { cout.put(ch); ch = cin.get();

15 강. 표준입출력문자및문자열입출력멤버함수 istream 클래스의줄단위문자열입력함수 istream &getline(char *, int, char = \n ); 최대개수 (int) 만큼읽어저장 (char *) 하되종료문자 ( \n ) 가 나타나면입력종료 입력후종료문자 ( \n ) 는제거 void main(void) { char str[80]; cout << " 문자열입력 : "; cin.getline(str, 80, '*'); cout << " 읽어들인문자열 : " << str << endl; cout << " 다음문자는 : " << (char) cin.get() << endl; 11 /17

15 강. 표준입출력입출력스트림상태 입출력수행에따른현재상태저장 ios_base 클래스내의변수에저장 입출력스트림상태의종류 상태 열거값 설명 접근멤버함 수 goodbit 0 eofbit, failbit, badbit 모두 0 good() eofbit 1 파일의끝에도달 eof() failbit 2 치명적이지않은입출력에러 - 지정한타입의값을읽을수없음 - 접근할수없는파일읽기 goodbit 상태로복원 : cin.clear() fail() badbit 4 치명적인입출력에러 bad() 12 /17

15 강. 표준입출력입출력스트림상태 failbit 상태의예 : 원하는데이터를읽지못함 void main(void) { int a; cout << " 정수입력 : "; cin >> a; if (cin.fail()) cout << "fail" << endl; else cout << "not fail" << endl; 정수를읽지못함 : failbit cin.clear(); goodbit 상태로복원 13 /17 if (cin.fail()) cout << "fail" << endl; else cout << "not fail" << endl;

15 강. 표준입출력 string 클래스 string 클래스 표준 C++ 에서제공하는문자열처리클래스 <string> 헤더파일에포함 주요기능 = : 대입연산 +, += : 문자열결합 ==,!=, <, >, <=, >= : 상등및대소비교 >>, << : 입출력연산 [ ], append, insert, erase, replace, find, rfind, compare, swap 14 /17

15 강. 표준입출력 string 클래스 #include <iostream> #include <string> using namespace std; string 클래스포함 void main(void) + : 문자열연결 { string str1 = "Hello! "; string str2 = "Programming"; string str3 = str1 + str2; string str4 = "C++ "; 15 /17 cout << "str1 : " << str1 << endl; cout << "str2 : " << str2 << endl; cout << "str3 : " << str3 << endl; cout << "str4 : " << str4 << endl << endl; str3.insert(7, str4); str3의 7번째위치에 str4의내용을삽입 cout << "str3 : " << str3 << endl << endl; str3.swap(str4); str3와 str4의내용을맞교환 cout << "str3 : " << str3 << endl; cout << "str4 : " << str4 << endl;

15 강. 표준입출력 complex 클래스 16 /17 complex 클래스 복소수를표현하는클래스 : a + bi (a : 실수부, b : 허수부 ) <complex> 헤더파일에포함 클래스템플릿으로구현 주요기능 기능 연산자 의미 (X = a + bi, Y = c + di) 덧셈 + X + Y = (a + c) + (b + d)i 뺄셈 - X - Y = (a - c) +(b - d)i 곱셈 * X * Y = (ac - bd) + (ad + bc)i 나눗셈 / X / Y = {(ac + bd)/(c2 + d2) + {(bc - ad)/(c2 + d2)i 대입 = 상등비교 ==,!= 입출력 >>, <<

15 강. 표준입출력 complex 클래스 complex 클래스사용예 #include <iostream> #include <complex> using namespace std; void main(void) { complex<double> comp1(1.0, 2.0); complex<double> comp2(3.0, 4.0); cout << "+ : " << comp1 + comp2 << endl; cout << "- : " << comp1 - comp2 << endl; cout << "* : " << comp1 * comp2 << endl; cout << "/ : " << comp1 / comp2 << endl; 17 /17