icon안동민 개발노트

첫 번째 C++ 프로그램


"Hello, World!" 프로그램 소개

 C++ 학습을 시작할 때 전통적으로 가장 먼저 작성하는 프로그램은 "Hello, World!"입니다.

 이 간단한 프로그램을 통해 C++의 기본 구조와 주요 개념을 이해할 수 있습니다.

#include <iostream>
 
int main() {
    std::cout << "Hello, World!" << std::endl;
    return 0;
}

프로그램 구조 상세 분석

 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 <iostream>
#include <string>
 
int main() {
    std::string name;
    std::cout << "당신의 이름은? ";
    std::cin >> name;
    std::cout << "안녕하세요, " << name << "님!" << std::endl;
    return 0;
}
  • #include <string> : string 클래스를 사용하기 위한 헤더 파일입니다.
  • std::string name; : 문자열을 저장할 변수를 선언합니다.
  • std::cin >> name; : 표준 입력 스트림에서 사용자 입력을 받아 name 변수에 저장합니다.

컴파일 및 실행 과정

 1. 소스코드 작성 : 텍스트 에디터나 IDE를 사용해 .cpp 파일을 생성합니다.

 2. 컴파일

g++ -o hello main.cpp

 이 명령어는 main.cpp 파일을 컴파일하여 hello라는 실행 파일을 생성합니다.

 3. 실행

./hello

 생성된 실행 파일을 실행합니다.

코딩 스타일과 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)

연습 문제

  1. 다음 프로그램의 출력 결과를 예측해보세요.
#include <iostream>
int main() {
      int x = 5, y = 3;
      std::cout << x + y << " " << x * y << std::endl;
      return 0;
}
  1. 사용자로부터 두 개의 정수를 입력받아 그 합을 출력하는 프로그램을 작성하세요.
  2. 섭씨 온도를 입력받아 화씨 온도로 변환하는 프로그램을 작성하세요. (화씨 = 섭씨 * 9/5 + 32)
  3. 다음 코드의 문제점을 찾고 수정하세요.
#include <iostream>
int main() {
      int x = 10
      std::cout << "x의 값은: " << x << std::endl:
      return 0;
}
  1. 사용자로부터 이름, 나이, 직업을 입력받아 다음과 같은 형식으로 출력하는 프로그램을 작성하세요.
이름 : [이름]
나이 : [나이]세
직업 : [직업]

 참고자료