[C++] 명품 C++ Programming 2장 개념정리

2021. 7. 10. 04:29·Major/C&C++
728x90

 

02 C++ 프로그래밍의 기본


1. C++ 프로그램의 기본 요소와 화면 출력

1) 주석문

- /* */ 와 //로 가능하다.

/* 여러줄
   주석문 */
   
// 한 줄 주석

 

2) main() 함수

- main() 함수는 프로그램의 실행 시작점

- 무조건 존재해야며 int형으로 반환된다. (void는 표준이 아님)

 

ⓐ 형식

int main(){
	.....
    return 0;
}

* return 0은 생략이 가능하다. 

 

3) #include <iostream>

- 전처리기에 대한 지시문으로, 소스파일을 컴파일하기 전에 헤더 파일을 읽어 소스파일 안에 삽입할 것을 지시한다. 

- 컴파일러는 전처리기를 호출하여 소스파일을 컴파일 한다.

 

4) 화면 출력

ⓐ 형식 : cout과 << 연산자를 사용하여 출력함

std::cout << "Hello World";

* cout : C++ 표준 출력 스트림 객체, std는 cout의 이름공간(namespace)가 std임을 표시

 

ⓑ 여러 데이터 출력 :  <<연산자를 여러개 사용하여 출력이 가능하다.

std::cout << "Hello World" << "안녕하세요??" ;

 

5) 화면에서 다음 줄로 넘어가기

- \n이나 endl을 사용하여 다음 줄로 넘어갈 수있다.

std::cout << "hi" << "\n";
std::cout << "hi" << std::endl;

 


2. namespace와 std::

1) namespace

- 여러 프로젝트나 여러 사람들이 작성한 프로그램에서 변수, 함수, 클래스 등의 이름이 충돌하는 것을 막기위해 개발자가 자신만의 고유한 이름 공간을 생성할 수 있도록 namespace 키워드를 사용함

 

- 생성/사용 방법 

//생성 방법
namespace BeNI { //BeNI라는 이름공간 생성
	.................
}

//사용 방법
이름공간(namespace) :: 이름(identifier)

2) std:: 란?

- std는 c++표준에서 정한 표준 이름 공간으로서, c++ 표준 라이브러리는 std이름공간에 만들어짐

- 따라서 c++ 표준 라이브러리에서 선언된 이름을 사용할때 std::를 접두어로 붙여야함

 

3) std::의 생략

- using 지시어를 사용하여 std::를 생략할 수있다.

using std::cout; //cout에 대해서만 std:: 생략
.............................
cout << "Hello" << std::endl;

- std 이름 공간에 선언된 모든 이름에 대해 생략

using namespace std;
.....................
cout << "hello" << endl;

 

4) #include <iostream>과 std

- c++표준에서 지원되는 모든 라이브러리는 std 이름 공간안에 구현 되어있음

- 따라서 std::를 생략하기 위해선 아래와 같이 작성

#include <iostream>
using namespace std;

 


3. 키 입력받기

ⓐ cin

- cin은 c++ 표준 입력 스트림 객체이며, <iostream>에 선언되어 있다.

- 모든 기본 타입에 대해 데이터 입력이 가능하다.

int x;
cin >> x; //정수 x를 입력받는다.

 


 

4. 키보드로 문자열 입력

1) C-스트링

- c-스트링은 '\0'(널문자)로 끝나는 char배열을 말하며, c언어에서 사용하는 문자열 방식이다.

- <cstring>이나 <string.h> 헤더파일 필요

 

ⓐ 선언 방법

char name[6] = {'g', 'r', 'a', 'c', 'e', '\0'} //널문자가 없으면 문자열이아님.
char name1[6] = "grace"; 
char name2[] = "grace"; //자동으로 배열의 크기는 6이됨
char name3[10] = "grace"; //문자열 뒤에 남은 4개의 배열원소는 '\0'로 초기화됨

 

ⓑ cin을 이용한 문자열 입력

char name[6];
cin >> name; //name에 입력받은 문자가 6개이상이면 실행오류남

* 주의사항 : 중간에 공백 있으면 공백 전까지만 입력이 됨

* strcmp : 문자열 비교 (같으면 0, 아니면 1반환)

 

ⓒ cin.getline()을 이용한 공백 포함 문자열 입력

- 함수 원형 : cin.getline( 저장할 배열, 저장할 배열의 크기, 문자열입력끝 지정하는 구분문자)

- 3번째 매개변수는 생략 가능(기본값 '\n')

char address[100];
cin.getline(address, 100, '\n'); //엔터전까지 입력받음

 

2) string 클래스

- c++ 표준 라이브러리에서 제공하는 클래스이다.

 

- 선언 방식

string s("Hello World!");
string s = "Hello World!";

- 문자열 복사, 비교, 수정이 쉽고 간단함. (string 멤버함수 확인 >> string - C++ Reference (cplusplus.com))

- [] 연산자를 이용하여 인덱스에 접근 가능하다. ex) s[0] = 'H'

getline(cin, s); //이렇게 입력받을 수도있다.

 

 

+ 헤더파일에는 함수의 선언(원형)만이 들어있고, 함수의 호출이 명확한지 판단하는데 사용된다.

728x90
저작자표시 비영리 (새창열림)

'Major > C&C++' 카테고리의 다른 글

[C++] 명품 C++ Programming 3장 개념정리 (1)  (0) 2021.07.24
[C++] 명품 C++ Programming 2장 연습문제  (0) 2021.07.12
[C++] 명품 C++ Programming 1장 연습문제(이론)  (0) 2021.05.03
[C언어] 스택과 큐 구현해보기  (0) 2021.04.17
[C언어] 동적 메모리 할당  (0) 2021.04.08
'Major/C&C++' 카테고리의 다른 글
  • [C++] 명품 C++ Programming 3장 개념정리 (1)
  • [C++] 명품 C++ Programming 2장 연습문제
  • [C++] 명품 C++ Programming 1장 연습문제(이론)
  • [C언어] 스택과 큐 구현해보기
BeNI
BeNI
코딩하는 블로그
  • BeNI
    코딩못하는컴공
    BeNI
  • 전체
    오늘
    어제
    • Menu (254)
      • My profile (1)
      • 회고 | 후기 (8)
      • Frontend (66)
        • Article (11)
        • Study (36)
        • 프로그래머스 FE 데브코스 (19)
      • Backend (0)
      • Algorithm (58)
        • Solution (46)
        • Study (12)
      • Major (111)
        • C&C++ (23)
        • Java (20)
        • Data Structure (14)
        • Computer Network (12)
        • Database (15)
        • Linux (6)
        • Architecture (3)
        • Lisp (15)
        • OS (1)
        • Security (2)
      • etc (2)
  • 링크

    • 깃허브
    • 방명록
  • 인기 글

  • 최근 댓글

  • 최근 글

  • 태그

    백준
    C++
    데브코스
    리팩토링
    자료구조
    Algorithm
    프로그래머스
    lisp
    react
    파일처리
  • hELLO· Designed By정상우.v4.10.2
BeNI
[C++] 명품 C++ Programming 2장 개념정리
상단으로

티스토리툴바