첫 C++ 프로그램 작성하기

C++Beginner
지금 연습하기

소개

이 랩에서는 첫 번째 C++ 프로그램을 작성하는 방법을 배우게 됩니다. 먼저 GCC (GNU Compiler Collection) 컴파일러를 설치하고 Ubuntu 22.04 에서 필요한 환경 변수를 구성하는 것으로 시작합니다. 그런 다음, 새로운 C++ 소스 파일을 생성하고 기본적인 프로그램 구조를 작성하며, cout 문을 사용하여 "Hello World" 메시지를 출력합니다. 또한 프로그램을 컴파일하고 실행하는 방법, 한 줄 및 여러 줄 주석을 추가하는 방법, 줄 바꿈을 위해 endl\n을 사용하는 방법, 그리고 세미콜론 누락과 같은 일반적인 구문 오류를 수정하는 방법을 배우게 됩니다.

Ubuntu 22.04 에서 GCC 컴파일러 설치 및 환경 변수 설정

이 단계에서는 C++ 용 GCC (GNU Compiler Collection) 컴파일러를 설치하고 Ubuntu 22.04 에서 필요한 환경 변수를 구성하는 방법을 배우게 됩니다. GCC 는 C++ 프로그램을 컴파일하고 실행하는 데 필수적입니다.

