첫 번째 C++ 프로그램
"Hello, World!" 프로그램 소개
C++ 학습을 시작할 때 전통적으로 가장 먼저 작성하는 프로그램은 "Hello, World!"입니다.
이 간단한 프로그램을 통해 C++의 기본 구조와 주요 개념을 이해할 수 있습니다.
프로그램 구조 상세 분석
1. #include <iostream>
- 전처리기 지시문으로, iostream 헤더 파일을 포함시킵니다.
- iostream은 입출력 기능을 제공하는 표준 라이브러리입니다.
2. int main()
- 모든 C++ 프로그램의 시작점인 main 함수를 정의합니다.
- int는 함수의 반환 타입으로, 프로그램의 종료 상태를 나타냅니다.
3. std::cout << "Hello, World!" << std::endl;
std::cout
은 표준 출력 스트림 객체입니다.<<
는 출력 연산자로, 데이터를 출력 스트림에 삽입합니다.std::endl
은 개행 문자를 출력하고 버퍼를 플러시합니다.
4. return 0;
- 프로그램이 성공적으로 종료되었음을 운영 체제에 알립니다.
주요 개념 설명
1. 헤더 파일과 라이브러리
- 헤더 파일은 함수 선언, 클래스 정의 등을 포함합니다.
- 표준 라이브러리는 자주 사용되는 기능을 미리 구현해 놓은 것입니다.
2. 네임스페이스 std
std::
는 표준 라이브러리의 네임스페이스를 지정합니다.- 네임스페이스는 이름 충돌을 방지하는 기능을 합니다.
3. 문장과 블록
- 세미콜론(;)으로 끝나는 것이 하나의 문장입니다.
- 중괄호 로 묶인 부분이 하나의 블록입니다.
4. 주석
//
: 한 줄 주석/* */
: 여러 줄 주석
프로그램 확장 : 사용자 입력 받기
이제 프로그램을 확장하여 사용자로부터 입력을 받아보겠습니다.
#include <string>
: string 클래스를 사용하기 위한 헤더 파일입니다.std::string name;
: 문자열을 저장할 변수를 선언합니다.std::cin >> name;
: 표준 입력 스트림에서 사용자 입력을 받아 name 변수에 저장합니다.
컴파일 및 실행 과정
1. 소스코드 작성 : 텍스트 에디터나 IDE를 사용해 .cpp 파일을 생성합니다.
2. 컴파일
이 명령어는 main.cpp 파일을 컴파일하여 hello라는 실행 파일을 생성합니다.
3. 실행
생성된 실행 파일을 실행합니다.
코딩 스타일과 Best Practices
1. 들여쓰기 : 일관된 들여쓰기를 사용하여 코드의 구조를 명확히 합니다.
2. 의미 있는 변수명 : 변수의 용도를 명확히 나타내는 이름을 사용합니다.
- 예 :
int age;
(O),int a;
(X)
3. 주석 작성
- 복잡한 로직이나 비obvious한 코드에 주석을 달아 설명합니다.
- 하지만 너무 당연한 것에 주석을 달지 않도록 주의합니다.
4. 한 줄의 길이 : 80자 또는 120자를 넘지 않도록 합니다.
5. 함수와 변수 명명 규칙
- 함수명 : 동사 + 명사 형태 (예 :
calculateTotal()
) - 변수명 : 명사 또는 형용사 + 명사 (예 :
totalAmount
,isReady
)
주요 프로그래밍 개념 소개
1. 변수와 상수
- 변수 : 값을 저장하는 메모리 공간
- 상수 : 한 번 정의되면 변경할 수 없는 값
2. 기본 데이터 타입
int
: 정수형 (예 : 1, -5, 100)float
,double
: 부동소수점 (예 : 3.14, -0.01)char
: 문자형 (예 : 'A', '1', '*')bool
: 논리형 (true 또는 false)
3. 연산자
- 산술 연산자 :
+
,-
,*
,/
,%
- 비교 연산자 :
==
,!=
,<
,>
,<=
,>=
- 논리 연산자 :
&& (AND)
,|| (OR)
,! (NOT)
연습 문제
- 다음 프로그램의 출력 결과를 예측해보세요.
- 사용자로부터 두 개의 정수를 입력받아 그 합을 출력하는 프로그램을 작성하세요.
- 섭씨 온도를 입력받아 화씨 온도로 변환하는 프로그램을 작성하세요. (화씨 = 섭씨 * 9/5 + 32)
- 다음 코드의 문제점을 찾고 수정하세요.
- 사용자로부터 이름, 나이, 직업을 입력받아 다음과 같은 형식으로 출력하는 프로그램을 작성하세요.
참고자료
- "C++ Primer" by Stanley B. Lippman, Josée Lajoie, and Barbara E. Moo
- C++ 참조 문서 : https://en.cppreference.com/w/cpp
- C++ Core Guidelines : http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines