- Console Output
더보기
- console-out stream과 stream insertion operator <<
콘솔창에 글자를 출력하기 위한 방법.
C언어에서는 printf() 함수를 통해 화면에 출력했다면,
C++은 cout과 << 연산자를 통해 출력합니다. - Manipulator
cout 키워드를 통한 피연산자의 출력 형식(8진수, 16진수, 문자, …)을 결정하는 키워드.
// In C Language...
int Number = 10;
printf("%x\n", Number);
// number를 16진수 출력형식으로 출력.
// In C++ Language...
int Number = 10;
std::cout << std::showbase << std::hex << Number << std::endl;
// base는 진법. showbase는 진법 표시을 생략하지 말고 표기하라.
- namespace와 using
더보기
- 네임 스페이스(namespace)
전역변수/전역함수/클래스 등의 이름 충돌을 피하기 위해서 사용하는 키워드 - 범위 지정 연산자 ::
어디에 소속되어 있는지 명시하기 위해 사용하는 연산자 - using 키워드
타이핑 양을 줄이기 위해서 사용하는 키워드
ex) std:: 같은 것들을 적지 않아도 되게끔 해줍니다
- Console Input
더보기
- cin과 >> 연산자
C언어의 scanf() 함수와 역할이 유사합니다. - cin의 상태 종류
- goodbit
"아무 문제 없음 ", "기본 상태" - eofbit
"더이상 읽을 입력 데이터가 없음" - failbit
"읽고자 하는 입력 데이터의 자료형이나 형식이 맞지 않음" - badbit
"입력 장치의 심각한 오류", 거의 일어나지 않음
- goodbit
- cin.clear() 함수
eofbit, failbit, badbit을 unset 시켜주는 함수. 즉, good state가 됩니다 - cin.ignore() 함수
파일 끝에 도달하거나 지정한 수 만큼 문자를 버리면 멈춥니다.
cin.ignore(); // 문자 1개를 버림.
cin.ignore(10, '\n'); // 문자 10개를 버림. 단, 그 전에 '\n' 문자를 버리면 곧바로 버리는 걸 멈춤.
cin.ignore(LLONG_MAX, '\n'); // 최대 문자 수를 버림. 단, 그 전에 '\n' 문자를 버리면 곧바로 버리는 걸 멈춤.
- 참조와 nullptr
더보기
- 참조(Reference)
이미 존재하는 변수명에 또 하나의 별명을 붙여주는 문법.
즉, 변수의 별명을 지어주는 문법입니다
int Number = 10;
int& Num = Number; - 참조는 NULL을 대입할 수 없습니다.
포인터는 NULL 대입 가능합니다.
int& Reference = NULL;
// 컴파일 에러.
// 참조는 반드시 존재하는 변수를 참조해야 함. - 참조는 선언과 동시에 반드시 초기화 되어야만 합니다.
포인터는 초기화 안해도 컴파일 가능합니다.
int& Reference; // 컴파일 에러 - 참조는 참조하는 대상을 바꿀 수 없습니다.
포인터는 참조 하는 대상을 바꿀 수 있습니다.
int Num1 = 10;
int Num2 = 20;
int& RefNum1 = Num1;
RefNum1 = Num2; - 포인터와 참조에 대한 결론
참조는 안전하지만 자유도가 떨어지고, 포인터는 안전하지 않지만 자유도가 높습니다.
상황에 따라서 잘 골라서 사용할 필요가 있습니다.
일단 모든 상황에서 참조를 사용하다가 필요에 따라 포인터로 변경하는 것도 좋습니다. - nullptr
NULL은 정수 0으로 해석될 수 있지만,
nullptr은 정수로 변환되지 않도록 설계되어 있어서 포인터 상수로 사용 할 수 있습니다
'복습용 > C++' 카테고리의 다른 글
| [Unreal Engine 8기] C++ std::string과 File I/O (0) | 2026.03.25 |
|---|---|
| [Unreal Engine 8기] C++ Casting, inline 키워드, static 키워드, 예외처리 (0) | 2026.03.24 |
| [Unreal Engine 8기] C++ 상속과 다형성, 추상 클래스 (1) | 2026.03.23 |
| [Unreal Engine 8기] C++ 복사 생성자와 오버로딩 (0) | 2026.03.20 |
| [Unreal Engine 8기] C++ 생성자와 소멸자 (0) | 2026.03.19 |