먼저, WebIDE 에서 터미널을 엽니다. 화면 하단의 터미널 아이콘을 클릭하거나 키보드 단축키 (일반적으로 Ctrl+`) 를 사용하여 이 작업을 수행할 수 있습니다.

사용 가능한 패키지에 대한 최신 정보를 확보하기 위해 패키지 목록을 업데이트하는 것으로 시작합니다.

sudo apt update

예시 출력:

Hit:1 http://mirrors.cloud.aliyuncs.com/ubuntu jammy InRelease
Hit:2 http://mirrors.cloud.aliyuncs.com/ubuntu jammy-updates InRelease
Hit:3 http://mirrors.cloud.aliyuncs.com/ubuntu jammy-backports InRelease
Hit:4 http://mirrors.cloud.aliyuncs.com/ubuntu jammy-security InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
157 packages can be upgraded. Run 'apt list --upgradable' to see them.

Terminal update command output

다음으로, GCC 컴파일러 및 관련 개발 도구를 설치합니다.

sudo apt install -y build-essential

예시 출력:

Reading package lists...
Building dependency tree...
Reading state information...
build-essential is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 22 not upgraded.

설치를 확인하고 GCC 버전을 확인하려면 다음을 실행합니다.

g++ --version

예시 출력:

g++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

GCC 컴파일러는 일반적으로 이미 시스템 PATH 에 있으므로 추가 구성이 필요하지 않습니다.

.cpp 확장자를 가진 새로운 C++ 소스 파일 생성

이 단계에서는 .cpp 확장자를 가진 새로운 C++ 소스 파일을 생성하는 방법을 배우게 됩니다. C++ 에서 소스 파일은 C++ 코드를 포함하고 있음을 나타내기 위해 .cpp 확장자를 사용합니다. WebIDE 의 파일 탐색기 및 텍스트 편집기를 사용하여 첫 번째 C++ 소스 파일을 생성합니다.

먼저, 터미널에서 ~/project 디렉토리로 이동합니다.

cd ~/project

이제 WebIDE 의 파일 탐색기를 엽니다. 파일 및 폴더 목록이 있는 사이드바가 표시됩니다. 새 파일을 생성할 수 있는 아이콘을 찾습니다. "+" 기호 또는 "New File" 옵션처럼 보일 수 있습니다.

파일 탐색기에서 마우스 오른쪽 버튼을 클릭하고 "New File"을 선택합니다. 메시지가 표시되면 파일 이름을 hello.cpp로 지정합니다. .cpp 확장자는 컴파일러와 개발 도구에 이것이 C++ 소스 파일임을 알려주므로 매우 중요합니다.

터미널에서 파일 생성 예시 (참조용):

touch hello.cpp

새로 생성된 hello.cpp 파일을 클릭하여 WebIDE 의 텍스트 편집기에서 엽니다. 첫 번째 C++ 코드를 작성할 준비가 된 빈 파일이 표시됩니다.

.cpp 확장자는 다음과 같은 이유로 중요합니다.

  • 파일을 C++ 소스 코드 파일로 식별합니다.
  • 개발 도구 및 컴파일러가 파일 형식을 인식하도록 돕습니다.
  • C++ 파일을 .c (C), .java (Java) 또는 .py (Python) 와 같은 다른 프로그래밍 언어 파일과 구별합니다.

이 시점에서 hello.cpp 파일은 C++ 코드 작성을 시작할 준비가 되었습니다. 다음 단계에서는 이 파일에 기본적인 C++ 프로그램을 작성하는 방법을 배우게 됩니다.

int main() 함수를 사용한 기본 프로그램 구조 작성

이 단계에서는 main() 함수에 중점을 두고 C++ 프로그램의 기본적인 구조에 대해 배우게 됩니다. 모든 C++ 프로그램은 프로그램 실행이 시작되는 진입점인 main() 함수를 가져야 합니다.

이전 단계에서 생성한 WebIDE 의 hello.cpp 파일을 엽니다. 이제 기본 프로그램 구조를 추가해 보겠습니다.

#include <iostream>

int main() {
    // Your code will go here
    return 0;
}

참고: 더 나은 학습 결과를 위해 코드를 직접 입력하는 것이 좋습니다. C++ 구문에서 필수적인 중괄호 { }와 세미콜론 ;에 주의하십시오. 공백과 들여쓰기를 잊지 마십시오. 그렇지 않으면 단계 확인이 실패할 수 있습니다.

이 기본 구조를 자세히 살펴보겠습니다.

  1. #include <iostream>: 이것은 입/출력 스트림 라이브러리를 포함하는 전처리기 지시문입니다. 화면에 출력하는 것과 같은 입/출력 작업을 사용할 수 있습니다.
  2. int main(): 이것은 main 함수 선언입니다.
    • int는 함수가 정수 값을 반환함을 지정합니다.
    • main()은 C++ 프로그램의 표준 진입점입니다.
    • 빈 괄호 ()는 함수가 인수를 받지 않음을 나타냅니다.
  3. 중괄호 { }: 코드를 작성할 함수의 본문을 정의합니다.
  4. return 0;: 프로그램이 성공적으로 완료되었음을 나타냅니다.
    • 0 을 반환하면 운영 체제에 프로그램이 오류 없이 실행되었음을 알립니다.
    • 이것은 C++ 프로그램에서 표준적인 관행입니다.

WebIDE 는 입력하는 대로 변경 사항을 자동으로 저장합니다. 또는 편집기의 저장 옵션을 사용하여 파일을 수동으로 저장할 수 있습니다.

WebIDE 에 대해 자세히 알아보려면 WebIDE 가이드를 확인하십시오.

기억해야 할 몇 가지 중요한 사항:

  • 모든 C++ 프로그램은 main() 함수를 가져야 합니다.
  • main() 함수는 프로그램 실행이 시작되는 곳입니다.
  • return 0; 문은 일반적으로 프로그램 실행 성공을 나타내는 데 사용됩니다.

main() 함수를 여행의 시작점이라고 생각할 수 있습니다. 로드 트립이 특정 위치에서 시작되는 것처럼, C++ 프로그램은 main() 함수에서 실행을 시작합니다.

cout 을 사용하여 Hello World 메시지 출력

이 단계에서는 cout를 사용하여 "Hello, World!" 메시지를 화면에 출력하는 방법을 배우게 됩니다. cout는 C++ 표준 입/출력 라이브러리의 일부이며 출력을 표시하는 데 사용됩니다.

WebIDE 에서 hello.cpp 파일을 열고 main() 함수를 수정하여 다음 코드를 포함합니다.

#include <iostream>

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

새로운 코드 줄을 자세히 살펴보겠습니다.

  • std::cout: 이것은 표준 출력 스트림 객체입니다.
    • std::는 표준 네임스페이스를 사용하고 있음을 나타냅니다.
    • cout는 "콘솔 출력 (console output)"을 의미합니다.
  • <<: 스트림 삽입 연산자 (stream insertion operator) 로, 데이터를 출력 스트림으로 보내는 데 사용됩니다.
  • "Hello, World!": 우리가 출력하려는 텍스트 메시지입니다.
  • std::endl: 새 줄을 추가하고 출력 버퍼를 플러시합니다.
    • 메시지가 즉시 표시되도록 합니다.
    • 커서를 다음 줄로 이동합니다.

파일을 저장할 때 위에 표시된 전체 구조를 포함해야 합니다.

cout에 대한 몇 가지 주요 사항:

  • 텍스트, 숫자 및 기타 데이터 유형을 화면에 출력하는 데 사용됩니다.
  • << 연산자는 여러 항목을 출력하기 위해 연결될 수 있습니다.
  • std::endl은 출력 후 새 줄을 만드는 데 사용됩니다.

cout를 세상에 메시지를 알리는 확성기처럼 생각할 수 있습니다. << 연산자는 메시지를 로드하는 데 도움이 되며, std::endl은 모든 사람이 메시지를 명확하게 들을 수 있도록 합니다.

g++ hello.cpp -o hello 명령어로 프로그램 컴파일

이 단계에서는 g++ 컴파일러를 사용하여 C++ 프로그램을 컴파일하는 방법을 배우게 됩니다. 컴파일은 사람이 읽을 수 있는 C++ 소스 코드를 컴퓨터가 실행할 수 있는 실행 가능한 프로그램으로 변환하는 과정입니다.

WebIDE 에서 터미널을 엽니다. ~/project 디렉토리에 있는지 확인합니다.

cd ~/project

이제 g++ 명령을 사용하여 이전에 생성한 hello.cpp 파일을 컴파일해 보겠습니다.

g++ hello.cpp -o hello

이 명령을 자세히 살펴보겠습니다.

  • g++: GNU C++ 컴파일러
  • hello.cpp: 컴파일하려는 소스 파일
  • -o hello: 출력 실행 파일 이름을 지정합니다.
    • -o는 출력 파일의 이름을 지정할 수 있는 옵션입니다.
    • hello는 생성할 실행 파일의 이름입니다.

예시 출력:

## No output means successful compilation

컴파일이 성공하면 오류 메시지가 표시되지 않습니다. 컴파일러는 동일한 디렉토리에 hello라는 실행 파일을 생성합니다.

Terminal compiling C++ code

컴파일을 확인하려면 디렉토리의 파일을 확인할 수 있습니다.

ls

예시 출력:

hello  hello.cpp

이제 두 개의 파일이 표시됩니다.

  • hello.cpp: 소스 코드 파일
  • hello: 컴파일된 실행 프로그램

몇 가지 중요한 컴파일 참고 사항:

  • 코드에 오류가 있으면 g++가 오류 메시지를 표시합니다.
  • 프로그램을 실행하기 전에 항상 컴파일 오류를 확인하고 수정하십시오.
  • -o 옵션은 선택 사항이지만 실행 파일에 의미 있는 이름을 지정하는 것이 좋습니다.

컴파일을 책을 한 언어에서 다른 언어로 번역하는 것과 같다고 생각할 수 있습니다. g++ 컴파일러는 사람이 읽을 수 있는 C++ 코드를 컴퓨터가 이해하고 실행할 수 있는 언어로 변환합니다.

./hello 명령어로 프로그램 실행

이 단계에서는 방금 컴파일한 실행 프로그램을 실행하는 방법을 배우게 됩니다. C++ 프로그램을 컴파일한 후에는 ./ 명령과 실행 파일 이름을 사용하여 실행할 수 있습니다.

~/project 디렉토리에 있는지 확인합니다.

cd ~/project

이전 단계에서 컴파일한 프로그램을 실행하려면 다음 명령을 사용합니다.

./hello

./는 시스템에 현재 디렉토리에서 실행 파일을 찾도록 지시하고, hello는 생성한 실행 파일의 이름입니다.

예시 출력:

Hello, World!

무슨 일이 일어나는지 자세히 살펴보겠습니다.

  • ./는 "현재 디렉토리에서"를 의미합니다.
  • 프로그램은 컴파일된 실행 파일의 지침을 읽습니다.
  • C++ 소스 코드에서 정의한 메시지를 출력합니다.
  • 출력 후 프로그램이 종료됩니다.

몇 가지 중요한 실행 참고 사항:

  • 현재 디렉토리에서 프로그램을 실행할 때는 항상 실행 파일 이름 앞에 ./를 사용합니다.
  • 프로그램은 실행 권한이 있어야 합니다 (이는 g++가 자동으로 제공합니다).
  • 출력이 보이지 않으면 프로그램이 올바르게 컴파일되었는지 다시 확인하십시오.

프로그램 실행을 자동차 시동을 거는 것과 같다고 생각할 수 있습니다. 컴파일은 자동차를 준비하는 것이고, 프로그램 실행은 키를 돌려 운전하는 것입니다.

프로그램을 여러 번 실행하려면 ./hello 명령을 반복하면 됩니다.

한 줄 및 여러 줄 주석 추가

이 단계에서는 C++ 코드에 주석을 추가하는 방법을 배우게 됩니다. 주석은 코드의 내용을 설명하는 코드 내의 메모입니다. 컴파일러는 이를 무시하며 코드를 더 읽기 쉽게 만드는 데 도움이 됩니다.

WebIDE 에서 hello.cpp 파일을 열고 다양한 유형의 주석을 포함하도록 수정합니다.

#include <iostream>

// This is a single-line comment
// It explains what the program does

/*
This is a multi-line comment
You can write multiple lines of explanation
Without worrying about adding // to each line
*/
int main() {
    // Print a greeting message
    std::cout << "Hello, World!" << std::endl;  // Inline comment explaining the output

    /*
    You can also use multi-line comments
    in the middle of your code if needed
    */
    return 0;  // Return success status to the operating system
}

주석 유형을 자세히 살펴보겠습니다.

  1. 단일 행 주석:

    • //로 시작합니다.
    • 줄의 끝까지 확장됩니다.
    • 짧은 설명을 위해 좋습니다.
  2. 다중 행 주석:

    • /*로 시작합니다.
    • */로 끝납니다.
    • 여러 줄에 걸쳐 있을 수 있습니다.
    • 더 긴 설명을 위해 유용합니다.
  3. 인라인 주석:

    • 코드 줄의 끝에 추가됩니다.
    • 특정 코드 줄을 설명합니다.

프로그램을 컴파일하고 실행하여 여전히 작동하는지 확인합니다.

g++ hello.cpp -o hello
./hello

예시 출력:

Hello, World!

주석에 대한 몇 가지 핵심 사항:

  • 주석은 코드를 더 이해하기 쉽게 만듭니다.
  • 다른 프로그래머 (및 자신) 가 코드의 목적을 이해하는 데 도움이 됩니다.
  • 컴파일러는 주석을 완전히 무시합니다.
  • "무엇"을 하는지가 아니라 "왜" 무언가를 하는지 설명하기 위해 주석을 사용하십시오.

주석을 책의 메모와 같다고 생각할 수 있습니다. 실제 텍스트를 변경하지 않고 추가 컨텍스트와 설명을 제공합니다.

줄 바꿈을 위한 endl 및 \n 사용

이 단계에서는 C++ 출력에서 줄 바꿈을 만드는 두 가지 방법, 즉 std::endl과 줄 바꿈 문자 \n을 배우게 됩니다. 두 방법 모두 여러 줄에 걸쳐 출력을 형식화하는 데 도움이 됩니다.

WebIDE 에서 hello.cpp 파일을 열고 줄 바꿈을 시연하도록 수정합니다.

#include <iostream>

int main() {
    // Using std::endl for line breaks
    std::cout << "Hello, World!" << std::endl;
    std::cout << "Welcome to C++ Programming!" << std::endl;

    // Using \n for line breaks
    std::cout << "Using newline character:\n";
    std::cout << "Line 1\n";
    std::cout << "Line 2\n";

    // Mixing both methods
    std::cout << "Mixing methods: " << std::endl;
    std::cout << "Line with endl\n";
    std::cout << "Line with newline character" << std::endl;

    return 0;
}

👆 LabEx 팁: 코드 블록 오른쪽 하단의 "코드 설명"을 클릭하여 Labby AI 와 채팅하여 코드 설명을 얻으세요.

줄 바꿈 방법을 자세히 살펴보겠습니다.

  1. std::endl:

    • 새 줄을 추가합니다.
    • 출력 버퍼를 플러시합니다 (즉시 인쇄되도록 보장).
    • <iostream> 라이브러리의 일부입니다.
    • std::cout과 함께 사용됩니다.
  2. \n (줄 바꿈 문자):

    • 새 줄을 만드는 간단한 방법입니다.
    • std::endl보다 가볍습니다.
    • 많은 프로그래밍 컨텍스트에서 작동합니다.
    • 출력 버퍼를 플러시하지 않습니다.

프로그램을 컴파일하고 실행합니다.

g++ hello.cpp -o hello
./hello

예시 출력:

Hello, World!
Welcome to C++ Programming!
Using newline character:
Line 1
Line 2
Mixing methods:
Line with endl
Line with newline character

핵심 사항:

  • std::endl\n 모두 새 줄을 만듭니다.
  • std::endl은 더 포괄적이지만 약간 느립니다.
  • \n은 더 빠르고 가볍습니다.
  • 이러한 방법을 혼합하여 사용할 수 있습니다.

줄 바꿈을 책의 단락 나누기와 같다고 생각할 수 있습니다. 출력 내용을 구성하고 구조화하는 데 도움이 됩니다.

세미콜론 누락과 같은 일반적인 구문 오류 수정

이 단계에서는 C++ 의 일반적인 구문 오류에 대해 배우고, 세미콜론 누락에 중점을 둡니다. 세미콜론은 C++ 에서 문장의 끝을 표시하므로 매우 중요합니다.

WebIDE 에서 syntax_errors.cpp라는 새 파일을 만듭니다.

cd ~/project
touch syntax_errors.cpp
#include <iostream>

int main() {
    // Common syntax error: Missing semicolon
    std::cout << "This line has an error"  // Missing semicolon here!
    std::cout << "This line will not compile" << std::endl;

    // Correct version with semicolons
    std::cout << "This line is correct" << std::endl;
    std::cout << "All statements end with a semicolon" << std::endl;

    return 0;  // Don't forget the semicolon here too!
}

프로그램을 컴파일해 봅니다.

g++ syntax_errors.cpp -o syntax_errors

예시 컴파일 오류:

syntax_errors.cpp: In function ‘int main()’:
syntax_errors.cpp:5:42: error: expected ‘;’ before ‘std’
    5 |     std::cout << "This line has an error"  // Missing semicolon here!
      |                                          ^
      |                                          ;
    6 |     std::cout << "This line will not compile" << std::endl;
      |     ~~~

세미콜론에 대한 핵심 사항:

  • C++ 의 모든 문장은 세미콜론 ;으로 끝나야 합니다.
  • 세미콜론은 컴파일러에게 한 명령이 어디에서 끝나고 다른 명령이 시작되는지 알려줍니다.
  • 세미콜론 누락은 컴파일 오류를 발생시킵니다.
  • 세미콜론을 잊기 쉬운 일반적인 위치:
    • cout 문 뒤
    • return 문 뒤
    • 변수 선언의 끝

오류를 수정해 보겠습니다.

  1. 누락된 세미콜론을 추가합니다.
  2. 각 문장이 ;으로 끝나는지 확인합니다.

수정된 버전을 컴파일합니다.

g++ syntax_errors.cpp -o syntax_errors
./syntax_errors

성공하면 오류 메시지가 나타나지 않습니다.

세미콜론을 문장의 마침표와 같다고 생각할 수 있습니다. 코드에서 완전한 생각을 표시합니다.

요약

이 랩에서는 C++ 용 GCC (GNU Compiler Collection) 컴파일러를 설치하고 Ubuntu 22.04 에서 필요한 환경 변수를 구성하는 방법을 배우게 됩니다. 새로운 C++ 소스 파일을 만들고, int main() 함수를 사용하여 기본 프로그램 구조를 작성하고, cout을 사용하여 "Hello World" 메시지를 출력합니다. 그런 다음 g++ 명령을 사용하여 프로그램을 컴파일하고 실행합니다. 또한, 한 줄 및 여러 줄 주석을 추가하고, 줄 바꿈을 위해 endl\n을 사용하며, 세미콜론 누락과 같은 일반적인 구문 오류를 수정하는 방법을 배우게 됩니다.

이러한 단계를 완료하면 첫 번째 C++ 프로그램을 작성하고 실행하기 위한 탄탄한 기반을 갖게 되며, Ubuntu 22.04 에서 C++ 개발에 필요한 기본 도구 및 개념에 대한 이해를 얻게 됩니다.