C++ 기초

yu-podong·2021년 3월 16일
0

CPP

목록 보기
1/9
post-thumbnail
// c언어
#include <stdio.h>

int main() {
	int num;

	printf("첫번째 C프로그래밍입니다.\n");

	printf("정수를 입력하세요.");
	scanf("$d", &num);
	printf("입력된 정수는 %d입니다.\n", num);

	return 0;
}

// cpp
#include <iostream>
using namespace std;

int main() {
	int num;

	cout << "첫번째 C프로그래밍입니다.\n";

	cout << "정수를 입력하세요.";
	cin >> num;
	cout << "입력된 정수는" << num <<"입니다.\n";

	return 0;
}

#include

전처리기(C++ preprocessor)에게 내리는 지시

  • 헤더파일 : 모든 입출력 스트림 클래스의 base class
  • 헤더파일 : 문자 단위 출력 스트림
  • 헤더파일 : 문자 단위 입력 스트림
  • 헤더파일 : 문자 단위로 입출력을 동시에 할 수 있는 스트림 클래스

C++ stream 종류

데이터를 전송하는 SW 모듈

  1. 입력 스트림 : data → program으로 전달
  2. 출력 스트림 : data → 출력 장치, 네트워크, 파일로 전달하는 스트림

⇒ 각 스트림은 버퍼 존재 ( 데이터를 모아서 한 번에 전달)

C++ 입출력 방식

  1. stream I/O
    • enter 입력 → program이 버퍼를 읽어감
    • buffer full or '\n' or flust() → 버퍼가 출력
  2. raw leel console I/O
    • 입력 즉시 프로그램에 전달
    • C++ 표준X

#include

  1. #include

    -헤더파일 위치 : 컴파일러가 설치된 폴더 ⇒ 기본적으로 제공되는 헤더

  2. #include "header file"

    -헤더파일 위치 : 현재 디렉토리 ⇒ 직접 만든 헤더

입출력 객체

  1. cin 객체

    • 표준 C++ 입력 스트림 객체

    • 변수의 데이터 형에 따

    • '>>' 연산자 (스트림 추출 연산자) 사용

    • 단, 문자열을 입력할 땐, 공백이 없어야 함

      because >>연산자는 빈칸이 입력될 때까지 하나의 입력으로 처라하므로

    📢cin으로부터의 키 입력 오류 (알아두면 좋은 것)

    1. 입력받을 데이터보다 더 큰 데이터 입력

    2. 자료형이 다른 데이터 입력

      <해결방법>

      1. cin 객체 내부상태 초기화(입력오류 flag 초기화)
      2. 입력버퍼 초기화
      cin.fail()  // cin 오류 시 1을 반환 아니면 0 반환
      cin.clear() // cin 내부 상태 flag 초기화 -> cin 기능 정상 작동하도록 함
      cin.ignore(최대확인글자수, '문자')  // 최대확인글자수까지 입력 버퍼 삭제 if. '문자'를 만나면 그 문자까지 지우고 stop
  2. cout 객체

    • 표준 C++ 출력 스트림 객체
    • << 연산자 (스트림 삽입 연산자) 사용

개행 방식

  1. \n : <<연산자가 cout 스트림 버퍼에 단순 사입
  2. endl 조작자 : 버퍼에 \n 을 넣고 데이터 즉각 출력 명령 ⇒ 함수이므로 속도 slow
std::cout << "hello" << '\n';
std::cout << "hello" << endl;

namespace 키워드

identifier 충돌 해결 → 서로 다른 소스코드에서 동일 명을 사용할 경우 해결하기 힘들기에

⇒ 각 개발자의 자신만의 공간 생성하여 다른 개발자의 공간과 구분

namespace :: identifier

namesapce PODONG {  //PODONG이라는 namespace 공간 생성
	...   // 이 곳에 선언된 모든 이름은 KIM namespace에 생성된 이름
}

std란?

C++ 표준에서 정의한 namespace

⇒ 헤더파일에 선언된 모든 identifier이 std 공간 안에 존재

ex. cout, cin, endl ...

보통 std:: 생략 → using namespace std;

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

/* Example 2*/
using namespace std; // std 이름 공간에 선언된 모든 이름에 std:: 생략 
................................... 
cout << "Hello" << endl; // std:: 생략

진법에 따른 정수 출력

#include <iostream>
using namespace std;

int main() {
	// 각각 10, 8, 16진법을 사용한다
	int decimal = 41;        // 10진수
	int octal = 041;         // 8진수
	int hexadecimal = 0x41;  // 16진수

	// 출력
	cout << "41 = " << decimal;
	cout << "041 = " << octal;
	cout << "0x41 = " << hexadecimal;

	return 0;
}

변수의 정의 위치

변수가 사용되기 전에만 정의하면 OK

  1. 장점
    • 변수 선언부와 실행문 사이를 왕복하는 번거로움 해소
    • 변수 이름 타이핑 오류 감소
  2. 단점
    • 선언된 변수를 일괄적으로 보기 힘듦
    • 코드 사이에 있는 변수 찾기 hard

되도록이면 변수 선언은 한 곳에 정의하는 것이 good!

0개의 댓글