[전공]

[명품 C++] 02 C++ 프로그래밍의 기본

danhan 2022. 6. 2. 11:05

출처 :

  • 명품 C++ Programming (저자 황기태)
  • 객체지향프로그래밍 (윤영 교수님)

주석문

  • 개발자가 붙인 메모, 프로그램에 대한 설명
  • 프로그램의 실행에 영향을 미치지 않음
  • /* 여러 줄 주석 *
  • // 한 줄 주석

#include <iostream>

#include

  • 전처리기 C++ preprocessor에게 내리는 지시
  • 컴파일 전에 실행

<iostream> 헤더 파일

  • 컴파일러가 설치된 폴더에서 찾으라는 지시
  • 표준 입출력을 위한 클래스와 객체, 변수 등이 선언 코드로 정의되어 있지 않음!
  • 확장자 없는 텍스트 파일
  • include 폴더에 존재

*표준 C++에서 헤더 파일은 확장자 없음, 이름 공간 적시 필요

main() 함수

  • 프로그램의 실행을 시작하는 함수
  • 운영 체제 OS가 main() 함수 실행
  • main()이 종료하면 프로그램 종료
  • 반환값은 운영 체제 OS로 반환
  • int main() { // 코드 return 0; }

헤더 파일과 라이브러리

  • 헤더 파일 - 클래스 선언만!
  • 라이브러리 - 클래스 정의, 목적 코드의 모음

화면 출력

cout 객체

  • 스크린 출력 장치에 연결된 표준 c++ 출력 스트림 객체
  • std:: 이름 공간에 선언

<< 연산자

  • 스트림 삽입 연산자 stream insertion operator
    • c++ 기본 산술 시프트 연산자가 재정의됨
    • 오른쪽 피연자를 왼쪽 스트림 객체에 삽입
    • cout 객체에 연결된 화면에 출력
  • 문자열 및 기본 타입의 데이터 출력
  • 함수 호출 가능
  • 줄 바꿈은 “\n” 또는 std::endl

키 입력

cin 객체

  • 표준 입력 장치인 키보를 연결하는 C++ 입력 스트림 객체
  • 입력 버퍼 내장
  • <Enter> 키가 입력될 때까지 입력된 키를 입력 버퍼에 저장

>> 연산자

  • 스트림 추출 연산자 stream extraction operator
  • 입력 스트림에서 값을 읽어 변수에 저장
  • <Enter> 키가 입력되면 cin의 입력 버퍼에서 키 값을 읽어 변수에 전달

이름 공간 namespace

  • 이름 identifier 충돌 해결
  • 개발자가 자신만의 이름 공간을 생성 가능
  • using 지시어로 std:: 생략 가능
// std 이름 공간에 선언된 모든 이름에 std:: 생략
using namespace std;

// cout에 대해서만 std:: 생략
using std::cout;

변수 선언

  • 실행문 중간에도 변수 선언 가능
  • 장점 - 직전 선언으로 변수 이름에 대한 타이핑 오류 감소
  • 단점 - 선언된 변수를 일괄적으로 보기 힘듦

문자열

C-스트링 방식

  • “\0”로 끝나는 문자 배열
char name1[6] = {'H','E','L','L','O','\\0'};
// '\\0'이 없으면 단순 문자 배열, 있으면 문자열
  • C언어의 함수 사용 가능 - strcmp(), strlen(), strcpy()
  • <ctring> 이 표준 헤더 파일

입력

#include <iostream>
using namespace std;

int main() {
	// 마지막 칸은 '\\0'이 들어간다.
	// 한글은 5글자, 영문은 10글자까지 저장간으  
	char name[11];
	cin >> name;

	return 0;
}
int main() {
	char password[11];
	cout << "프로그램을 종료하려면 암호를 입력하세요." << endl;
	while(true) {
		cout << "암호>>";
		cin >> password;
		
		if(strcmp(password, "C++") == 0) {
			cout << "프로그램을 정상 종료합니다." << endl;
			break;
		} else
			cout << "암호가 틀립니다" << endl;
	}
}

공백 문자열 입력

cin.getline(char buf[], int size, char delimitChar)

char address[100];
// 최대 99개의 문자를 읽어 address 배열에 저장, <Enter>키를 만나면 입력 중단
cin.getline(address, 100, '\\n');
  • buf - 최대 size-1개의 문자 입력. 끝에 ‘\0’ 붙임
  • delimitChar를 만나면 입력 중단. 끝에 ‘\0’ 붙임

string 클래스 이용

  • C++ 표준 클래스
  • 문자열의 크기에 따른 제약 없음 - 스스로 크기에 맞게 내부 버퍼 조절
  • 객체 지향적