프로그램의 기본 요소와 화면 출력
기본적인 c++ 프로그램
/*
소스: SimpleC++.cpp
cout과 << 연산자를 이용하여 화면에 출력합니다.
*/
#include <iostream> // cout과 << 연산자 포함
// C++ 프로그램은 main() 함수에서부터 실행을 시작한다.
int main() {
std::cout << "Hello\n"; // 화면에 Hello를 출력하고 다음 줄로 넘어감
std::cout << "첫 번째 맛보기입니다.";
return 0; // main() 함수가 종료하면 프로그램이 종료됨
}
실행 결과
Hello
첫 번째 맛보기입니다.
주석문
주석문(comment)은 프로그램의 실행에 영향을 미치지 않으며 개발자가 프로그램에 대한 설명이나 자유롭게 붙인 특이 사항의 메모입니다. C++에는 주석문을 만드는 2가지 방법이 있습니다.
첫째, 여러 줄이 주석문을 만드는 것으로 다음과 같이 '/*'와 '*/'를 이용합니다.
/*
소스: SimpleC++.cpp
cout과 << 연산자를 이용하여 화면에 출력합니다.
*/
C++ 컴파일러는 '/*'와 '*/' 사이의 모든 내용을 주석문으로 처리하여 적법한 C++ 코드가 있어도 무시하고 컴파일하지 않습니다.
둘째, 한 줄짜리 주석문으로 다음과 같이 '//'를 이용합니다.
std::cout << "Hello\n"; // 화면에 Hello를 출력하고 다음 줄로 넘어감
C++ 컴파일러는 소스에서 '//'를 만나면 그 행의 끝까지 주석문으로 처리하여 무시하고 넘어갑니다.
main() 함수
C 언어와 마찬가지로 main() 함수는 C++ 프로그램의 실행 시작점입니다. C++ 응용 프로그램에는 반드시 main() 함수가 존재해야 하며, main() 함수가 종료하면 프로그램이 종료됩니다.
main() 함수의 표준 형식
C++ 표준에서 정한 main() 함수의 리턴 타입은 다음과 같이 int입니다.
int main() { // ANSCI C++ 표준의 main() 리턴 타입은 int
.............
return 0; // return이 실행되면 main() 함수가 종료하면 프로그램이 종료됨
// 필요에 따라 0이 아닌 다른 값을 리턴할 수 있음
}
간혹 다음과 같이 void를 리턴 타입으로 선언하기도 하는데, 이것은 C++ 표준이 아닙니다.
int main() { // void 타입은 표준이 아님
...
}
대부분의 컴파일러는 이를 문제 삼지 않지만 int main()으로 하는 것이 좋습니다.
int main() 함수에서 return 문 생략 가능
한편, int main() 함수는 정수를 리턴하는 return문을 가지고 있어야 합니다. 그러나 개발자 편의를 위해 C++ 표준에서 main() 함수에 대해서만 예외적으로 return 문을 생략할 수 있도록 하였습니다. return 문이 생략되면 main()이 종료할 때 자동으로 다음이 실행됩니다.
return 0;
#include <iostream>
이 문장은 전처리기(C++ Preprocessor)에 대한 지시문으로서, C++ 소스 파일(SimpleC++.cpp)을 컴파일하기 전에 <iostream> 헤더 파일을 읽어 C++ 소스 파일 안에 삽입할 것을 지시합니다. C++ 컴파일러는 처음에 전처리기를 호출하여 #include로된 라인 모두 처리하도록 한 후, C++ 소스 파일을 컴파일합니다.
<iostream> 헤더 파일에는 C++ 표준 입출력을 위한 클래스와 객체가 선언되어 있으므로, 키보드 입력이나 화면 출력을 위해서는 꼭 필요합니다. 다음 문장은 문자열을 화면에 출력하는 코드로서, cout 객체와 << 연산자 함수가 선언된 <iostream>을 필요로 합니다.
std::cout << "Hello\n"; // 화면에 Hello를 출력하고 다음 줄로 넘어감
화면 출력
C++에서는 다음과 같이 cout과 << 연산자를 이용하여 문자열뿐 아니라 다양한 데이터를 화면에 출력합니다.
std::cout << "Hello\n"; // 화면에 Hello를 출력하고 다음 줄로 넘어감
std::cout << "첫 번째 맛보기입니다.";
cout 객체
cout은 스크린 장치와 연결된 C++ 표준 출력 스트림 객체(standard output stream object)입니다. cout은 C++ 프로그램에서 출력한 데이터를 자신과 연결된 스크린에 대신 출력해 줍니다. cout 앞에 붙여진 std::의 접두어는 cout의 이름 공간(namespace)이 std임을 표시합니다.
<< 연산자
<< 연산자는 스트림 삽입 연산자(stream insertion operator)로 불리며, 오른쪽 피연산자 데이터를 왼쪽 스트림 객체에 삽입합니다. 앞의 소스가 실행되면, "Hello"가 화면에 출력되고 뒤이어 '\n'이 출력되어 커서가 화면의 다음 줄로 넘어갑니다. 그리고 다시 "첫 번째 맛보기입니다."가 출력됩니다.
본래 << 연산자는 정수를 왼쪽으로 시프트(shift)하는 C++의 기본 연산자입니다. 그러나 출력 스트임에 데이터를 삽입하는 삽입 연산자로 <iostream> 헤더 파일에 재정의(operator overloading)되어 cout과 함께 사용됩니다.
여러 개의 << 연산자로 한 문장에 여러 데이터 출력
한 줄에 여러 개의 << 연산자를 사용하여 여러 개의 데이터를 출력할 수 있습니다. << 연산자는 왼쪽에서 오룬쪽으로 순서대로 실행됩니다. 앞의 두 cout 문장을 다음과 같이 한 문장으로 줄여 쓸 수 있습니다.
std::cout << "Hello\n" << "첫 번째 맛보기입니다.";
cout과 << 연산자 활용
<< 연산자는 문자열뿐 아니라 다음과 같은 C++ 기본 타입 데이터도 출력할 수 있습니다.
| bool, char, short, int, long, float, double |
예를 들어봅시다.
int n = 1;
char c = '#';
std::cout << c << 5.5 << '-' << n << "hello" << true;
이 코드의 실행 결과는 다음과 같고, true는 정수 1로 출력됩니다.
| #5.5-1hello1 |
<< 연산자는 다음과 같이 피연산자에 식이나 함수 호출 문을 둘 수 있습니다.
std::cout << "n + 5 =" << n + 5;
std::cout << f(); // 함수 f()의 리턴값 출력
화면에서 다음 줄로 넘어가기
화면의 커서를 다음 줄로 넘기기 위해 '\n' 문자를 이용합니다. 다음 코드는 "Hello" 문자열을 출력하고 커서를 다음 줄로 넘깁니다.
std::cout << "Hello" << "\n"; // Hello를 화면에 출력하고 다음 줄로 넘어감
'\n' 대신 다음과 같이 endl 조직자를 사용해도 됩니다.
std::cout << "Hello" << std::endl;
endl은 C++에서 도입한 조직자(manipluator)라고 불리는 함수입니다.
cout과 <<를 이용한 화면 출력
#include <iostream>
double area(int r); // 함수의 원형 선언
double area(int r) { // 함수 구현
return 3.14 * r * r; // 반지름 r의 원 면적 리턴
}
int main() {
int n = 3;
char c = '#';
std::cout << c << 5.5 << '-' << n << "hello" << true << std::endl;
std::cout << "n + 5 = " << n + 5 << "\n";
std::cout << "면적은 " << area(n); // 함수 area()의 리턴 값 출력
}
실행 결과
#5.5-3hello1
n + 5 = 8
면적은 28.26
'프로그래밍 언어 > C++' 카테고리의 다른 글
| 객체 생성과 객체 활용 (0) | 2026.05.31 |
|---|---|
| C++ 클래스 만들기 (0) | 2026.05.28 |
| 키보드로 문자열 입력 (0) | 2026.05.25 |
| 키 입력 받기 (1) | 2026.05.22 |
| namespace와 std:: (0) | 2026.05.19 |