Microsoft PowerPoint - 2주차.pptx



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

C++ Programming

Microsoft PowerPoint - [2009] 02.pptx

프입2-강의노트-C++배경

쉽게 풀어쓴 C 프로그래밍

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

Microsoft PowerPoint - C++ 5 .pptx

C++ Programming

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - chap01-C언어개요.pptx


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

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

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

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

슬라이드 1

설계란 무엇인가?

쉽게 풀어쓴 C 프로그래밍

설계란 무엇인가?

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

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

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

K&R2 Reference Manual 번역본

설계란 무엇인가?

C++ Programming

C프로-3장c03逞풚

슬라이드 1

Microsoft PowerPoint - Chapter 1-rev

Ⅰ. 머리말 각종 기록에 따르면 백제의 초기 도읍은 위례성( 慰 禮 城 )이다. 위례성에 관한 기록은 삼국사기, 삼국유사, 고려사, 세종실록, 동국여지승람 등 많은 책에 실려 있는데, 대부분 조선시대에 편 찬된 것이다. 가장 오래된 사서인 삼국사기 도 백제가 멸망한지

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

3232 편집본(5.15).hwp

쉽게 풀어쓴 C 프로그래밍

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

Microsoft PowerPoint - Chapter 6.ppt

PowerPoint Template

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

Microsoft PowerPoint - chap11-포인터의활용.pptx

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

PowerPoint 프레젠테이션

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

PowerPoint Presentation

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

C++ Programming

C++ Programming

<BFBEBEC6C0CCB5E9C0C720B3EEC0CC2E20B3EBB7A120C0CCBEDFB1E220C7D0B1B3202D20C0DAB7E1322E687770>

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

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

OCW_C언어 기초

Microsoft PowerPoint - 8ÀÏ°_Æ÷ÀÎÅÍ.ppt

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

PowerPoint 프레젠테이션

PowerPoint Presentation

C 프로그램의 기본

PowerPoint Template

참고 금융분야 개인정보보호 가이드라인 1. 개인정보보호 관계 법령 개인정보 보호법 시행령 신용정보의 이용 및 보호에 관한 법률 시행령 금융실명거래 및 비밀보장에 관한 법률 시행령 전자금융거래법 시행령 은행법 시행령 보험업법 시행령 자동차손해배상 보장법 시행령 자본시장과

PowerPoint 프레젠테이션

BACK TO THE BASIC C++ 버그 헌팅: 버그를 예방하는 11가지 코딩 습관

Microsoft PowerPoint - chap12-고급기능.pptx

초보자를 위한 C++

PowerPoint Presentation

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

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

<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>

PowerPoint Presentation

Microsoft PowerPoint - chap04-연산자.pptx

02장.배열과 클래스

JAVA PROGRAMMING 실습 02. 표준 입출력

C++ Programming

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

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

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

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

설계란 무엇인가?

Microsoft PowerPoint - Chap12-OOP.ppt

Microsoft PowerPoint - 2강

Microsoft PowerPoint - chap06-2pointer.ppt

인천광역시의회 의원 상해 등 보상금 지급에 관한 조례 일부개정조례안 의안 번호 179 제안연월일 : 제 안 자 :조례정비특별위원회위원장 제안이유 공무상재해인정기준 (총무처훈령 제153호)이 공무원연금법 시행규칙 (행정자치부령 제89호)으로 흡수 전면 개

종사연구자료-이야기방 hwp

목 차 국회 1 월 중 제 개정 법령 대통령령 7 건 ( 제정 -, 개정 7, 폐지 -) 1. 댐건설 및 주변지역지원 등에 관한 법률 시행령 일부개정 1 2. 지방공무원 수당 등에 관한 규정 일부개정 1 3. 경력단절여성등의 경제활동 촉진법 시행령 일부개정 2 4. 대

PowerPoint Presentation

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

JAVA PROGRAMMING 실습 08.다형성

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

PowerPoint Template

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

chap 5: Trees

Microsoft PowerPoint - 2주차-1차시 (강의자료) ch01 - C Programming 기초 (part 2)

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

OCW_C언어 기초

17장 클래스와 메소드

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

Microsoft PowerPoint - ch07 - 포인터 pm0415

gnu-lee-oop-kor-lec06-3-chap7

Microsoft PowerPoint - chap-03.pptx

