파일 입출력
stringstream
system("cls") / system("pause")
전처리기
stream: 데이터 스트림의 약자로 데이터가 흘러들어오는 물줄기를 말함
데이터 스트림의 종류

파일을 한 줄씩 버퍼로 가져오고 한 줄씩 읽는식으로 보통 처리
>>연산자를 통해 공백을 기준으로 문자열 추출 가능
Windows 명령 프롬프트에서 화면을 깨끗하게 지우는 명령
linux cmd에서 clear 명령어와 비슷한 효과
#include <cstdlib> 헤더 포함, MS Windows 전용
#include <cstdlib>
int main() {
cout << "~~~~ so many print~~~";
system("cls"); // 화면 초기화
}
Windows의 pause 명령을 호출해 "Press any key to continue..." 메시지를 출력하고, 사용자의 키 입력을 기다림
텍스트 기반 게임에서 결과를 보고 넘어가고 싶을 때 또는, 프로그램의 종료 전에 출력 결과를 확인할 시간을 주기 위해 사용
#include <cstdlib>
int main() {
cout << "~~~~ so many print~~~";
system("pause"); // 키 입력 대기
}
system() 함수는 운영체제 쉘 명령을 호출하므로, 보안상 위험 및 이식성 문제가 있을 수 있다
가능하면 표준 C++ 기능으로 대체
전처리기는 컴파일 하기 전에 #붙은 것을 먼저 처리해줌
그 외에도 __FILE__ 은 해당 파일 정보를, __LINE__은 소스코드 내 행 번호 , __FUNCTION__은 현재 함수의 이름 등 이런 정보를 전처리기가 문자열로 치환해줌
#include <iostream>
void myFunction() {
std::cout << __FUNCTION__ << std::endl;
std::cout << __FILE__ << std::endl;
std::cout << __LINE__ << std::endl;
}
int main() {
myFunction();
}
// myFunction
// main.cpp
// 6
void CPP_LOG(const char* InMessage)
{
#ifdef _DEBUG
std::cout << InMessage << std::endl;
#endif
}
int main()
{
CPP_LOG("프로그램 시작");
}
// Debug 버젼에서는 "프로그램 시작"이 출력됨
// Release 버젼으로 바꾸면 출력 안 됨


#include <cassert>
int Divide(int InA, int InB)
{
assert(InB != 0); // 값이 0이면 에러가 남
// assert(InB != 0 && "InB is invalid."); // 로그도 알려줌
return InA / InB;
}
int main()
{
Result = Divide(10, 0);
}