본문 바로가기
-----ETC-----/C++ 마스터 시리즈

[C++ 마스터] Day 2: 기본 문법과 Hello World 프로그램

by cogito21_cpp 2024. 8. 1.
반응형

기본 문법

C++의 기본 문법을 이해하는 것은 중요한 첫걸음입니다. 이 장에서는 C++ 프로그램의 기본 구조와 주요 문법 요소를 다루겠습니다.

 

1. 주석 (Comments)

주석은 코드에 대한 설명을 추가하는 데 사용됩니다. 컴파일러는 주석을 무시합니다.

  • 한 줄 주석: //
  • 여러 줄 주석: /* ... */

예제:

// 이것은 한 줄 주석입니다.
int main() {
    /* 이것은
       여러 줄 주석입니다. */
    return 0;
}

 

2. 헤더 파일 (Header Files)

헤더 파일은 라이브러리 함수나 클래스를 사용할 수 있도록 포함하는 파일입니다. <iostream>은 입력과 출력을 위한 헤더 파일입니다.

#include <iostream>

 

3. 네임스페이스 (Namespaces)

네임스페이스는 이름 충돌을 방지하기 위해 사용됩니다. std는 표준 라이브러리를 위한 네임스페이스입니다.

using namespace std;

 

4. 메인 함수 (Main Function)

모든 C++ 프로그램은 main 함수에서 시작합니다.

int main() {
    return 0;
}

 

5. 출력 (Output)

출력은 cout 객체를 사용하여 수행됩니다.

cout << "Hello, World!" << endl;

 

Hello World 프로그램

이제 위의 개념을 사용하여 Hello World 프로그램을 작성해 보겠습니다.

#include <iostream>  // 입출력을 위한 헤더 파일

using namespace std;  // 표준 네임스페이스 사용

int main() {
    cout << "Hello, World!" << endl;  // 화면에 "Hello, World!" 출력
    return 0;  // 프로그램 종료
}

 

이 프로그램은 화면에 "Hello, World!"라는 메시지를 출력합니다. 각 요소는 앞서 설명한 대로 동작합니다.

 

컴파일 및 실행

  • GCC 사용 시:
    g++ hello.cpp -o hello
    ./hello
  • Visual Studio 사용 시:
    • Visual Studio에서 새 콘솔 프로젝트를 생성하고, main.cpp에 코드를 작성한 후 실행합니다.

 

예제 문제

문제 1: 두 개의 메시지를 출력하는 프로그램 작성

두 개의 서로 다른 메시지를 각각 한 줄씩 출력하는 C++ 프로그램을 작성하세요.

 

해설:

#include <iostream>

using namespace std;

int main() {
    cout << "Hello, C++!" << endl;
    cout << "Welcome to C++ programming." << endl;
    return 0;
}

 

이 프로그램은 두 개의 메시지를 각각 한 줄에 출력합니다.

 

문제 2: 이름을 입력받아 인사하는 프로그램 작성

사용자에게 이름을 입력받아, "Hello, [이름]!"이라는 메시지를 출력하는 C++ 프로그램을 작성하세요.

 

해설:

#include <iostream>
#include <string>

using namespace std;

int main() {
    string name;
    cout << "Enter your name: ";
    cin >> name;
    cout << "Hello, " << name << "!" << endl;
    return 0;
}

 

이 프로그램은 cin을 사용하여 사용자로부터 입력을 받고, cout을 사용하여 인사 메시지를 출력합니다.

 

다음 단계

2일차의 목표는 C++의 기본 문법과 첫 번째 프로그램인 Hello World를 작성하는 것이었습니다. 다음 날부터는 C++의 변수와 데이터 타입에 대해 다룰 것입니다.

 

내일은 "변수와 데이터 타입"에 대해 다룰 예정입니다. 질문이나 피드백이 있으면 댓글로 남겨 주세요!

반응형