PowerPoint 프레젠테이션

Blog

11장 포인터

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

Slide 1

C 언어 프로그래밊 과제 풀이

Transcription:

1 2주차 C 에서 C++로

세상을 먹어 치우는 소프트웨어 2 소프트웨어 기업의 세상 미국의 대형 서점 보더스 -> 아마존에 대패 블록버스터(Blockbuster) -> 네플릭스(Neflix)에 대패 ebay, Facebook, Groupon, Skype, Twitter, Android, 아이튠스, 판도라, 픽사 등 엄청난 소프트웨어 인력들을 필요로 하는 세상이 왔다.

프로그래밍 언어의 진화와 C++의 기원 Assembly 1954 Fortran 1958 Algol Martin Richards 1967 BCPL 1964 Basic Ken Tompson 1970 B Ken Tompson과 Dennis Ritchie 1972 C Bjarne Stroustrup 1983 C++ 1983 Objective-C 1987 Perl 1991 Visual Basic 1995 PHP 1995 Java 1995 Javascript 3 2000 C#

표준 C++ 프로그램의 중요성 4 C++ 언어의 표준 1998년 미국 표준원(ANSI, American National Standards Institute) C++ 언어에 대한 표준 설정 ISO/IEC 14882 문서에 작성됨. 유료 문서 표준의 진화 1998년(C++98), 2003년(C++03), 2007년(C++TR1), 2011년(C++11) 표준의 중요성 표준에 의해 작성된 C++ 프로그램 모든 플랫폼. 모든 표준 C++ 컴파일러에 의해 컴파일 동일한 실행 결과 보장 운영체제와 컴파일러의 종류에 관계없는 높은 호환성 비 표준 C++ 프로그램 Visual C++, Borland C++ 등 컴파일러 회사 고유의 비 표준 구문 특정 C++ 컴파일러에서만 컴파일 호환성 결여

표준/비표준 C++ 프로그램의 비교 5 표준 C++ 규칙에 따라 작성된 C++ 프로그램 표준 C++ 규칙에 따라 작성되지 않는 비주얼 C++ 프로그램 #include <iostream> int main() { std::cout << "Hello ; return 0; } 모든 C++ 컴파일러 에의해 컴파일 비주얼 C++ 전용 키워드 #include <iostream> int cdecl main() { std::cout << "Hello"; return 0; } 볼랜드 C++ 컴파일러 비주얼 C++ 컴파일러 GNU C++ 컴파일러 볼랜드 C++ 컴파일러 비주얼 C++ 컴파일러 GNU C++ 컴파일러 실행 파일 실행 파일 실행 파일 실행 파일 실행 파일 실행 파일 컴퓨터 컴퓨터

C++ 언어의 주요한 설계 목적 6 C 언어와의 호환성 C 언어의 문법 체계 계승 소스 레벨 호환성 - 기존에 작성된 C 프로그램을 그대로 가져다 사용 링크 레벨 호환성 C 목적 파일과 라이브러리를 C++ 프로그램에서 링크 객체 지향 개념 도입 캡슐화, 상속, 다형성 소프트웨어의 재사용을 통해 생산성 향상 복잡하고 큰 규모의 소프트웨어의 작성, 관리, 유지보수 용이 엄격한 타입 체크 실행 시간 오류의 가능성을 줄임 디버깅 편리 실행 시간의 효율성 저하 최소화 실행 시간을 저하시키는 요소와 해결 작은 크기의 멤버 함수 잦은 호출 가능성 -> 인라인 함수로 실행 시간 저 하해소

C 언어에 추가한 기능 7 인라인 함수(inline function) 함수 호출 대신 함수 코드의 확장 삽입 함수 중복(function overloading) 매개 변수의 개수나 타입이 다른 동일한 이름의 함수들 선언 디폴트 매개 변수(default parameter) 매개 변수에 디폴트 값이 전달되도록 함수 선언 참조와 참조 변수(reference) 하나의 변수에 별명을 사용하는 참조 변수 도입 참조에 의한 호출(call-by-reference) 함수 호출 시 참조 전달 new/delete 연산자 동적 메모리 할당/해제를 위해 new와 delete 연산자 도입 연산자 재정의 기존 C++ 연산자에 새로운 연산 정의 제네릭 함수와 클래스 데이터 타입에 의존하지 않고 일반화시킨 함수나 클래스 작성 가능

