C++ 프로그래밍에서 입출력은 프로그램이 사용자와 데이터를 주고받는 핵심적인 부분입니다. C++에서는 입출력을 처리하기 위해 표준 라이브러리를 제공합니다. 오늘은 C++의 입출력 방법에 대해 살펴보고, 다양한 예제를 통해 이를 활용하는 방법을 알아보겠습니다.
1. C++ 입출력 기본 개념
C++에서 입출력은 <iostream>
헤더 파일을 통해 이루어집니다. 주요 사용되는 객체는 다음과 같습니다:
std::cin
: 입력을 받는 데 사용됩니다.std::cout
: 출력을 하는 데 사용됩니다.std::cerr
: 오류 메시지를 출력할 때 사용됩니다.std::clog
: 로그 메시지를 출력할 때 사용됩니다.
이 객체들은 모두 C++의 표준 입출력 스트림에 기반을 두고 있습니다.
입출력 예제
#include <iostream>
int main() {
int number;
std::cout << "숫자를 입력하세요: ";
std::cin >> number;
std::cout << "입력한 숫자는 " << number << "입니다." << std::endl;
return 0;
}
위 코드는 사용자로부터 숫자를 입력받아 출력하는 기본적인 예제입니다.
2. 출력(std::cout
)
std::cout
객체는 콘솔에 데이터를 출력하는 데 사용됩니다. <<
연산자를 사용하여 문자열과 변수를 출력할 수 있습니다.
주요 특징
- 다양한 데이터 타입 출력 가능: 문자열, 숫자, 변수 등을 출력할 수 있습니다.
- 체인 출력: 여러 출력을 연속으로 연결할 수 있습니다.
예제: 체인 출력
#include <iostream>
int main() {
std::cout << "안녕하세요, " << "C++ 입출력 예제입니다!" << std::endl;
int age = 25;
std::cout << "나이: " << age << "살" << std::endl;
return 0;
}
출력 결과:
안녕하세요, C++ 입출력 예제입니다!
나이: 25살
3. 입력(std::cin
)
std::cin
객체는 사용자로부터 데이터를 입력받는 데 사용됩니다. >>
연산자를 사용하여 데이터를 변수에 저장할 수 있습니다.
주요 특징
- 공백이나 엔터로 입력을 구분합니다.
- 입력은 기본적으로 문자열 또는 숫자 타입으로 변환됩니다.
예제: 사용자 입력 받기
#include <iostream>
#include <string>
int main() {
std::string name;
std::cout << "이름을 입력하세요: ";
std::cin >> name;
std::cout << "안녕하세요, " << name << "님!" << std::endl;
return 0;
}
출력 결과:
이름을 입력하세요: 홍길동
안녕하세요, 홍길동님!
주의점
std::cin
은 공백을 기준으로 입력을 나누기 때문에, 공백이 포함된 문자열을 입력받으려면 std::getline
을 사용해야 합니다.
예제: 공백 포함 문자열 입력 받기
#include <iostream>
#include <string>
int main() {
std::string fullName;
std::cout << "전체 이름을 입력하세요: ";
std::getline(std::cin, fullName);
std::cout << "반갑습니다, " << fullName << "님!" << std::endl;
return 0;
}
출력 결과:
전체 이름을 입력하세요: 홍 길 동
반갑습니다, 홍 길 동님!
4. 파일 입출력
C++에서는 파일 입출력을 위해 <fstream>
헤더를 사용합니다. 주요 클래스는 다음과 같습니다:
std::ifstream
: 파일에서 데이터를 읽는 데 사용됩니다.std::ofstream
: 파일에 데이터를 쓰는 데 사용됩니다.std::fstream
: 파일 읽기와 쓰기를 모두 수행할 수 있습니다.
예제: 파일 쓰기
#include <iostream>
#include <fstream>
int main() {
std::ofstream outFile("example.txt");
if (outFile.is_open()) {
outFile << "이것은 파일 입출력 예제입니다." << std::endl;
outFile << "C++에서 파일에 데이터를 기록할 수 있습니다." << std::endl;
outFile.close();
std::cout << "파일 쓰기가 완료되었습니다." << std::endl;
} else {
std::cerr << "파일을 열 수 없습니다." << std::endl;
}
return 0;
}
예제: 파일 읽기
#include <iostream>
#include <fstream>
#include <string>
int main() {
std::ifstream inFile("example.txt");
if (inFile.is_open()) {
std::string line;
while (std::getline(inFile, line)) {
std::cout << line << std::endl;
}
inFile.close();
} else {
std::cerr << "파일을 열 수 없습니다." << std::endl;
}
return 0;
}
5. 형식화된 입출력
C++에서는 입출력 데이터를 형식화하기 위해 <iomanip>
헤더를 제공합니다.
주요 함수
std::setw
: 출력 너비 설정std::setprecision
: 소수점 자릿수 설정std::fixed
: 고정 소수점 형식 설정
예제: 소수점 출력
#include <iostream>
#include <iomanip>
int main() {
double pi = 3.14159265359;
std::cout << "기본 출력: " << pi << std::endl;
std::cout << std::fixed << std::setprecision(2);
std::cout << "소수점 2자리: " << pi << std::endl;
return 0;
}
출력 결과:
기본 출력: 3.14159
소수점 2자리: 3.14
결론
C++ 입출력은 프로그램의 핵심적인 부분으로, 사용자와 데이터를 주고받는 데 유용합니다. 본 포스팅에서는 기본적인 콘솔 입출력부터 파일 입출력, 형식화된 입출력까지 다뤄보았습니다. 이를 활용하여 더욱 효율적인 프로그램을 작성해 보세요!
'cpp' 카테고리의 다른 글
C++ 함수 (0) | 2024.12.18 |
---|---|
C++ 반복문 (0) | 2024.12.18 |
C++ 조건문 (Conditional Statements) (0) | 2024.12.17 |
C++ 데이터 타입과 변수 (0) | 2024.12.17 |
C++ 소개와 개발 환경 설정 (0) | 2024.12.17 |