목록Programming/C++ (43)
Nagie's DevStory
C++는 C만큼 다루기 어려운 언어다. 오히려 C보다 더 어려운 거 같기도 하다. 간혹 C++가 쉽다는 사람과 마스터했다는 사람이 보이긴 하는데 이런 말을 들을때마다 여러 가지 생각이 든다. C++는 호환성을 위해 레거시 문법을 잘 쳐내지도 않으며 심지어 C의 문법까지 사용이 가능한데 '이걸 마스터할 수 있다고?' 라는 생각이 절로 들며 C++를 사용하고 공부할 때 마다 오만함이 자연스럽게 수그러든다. 사람을 겸손하게 만드는 무언가가 있는 언어라고 생각하며 앞으로는 C++ 관련 새로운 기능이 나오거나 내가 몰랐던 기능을 공부하게 되면 이 게시판에 글을 작성할 예정이다. 혹시라도 이 게시물을 보는 사람이 있다면 절망하지 말고 꿋꿋하게 버텨서 결과를 내길 기원한다. 지금 포기해 버리면 투자한 시간이 아깝잖아?
예외 처리는 프로그램의 안정성을 높여주며 예외 상황을 처리하는 방법을 정의하는 데 도움이 된다. C++에서 예외 처리를 구현하는 주요 키워드는 다음과 같다. 키워드 설명 try 예외가 발생할 수 있는 코드 블록을 나타낸다. catch 예외를 처리하는 코드 블록을 나타낸다. 'catch'블록은 예외가 발생하면 실행된다. throw 예외를 발생시키는 데 사용되며 'throw' 키워드 뒤에 예외 객체를 지정한다. std::exception (예외 클래스) 예외는 예외 클래스의 인스턴스로 나타내며, 예외 클래스는 'std::exception'클래스를 상속받아 사용자 정의 예외 클래스를 만들 수 있으며 사용자 정의 예외 클래스는 예외 정보를 저장하고 전달하는 데 사용된다. 아래는 위의 키워드를 사용해 예외 처리를..
C의 파일 입출력처럼 C++ 역시 파일 모드란게 존재하며 표준 C++에서 지원하는 파일 모드는 아래의 표와 같다. 파일 모드설명std::ios::in 파일을 읽기 위해 사용되며 파일을 읽을 수 있지만 쓸 수는 없다. std::ios::out 파일을 쓰기 위해 사용되며 파일을 쓸 수 있지만 읽을 수는 없다. std::ios::app 파일 끝에 데이터를 추가하기 위해 사용된다. 기존 파일의 끝에 데이터를 추가할 수 있다. std::ios::binary 이진 파일 모드로 사용된다. 파일을 이진 모드로 열 때 사용되며 파일의 데이터를 이진 파일로 처리한다. std::ios::ate 파일을 열 때 파일 끝에 커서를 위치시키는 데 사용된다 파일을 열면 파일 끝에서 시작하며 파일을 읽고 쓸 수 있다. std::ios..
C++에서 C의 fseek()처럼 사용할 수 있는 함수가 있다. ifstream과 ofstream에 클래스에 포함된 seekg() 와 seekp()이며 C의 fseek() 처럼 파일 내에서 위치를 이동할 수 있다. #include #include int main() { std::ifstream inputFile("example.txt"); if (inputFile.is_open()) { inputFile.seekg(5); // 파일 내에서 5바이트 위치로 이동 char c; inputFile >> c; std::cout
C++에서 파일 입출력을 하기 위해선 헤더 파일을 사용해야 한다. 기본적으로 다음 3가지 유형의 스트림 클래스를 제공한다. 1. ofstream Output File Stream의 약자고 파일에 데이터를 쓰기 위한 스트림 클래스다. 2. ifstream Input File Stream의 약자고 파일로부터 데이터를 읽기 위한 스트림 클래스다. 3. fstream File Stream의 약자고 파일을 읽고 쓰기 위한 스트림 클래스다. 아래는 파일 입출력의 기본적인 사용 방법에 대한 예시이다. 파일 쓰기 (Output) #include #include int main() { std::ofstream outputFile("example.txt"); // 파일을 쓰기 위한 스트림 생성 if (outputFile...