C++객체지향특성-캡슐화 8 캡슐화(Encapsulation) 데이터를 캡슐로 싸서 외부의 접근으로부터 보호 C++에서 클래스(class 키워드)로 캡슐 표현 클래스와 객체 클래스 객체를 만드는 틀 객체 클래스라는 틀에서 생겨난 실체 객체(object), 실체(instance)는 같은 뜻 클래스 (객체를 정의하는 틀) 객체 생성 객체들 - 실체 멤버들 class Circle { private: int radius; // 반지름 값 public: Circle(int r) { radius = r; } double getarea() { return 3.14*radius*radius; } }; 원을 추상화한 Circle 클래스 원 객체들(실체)

C++객체지향특성-상속성 9 객체 지향 상속(Inheritance) 자식이 부모의 유전자를 물려 받는 것과 유사 C++ 상속 객체가 자식 클래스의 멤버와 부모 클래스에 선언된 모양 그대로 멤버들을 가지고 탄생

C++객체지향특성-다형성 10 다형성(Polymorphism) 하나의 기능이 경우에 따라 다르게 보이거나 다르게 작동하는 현상 연산자 중복, 함수 중복, 함수 재정의(overridding) 2 + 3 --> 5 남자 + 여자 --> 남자여자 redcolor 객체 + bluecolor 객체 --> purplecolor 객체 + 연산자 중복 void add(int a, int b) {... } void add(int a, int b, int c) {... } void add(int a, double d) {... } add 함수 중복 함수 재정의(오버라이딩)

C ++ 언어에서 객체 지향을 도입한 목적 11 소프트웨어 생산성 향상 소프트웨어의 생명 주기 단축 문제 해결 필요 기 작성된 코드의 재사용 필요 C++ 클래스 상속 및 객체 재사용으로 해결 실세계에 대한 쉬운 모델링 과거의 소프트웨어 수학 계산이나 통계 처리에 편리한 절차 지향 언어가 적합 현대의 소프트웨어 물체 혹은 객체의 상호 작용에 대한 묘사가 필요 실세계는 객체로 구성된 세계 객체를 중심으로 하는 객체 지향 언어 적합

절차 지향 프로그래밍과 객체 지향 프로그래밍 12 실행하고자 하는 절차대로 일련의 명령어 나열. 흐름도를 설계하고 흐름도 에 따라 프로그램 작성 객체들을 정의하고, 객 체들의 상호 관계, 상호 작용으로 구현

예제 1-1: 기본적인 C++ 프로그램 13 /* 소스: SimpleC++.cpp cout과 << 연산자를 이용하여 화면에 출력한다. */ #include <iostream> // cout과 << 연산자 포함 // C++ 프로그램은 main() 함수에서부터 실행을 시작한다. <- C와 동일 int main() { std::cout << "Hello\n"; // 화면에 Hello를 출력하고 다음 줄로 넘어감 std::cout << "첫 번째 맛보기입니다."; return 0; // main() 함수가 종료하면 프로그램이 종료됨 } Hello 첫 번째 맛보기입니다.

주석문과 main() 함수 14 주석문 개발자가 자유롭게 붙인 특이 사항의 메모, 프로그램에 대한 설명 프로그램의 실행에 영향을 미치지 않음 여러 줄 주석문 - /*... */ 한 줄 주석문 - //를 만나면 이 줄의 끝까지 주석으로 처리 main() 함수 C++ 프로그램의 실행을 시작하는 함수 main() 함수가 종료하면 C++ 프로그램 종료 main() 함수의 C++ 표준 모양 int main() { // main()의 리턴 타입 int... return 0; // 0이 아닌 다른 값으로 리턴 가능 } void main() { // 표준 아님... } main()에서 return문 생략 가능 int main() {... // return 0; // 개발자의 편리를 위해 return 문 생략 가능 }

#include <iostream> 15 #include <iostream> 전처리기(C++ Preprocessor)에게 내리는 지시 <iostream> 헤더 파일을 컴파일 전에 소스에 확장하도록 지시 <iostream> 헤더 파일 표준 입출력을 위한 클래스와 객체, 변수 등이 선언됨 ios, istream, ostream, iostream 클래스 선언 cout, cin, <<, >> 등 연산자 선언 #include <iostream>... std::cout << "Hello\n"; std::cout << "첫 번째 맛보기입니다."; <iostream.h> 헤더 파일 구 버전의 C++ 표준에서 사용하던 헤더 파일 구 버전 컴파일러(Visual Studio 6.0)에서 사용

화면 출력 16 cout과 << 연산자 이용 std::cout << "Hello\n"; // 화면에 Hello를 출력하고 다음 줄로 넘어감 std::cout << "첫 번째 맛보기입니다."; cout 객체 스크린 출력 장치에 연결된 표준 C++ 출력 스트림 객체 <iostream> 헤더 파일에 선언 std 이름 공간에 선언: std::cout으로 사용 << 연산자 스트림 삽입 연산자(stream insertion operator) C++ 기본 산술 시프트 연산자(<<)가 스트림 삽입 연산자로 재정의됨 ostream 클래스에 구현됨 오른쪽 피연산자를 왼쪽 스트림 객체에 삽입 cout 객체에 연결된 화면에 출력 여러 개의 << 연산자로 여러 값 출력 std::cout << "Hello\n" << "첫 번째 맛보기입니다.";

<< 연산자 활용 17 문자열 및 기본 타입의 데이타 출력 bool, char, short, int, long, float, double 타입 값 출력 int n=3; char c= # ; std::cout << c << 5.5 << '-' << n << "hello" << true; #5.5-3hello1 연산식뿐 아니라 함수 호출도 가능 std::cout << n + 5 = << n + 5; std::cout << f(); // 함수 f()의 리턴값을 출력한다. 다음 줄로 넘어가기 \n 사용 endl 조작자 사용 std::cout << Hello << \n ; std::cout << Hello << std::endl;

예제 1 2 cout과 <<를 이용한 화면 출력 18 #include <iostream> double area(int r); // 함수의 원형 선언 double area(int r) { // 함수 구현 return 3.14*r*r; // 반지름 r의 원면적 리턴 } int main() { int n=3; char c='#'; } std::cout << c << 5.5 << '-' << n << "hello" << true << std::endl; std::cout << "n + 5 = " << n + 5 << '\n'; std::cout << "면적은 " << area(n); // 함수 area()의 리턴 값 출력 #5.5-3hello1 n + 5 = 8 면적은 28.26 true는 1 로 출력됨

printf()는 잊어라! 19 cout과 <<를 사용하자.

std:: 란? 20 std ANSI C++ 표준에서 정의한 이름 공간(namespace) 중하나 <iostream> 헤더 파일에 선언된 모든 이름: std 이름 공간 안에 있음 cout, cin, endl 등 std 이름 공간에 선언된 이름을 접근하기 위해 std:: 접두어 사용 std::cout, std::cin, std::endl std:: 생략 using 지시어 사용 std:: 생략 using std::cout; // cout에 대해서만 std:: 생략... cout << "Hello << std::endl; // std::cout에서 std:: 생략 using namespace std; // std 이름 공간에 선언된 모든 이름에 std:: 생략... cout << "Hello" << endl; // std:: 생략 std:: 생략 std:: 생략

예제 1-3 C++ 프로그램에서 키 입력 받기 21 #include <iostream> using namespace std; int main() { cout << "너비를 입력하세요>>"; int width; cin >> width; // 키보드로부터 너비를 읽어 width 변수에 저장 cout << "높이를 입력하세요>>"; int height; cin >> height; // 키보드로부터 높이를 읽어 height 변수에 저장 } int area = width*height; // 사각형의 면적 계산 cout << "면적은 " << area << "\n"; // 면적을 출력하고 다음 줄로 넘어감 너비를 입력하세요>>3 높이를 입력하세요>>5 면적은 15

cin과 >> 연산자를 이용한 키 입력 22 cin 표준 입력 장치인 키보드를 연결하는 C++ 입력 스트림 객체 >> 연산자 스트림 추출 연산자(stream extraction operator) C++ 산술 시프트 연산자(>>)가 <iostream> 헤더 파일에 스트림 추출 연산자로 재정의됨 입력 스트림에서 값을 읽어 변수에 저장 연속된 >> 연산자를 사용하여 여러 값 입력 가능 cout << "너비와 높이를 입력하세요>> ; cin >> width >> height; cout << width << \n << height << \n; 너비와 높이를 입력하세요>>23 36 23 width에 36 입력 height에 입력

<Enter> 키를칠때변수에값전달 23 cin의 특징 입력 버퍼를 내장하고 있음 <Enter>키가 입력될 때까지 입력된 키는 입력 버퍼에 들어감 도중에 <Backspace> 키를 입력하면 입력된 키 삭제 >> 연산자 <Enter>키가 입력되면 비로소 입력 버퍼에 있는 키 값을 변수에 전달

24 cin으로부터 키 입력 받는 과정

실행문 중간에 변수 선언 25 C++의 변수 선언 변수 선언은 아무 곳이나 가능 int width; cin >> width; // 키보드로부터 너비를 읽는다. 실행문 중간 에변수선언 cout << "높이를 입력하세요>>"; int height; cin >> height; // 키보드로부터 높이를 읽는다. // 너비와 높이로 구성되는 사각형의 면적을 계산한다. int area = width*height; cout << "면적은 " << area << "\n"; // 면적을 출력하고 한줄띈다. C++ 변수 선언 방식의 장점 C에서와 같이 변수 선언부과 실행 문 사이를 왔다 갔다 하는 번거로움 해소 변수를 사용하기 직전 선언함으로써 변수 이름에 대한 타이핑 오류 줄임 C++ 변수 선언 방식의 단점 선언된 변수를 일괄적으로 보기 힘듦 코드 사이에 있는 변수 찾기 어려움

미스 타이핑 가능성 해소 26 선언부에 모든 변수를 선언하는 경우, 미스 타이핑 가능 int time, timer;... timer = 5; // time에 5을 저장하려다 timer로 잘못 입력. 컴파일 오류 발생하지 않음 // 그러나 잘못된 실행 결과 발생... timer = 3; 변수 사용 전에 변수를 선언하면, 미스 타이핑 사전 발견 컴파일 오류 int time; timer = 5; // time에 5을 저장하려다 timer로 잘못 입력. 컴파일 오류 발생... int timer; timer = 3;

C++ 문자열 27 C-스트링 문자열 단순 문자 배열 C++의 문자열 표현 방식 : 2가지 C-스트링 방식 \0 로 끝나는 문자 배열 char name1[6] = { G, r, a, c, e, \0 }; // name1은 문자열 Grace char name2[5] = { G, r, a, c, e }; // name2는 문자열이 아니고 단순 문자 배열 char name5[10] = Grace ; name5[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] G r a c e \0 \0 \0 \0 \0 Grace 문자열 \0 로 초기화 string 클래스 이용 <string> 헤더 파일에 선언됨 다양한 멤버 함수 제공, 문자열 비교, 복사, 수정 등

C 언어에서 사용한 문자열 라이브러리 28 C-스트링으로 문자열 다루기 C 언어에서 사용한 함수 사용 가능 strcmp(), strlen(), strcpy() 등 <cstring>이나 <string.h> 헤더 파일 include #include <cstring> 또는 #include <string.h>... int n = strlen("hello"); <cstring> 헤더 파일을 사용하는 것이 바람직함 <cstring>이 C++ 표준 방식

cin을 이용한 문자열 입력 29 문자열 입력 char name[6]; // 5 개의 문자를 저장할 수 있는 char 배열 cin >> name; // 키보드로부터 문자열을 읽어 name 배열에 저장한다. Grace 키입력 name [0] [1] [2] [3] [4] [5] G r a c e \0 Grace 문자열

예제 1 4 키보드에서 문자열 입력받고 출력 30 #include <iostream> using namespace std; int main() { cout << "이름을 입력하세요>>"; char name[11]; // 한글은 5개 글자, 영문은 10까지 저장할 수 있다. cin >> name; // 키보드로부터 문자열을 읽는다. } cout << "이름은 " << name << "입니다\n"; // 이름을 출력한다. 이름을 입력하세요>>마이클 이름은 마이클입니다 빈 칸 없이 키 입력해야 함 이름을 입력하세요>>마 이 클 이름은 마입니다 빈 칸을 만나면 문자 열입력종료

31 예제 1-5 C-스트링을 이용하여 암호가 입력되면 프로그램을 종료하는 예 #include <iostream> #include <cstring> using namespace std; strcmp() 함수를 사용 하기 위한 헤더 파일 int main() { char password[11]; cout << "프로그램을 종료하려면 암호를 입력하세요." << endl; while(true) { cout << "암호>>"; cin >> password; if(strcmp(password, "C++") == 0) { cout << "프로그램을 정상 종료합니다." << endl; break; } else cout << "암호가 틀립니다~~" << endl; } } 프로그램을 종료하려면 암호를 입력하세요. 암호>>Java 암호가 틀립니다~~ 빈 칸 없이 키 입력해야 함 암호>>C 암호가 틀립니다~~ 암호>>C++ 프로그램을 정상 종료합니다.

cin.getline()을 이용한 문자열 입력 32 공백이 낀 문자열을 입력받는방법 cin.getline(char buf[], int size, char delimitchar) buf에 최대 size-1개의 문자 입력. 끝에 \0 붙임 delimitchar를 만나면 입력 중단. 끝에 \0 붙임 delimitchar의 디폴트 값은 \n (<Enter>키) char address[100]; cin.getline(address, 100, '\n'); 최대 99개의 문자를 읽어 address 배열 에 저장. 도중에 <Enter> 키를 만나면 입력 중단 사용자가 Seoul Korea<Enter> 를 입력할 때, address[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]... [99] S e o u l K o r e a \0...... "Seoul Korea" 문자열

예제 1 6 cin.getline()을 이용한 문자열 입력 33 #include <iostream> using namespace std; int main() { cout << "주소를 입력하세요>>"; char address[100]; cin.getline(address, 100, '\n'); // 키보드로부터 주소 읽기 } cout << "주소는 " << address << "입니다\n"; // 주소 출력 주소를 입력하세요>>컴퓨터시 프로그램구 C++동 스트링 1-1 주소는 컴퓨터시 프로그램구 C++동 스트링 1-1입니다 빈칸이 있어도 <Enter> 키가 입력 될 때까지 하나의 문자열로 인식

C++에서 문자열을 다루는 string 클래스 34 string 클래스 C++에서 강력 추천 C++ 표준 클래스 문자열의 크기에 따른 제약 없음 string 클래스가 스스로 문자열 크기게 맞게 내부 버퍼 조절 문자열 복사, 비교, 수정 등을 위한 다양한 함수와 연산자 제공 객체 지향적 <string> 헤더 파일에 선언 #include <string> 필요 C-스트링보다 다루기 쉬움

35 예제 1-7 string 클래스를 이용한 문자열 입력 및 다루기(비교) #include <iostream> #include <string> using namespace std; string 클래스를 사용하기 위한 헤더 파일 int main() { string musical("lion King"); // 문자열 musical string elton("elton John"); // 문자열 elton string composer; // 문자열 composer cout << 뮤지컬 + musical + "의 작곡자는"; // + 로 문자열 연결 cout << "(힌트 : 첫글자는 " << elton[0] << ")?"; // [] 연산자 사용 } getline(cin, composer); // 문자열 입력 getline()은 string 타입의 문자열을 입 력 받기 위해 제공되는 전역 함수 <- if(composer == elton) // 문자열 비교 빈칸을 포함하는 문자열 입력 가능 cout << "맞았습니다."; else cout << "틀렸습니다. "+ elton + "입니다." << endl; // +로 문자열 연결 뮤지컬 Lion King의 작곡자는(힌트 : 첫글자는 E)?Emma Watson 틀렸습니다. Elton John입니다. 빈칸 포함

<iostream>과 <iostream.h>의 차이 36 구 표준의 C++ #include <iostream.h> 2003년 표준 이후 버전의 C++ #include <iostream> using namespace std; 헤더 파일의 확장자 비교

#include <헤더파일>와 #include "헤더파일" 37 #include <헤더파일> 헤더파일 을 찾는 위치 컴파일러가 설치된 폴더에서 찾으라는 지시 #include <iostream> <iostream> 헤더 파일은 컴파일러가 제공 #include 헤더파일 헤더파일 을 찾는 위치 개발자의 프로젝트 폴더 개발자가 컴파일 옵션으로 지정한 include 폴더에서 찾도록 지시

cin과 cout은 어디에 선언되어 있는가? 38 cout이나 cin은 모두 <iostream>에 선언된 객체 <iostream> 헤더 파일