C++ 기본 문법

C++Beginner
지금 연습하기

소개

이 랩에서는 C++ 프로그램의 기본적인 구조를 배우고, 기본적인 구문 요소를 탐구하며, 실행 과정을 이해하게 됩니다. 이 실습 경험은 초보자를 위해 설계되었으며, WebIDE 환경을 사용하여 C++ 코드를 작성하고 이해하는 데 필요한 탄탄한 기반을 제공할 것입니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 고급 레벨의 실험이며 완료율은 28%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

첫 번째 C++ 프로그램 설정

간단한 C++ 프로그램을 생성하고 검토하여 시작해 보겠습니다. 이를 통해 C++ 프로그램의 기본 구조와 구성 요소를 이해할 수 있습니다.

  1. WebIDE 에서 왼쪽 측에 파일 탐색기가 표시됩니다. 파일 탐색기 영역을 마우스 오른쪽 버튼으로 클릭하고 "새 파일"을 선택합니다.
  2. 새 파일의 이름을 hello.cpp로 지정하고 Enter 키를 누릅니다.
  3. 새 파일이 편집기에서 열립니다. 열리지 않으면 파일 탐색기에서 hello.cpp를 두 번 클릭하여 엽니다.
  4. 편집기에서 다음 C++ 코드를 입력합니다.
#include <iostream>
using namespace std;

int main() {
    cout << "Hello, C++!" << endl;
    return 0;
}
C++ code editor screenshot

이 코드를 분석해 보겠습니다.

  1. #include <iostream>: 이것은 입/출력 스트림 라이브러리를 포함하는 전처리기 지시문입니다. C++ 에게 입출력 작업을 위한 도구를 사용하겠다는 의미입니다.
  2. using namespace std;: 이 줄은 std:: 접두사 없이 표준 라이브러리의 요소를 사용할 수 있도록 합니다. "표준 도구 세트를 사용할 때마다 출처를 지정하지 않고 사용하겠다"는 의미입니다.
  3. int main() { ... }: 이것은 프로그램 실행이 시작되는 main 함수입니다. 모든 C++ 프로그램은 main 함수를 가져야 합니다. main 앞의 int는 이 함수가 정수 값을 반환한다는 것을 나타냅니다.
  4. cout << "Hello, C++!" << endl;: 이 줄은 텍스트 "Hello, C++"를 콘솔에 출력합니다. cout는 출력을 위해 사용되고, <<는 출력 연산자이며, endl은 텍스트 뒤에 새 줄을 추가합니다.
  5. return 0;: 이것은 프로그램이 성공적으로 실행되었음을 나타냅니다. 0 의 반환 값은 일반적으로 모든 것이 예상대로 진행되었음을 알리는 데 사용됩니다.

이제 프로그램을 컴파일하고 실행해 보겠습니다.

  1. WebIDE 에서 터미널 또는 콘솔 패널을 찾습니다. 보이지 않으면 열어야 할 수 있습니다 (일반적으로 "터미널" 또는 "보기" 메뉴 아래에 "새 터미널"과 같은 옵션이 있습니다).

  2. 터미널에서 올바른 디렉토리에 있는지 확인합니다. pwd 명령을 사용하여 현재 디렉토리를 확인하고, 필요한 경우 cd를 사용하여 탐색할 수 있습니다.

  3. 프로그램을 컴파일하려면 터미널에 다음 명령을 입력합니다.

    g++ -o hello hello.cpp
  4. 컴파일된 프로그램을 실행하려면 다음을 입력합니다.

    ./hello

Hello, C++! 출력을 볼 수 있습니다.

Terminal showing program output

오류가 발생하면 오타가 있는지 코드를 다시 확인하십시오. C++ 는 대소문자를 구분하므로 coutCout 또는 COUT와 다릅니다.

변수 및 데이터 타입 이해

이 단계에서는 C++ 의 변수와 기본 데이터 유형을 살펴보겠습니다. 변수는 프로그램에서 데이터를 저장하는 데 사용되며, 다양한 데이터 유형을 이해하는 것은 효율적인 프로그래밍에 매우 중요합니다.

  1. WebIDE 에서 variables.cpp라는 새 파일을 만듭니다. 파일 탐색기에서 마우스 오른쪽 버튼을 클릭하고 "새 파일"을 선택하여 이 작업을 수행할 수 있습니다.
  2. 편집기에서 variables.cpp를 열고 다음 코드를 입력합니다.
#include <iostream>
#include <string>
using namespace std;

int main() {
    // Integer variable
    int age = 25;

    // Floating-point variable
    float height = 1.75;

    // Character variable
    char grade = 'A';

    // Boolean variable
    bool isStudent = true;

    // String variable (C++ string class)
    string name = "Alice";

    cout << "Name: " << name << endl;
    cout << "Age: " << age << " years" << endl;
    cout << "Height: " << height << " meters" << endl;
    cout << "Grade: " << grade << endl;
    cout << "Is a student: " << (isStudent ? "Yes" : "No") << endl;

    return 0;
}

사용된 다양한 데이터 유형을 분석해 보겠습니다.

  1. int: 정수에 사용됩니다. 예제에서 age는 정수입니다.
  2. float: 소수점에 사용됩니다. height에 사용합니다. 더 많은 정밀도를 제공하지만 더 많은 메모리를 사용하는 double도 있습니다.
  3. char: 단일 문자에 사용됩니다. grade 변수는 char 입니다.
  4. bool: true/false 값에 사용됩니다. isStudent는 부울 변수입니다.
  5. string: 텍스트에 사용됩니다. 이 유형을 사용하기 위해 맨 위에 <string>을 포함한다는 점에 유의하십시오.

이 프로그램은 다양한 유형의 변수를 선언하고 cout를 사용하여 출력하는 방법을 보여줍니다.

cout << "Is a student: " << (isStudent ? "Yes" : "No") << endl; 줄을 주목하십시오. 이 줄은 if-else 문에 대한 축약형인 삼항 연산자 ?:를 사용합니다. 이는 "isStudent 가 true 이면 'Yes'를 출력하고, 그렇지 않으면 'No'를 출력하라"는 의미입니다.

프로그램을 컴파일하고 실행하려면:

  1. WebIDE 의 터미널 패널에서 올바른 디렉토리에 있는지 확인합니다.

  2. 다음 명령으로 프로그램을 컴파일합니다.

    g++ -o variables variables.cpp
  3. 다음 명령으로 프로그램을 실행합니다.

    ./variables

오류가 발생하면 오타를 확인하십시오. 흔한 실수로는 문장의 끝에 세미콜론을 잊거나 따옴표를 잘못 사용하는 경우가 있습니다.

제어 구조 - If 문 및 루프

제어 구조를 사용하면 프로그램의 흐름을 제어할 수 있습니다. 동적이고 반응적인 프로그램을 만드는 데 필수적인 if 문과 루프를 살펴보겠습니다.

  1. WebIDE 에서 control.cpp라는 새 파일을 만듭니다.
  2. 편집기에서 control.cpp를 열고 다음 코드를 입력합니다.
#include <iostream>
using namespace std;

int main() {
    int number;
    cout << "Enter a number: ";
    cin >> number;

    // If statement
    if (number > 0) {
        cout << "The number is positive." << endl;
    } else if (number < 0) {
        cout << "The number is negative." << endl;
    } else {
        cout << "The number is zero." << endl;
    }

    // For loop
    cout << "Counting from 1 to 5:" << endl;
    for (int i = 1; i <= 5; i++) {
        cout << i << " ";
    }
    cout << endl;

    // While loop
    int count = 5;
    cout << "Countdown:" << endl;
    while (count > 0) {
        cout << count << " ";
        count--;
    }
    cout << endl;

    return 0;
}

사용된 제어 구조를 분석해 보겠습니다.

  1. If-Else 문:
    이것은 프로그램이 결정을 내릴 수 있도록 합니다. 구조는 다음과 같습니다.

    if (condition) {
        // code to execute if condition is true
    } else if (another condition) {
        // code to execute if this condition is true
    } else {
        // code to execute if no conditions are true
    }
  2. For 루프:
    코드 블록을 몇 번 반복할지 알고 있을 때 사용됩니다. 구조는 다음과 같습니다.

    for (initialization; condition; update) {
        // code to repeat
    }

    예제에서 int i = 1은 루프 변수를 초기화하고, i <= 5는 루프를 계속하기 위한 조건이며, i++는 각 반복 후에 루프 변수를 업데이트합니다.

  3. While 루프:
    조건이 true 인 동안 코드 블록을 반복하려는 경우 사용됩니다. 구조는 다음과 같습니다.

    while (condition) {
        // code to repeat
    }

    예제에서 루프는 count > 0인 동안 계속됩니다.

프로그램을 컴파일하고 실행하려면:

  1. WebIDE 의 터미널 패널에서 올바른 디렉토리에 있는지 확인합니다.

  2. 다음 명령으로 프로그램을 컴파일합니다.

    g++ -o control control.cpp
  3. 다음 명령으로 프로그램을 실행합니다.

    ./control

프로그램을 실행하면 숫자를 입력하라는 메시지가 표시됩니다. if 문이 어떻게 작동하는지 확인하려면 다른 숫자 (양수, 음수, 0) 를 입력해 보십시오. 그런 다음 프로그램은 입력에 관계없이 for 루프와 while 루프를 보여줍니다.

오류가 발생하면 세미콜론 누락, 괄호 불일치 또는 변수 이름의 오타와 같은 일반적인 문제를 확인하십시오.

C++ 의 함수

함수는 특정 작업을 수행하는 코드 블록입니다. 코드를 구성하고 재사용 가능하며 이해하기 쉽게 만드는 데 도움이 됩니다. 함수 사용법을 보여주는 프로그램을 만들어 보겠습니다.

  1. WebIDE 에서 functions.cpp라는 새 파일을 만듭니다.
  2. 편집기에서 functions.cpp를 열고 다음 코드를 입력합니다.
#include <iostream>
using namespace std;

// Function to calculate the square of a number
int square(int num) {
    return num * num;
}

// Function to check if a number is even
bool isEven(int num) {
    return num % 2 == 0;
}

// Function with default parameter
void greet(string name = "Guest") {
    cout << "Hello, " << name << "!" << endl;
}

int main() {
    int number = 7;

    cout << "Square of " << number << " is: " << square(number) << endl;

    if (isEven(number)) {
        cout << number << " is even." << endl;
    } else {
        cout << number << " is odd." << endl;
    }

    greet();  // Uses default parameter
    greet("Alice");  // Provides a name

    return 0;
}

이 프로그램의 구성 요소를 분석해 보겠습니다.

  1. 함수 정의:
    함수는 반환 유형, 이름 및 매개변수 (있는 경우) 로 정의됩니다. 예를 들어:

    int square(int num) {
        return num * num;
    }

    이 함수는 정수 num을 받아 제곱하고 결과를 반환합니다.

  2. 부울 반환이 있는 함수:

    bool isEven(int num) {
        return num % 2 == 0;
    }

    이 함수는 숫자가 짝수이면 true를 반환하고, 그렇지 않으면 false를 반환합니다. % 연산자는 나눗셈의 나머지를 제공합니다.

  3. 기본 매개변수가 있는 함수:

    void greet(string name = "Guest") {
        cout << "Hello, " << name << "!" << endl;
    }

    이 함수에는 기본 매개변수가 있습니다. 함수를 호출할 때 인수가 제공되지 않으면 "Guest"를 사용합니다.

  4. 함수 호출:
    main() 함수에서 이러한 함수를 호출하고 반환 값을 사용하는 방법을 보여줍니다.

프로그램을 컴파일하고 실행하려면:

  1. WebIDE 의 터미널 패널에서 올바른 디렉토리에 있는지 확인합니다.

  2. 다음 명령으로 프로그램을 컴파일합니다.

    g++ -o functions functions.cpp
  3. 다음 명령으로 프로그램을 실행합니다.

    ./functions

이 프로그램은 함수를 사용하여 코드를 관리 가능하고 재사용 가능한 조각으로 구성하는 방법을 보여줍니다. 오류가 발생하면 오타, 세미콜론 누락 또는 괄호 불일치를 확인하십시오. 또한 함수를 호출할 때 올바른 함수 이름을 사용하고 있는지 확인하십시오.

기본적인 입출력 연산

이 마지막 단계에서는 C++ 에서 다양한 입력 및 출력 연산을 보여주는 프로그램을 만들 것입니다. 입력 및 출력을 통해 사용자와 상호 작용하는 방법을 이해하는 것은 대화형 프로그램을 만드는 데 매우 중요합니다.

  1. WebIDE 에서 io_operations.cpp라는 새 파일을 만듭니다.
  2. 편집기에서 io_operations.cpp를 열고 다음 코드를 입력합니다.
#include <iostream>
#include <iomanip>  // For setprecision
#include <string>   // For string operations
using namespace std;

int main() {
    string name;
    int age;
    double height;

    // Input operations
    cout << "Enter your name: ";
    getline(cin, name);  // Reads a full line, including spaces

    cout << "Enter your age: ";
    cin >> age;

    cout << "Enter your height in meters: ";
    cin >> height;

    // Output operations
    cout << "\n--- Your Information ---\n";
    cout << "Name: " << name << endl;
    cout << "Age: " << age << " years" << endl;

    // Setting precision for floating-point output
    cout << fixed << setprecision(2);
    cout << "Height: " << height << " meters" << endl;

    // Using width and fill for formatted output
    cout << "\nFormatted Age Display:\n";
    cout << setw(10) << setfill('.') << left << "Age" << setw(5) << right << age << endl;

    return 0;
}

이 프로그램의 주요 구성 요소를 분석해 보겠습니다.

  1. 추가 헤더:

    • #include <iomanip>: 이 헤더는 setprecisionsetw와 같은 입/출력 조작자를 제공합니다.
    • #include <string>: 이 헤더는 문자열 연산에 사용되지만, <iostream>과 함께 암시적으로 포함되는 경우가 많습니다.
  2. 입력 연산:

    • getline(cin, name): 공백을 포함하여 전체 입력 줄을 읽습니다. 이름이나 문장을 읽는 데 유용합니다.
    • cin >> age: age 변수에 단일 값을 읽습니다. >> 연산자는 입력에 사용됩니다.
  3. 출력 연산:

    • cout << "Text" << variable << endl: 이것은 기본 출력 연산입니다. << 연산자는 출력에 사용됩니다.
    • endl: 줄 바꿈을 추가하고 출력 버퍼를 플러시합니다.
  4. 출력 형식 지정:

    • cout << fixed << setprecision(2): 부동 소수점 숫자의 출력을 항상 소수점 2 자리까지 표시하도록 설정합니다.
    • setw(10): 다음 출력 필드의 너비를 10 자로 설정합니다.
    • setfill('.'): 필드의 빈 공간에 채우기 문자를 '.'로 설정합니다.
    • leftright: 필드 내에서 출력의 정렬을 설정합니다.

프로그램을 컴파일하고 실행하려면:

  1. WebIDE 의 터미널 패널에서 올바른 디렉토리에 있는지 확인합니다.

  2. 다음 명령으로 프로그램을 컴파일합니다.

    g++ -o io_operations io_operations.cpp
  3. 다음 명령으로 프로그램을 실행합니다.

    ./io_operations

프로그램을 실행하면 이름, 나이 및 키를 입력하라는 메시지가 표시됩니다. 이 정보를 입력하면 프로그램에서 형식이 지정된 방식으로 다시 표시합니다.

주의해야 할 일반적인 문제:

  • 프로그램이 이름 입력을 건너뛰는 경우 입력 버퍼에 줄 바꿈 문자가 남아 있기 때문일 수 있습니다. 이를 수정하려면 getline(cin, name); 앞에 cin.ignore();를 추가할 수 있습니다.
  • 나이와 키에 유효한 숫자를 입력해야 합니다. 숫자가 아닌 값을 입력하면 예기치 않은 동작이 발생할 수 있습니다.

이 프로그램은 공백이 있는 문자열을 포함하여 다양한 유형의 입력을 처리하고 가독성을 높이기 위해 출력을 형식화하는 방법을 보여줍니다. 이러한 기술은 사용자 친화적이고 대화형 C++ 프로그램을 만드는 데 필수적입니다.

요약

이 랩에서는 WebIDE 환경을 사용하여 C++ 프로그래밍의 기본 개념에 대한 실질적인 경험을 얻었습니다. 다음을 배웠습니다.

  1. WebIDE 에서 기본 C++ 프로그램을 만들고, 컴파일하고, 실행하는 방법.
  2. C++ 에서 변수와 다양한 데이터 유형의 사용.
  3. if 문 및 루프와 같은 제어 구조를 구현하는 방법.
  4. 코드를 구성하고 재사용하기 위한 함수의 생성 및 사용.
  5. 출력 형식 지정을 포함한 기본 입력 및 출력 연산.

이러한 개념은 C++ 프로그래밍의 기초를 형성하며, 더 고급 주제로 나아갈 때 필수적입니다. 기억하세요, 프로그래밍에서는 연습이 중요합니다. 학습을 강화하기 위해 이러한 프로그램을 수정하거나 새로운 프로그램을 만들어 보세요. 실험하고 실수를 두려워하지 마세요. 디버깅은 개발해야 할 중요한 기술입니다.

C++ 여정을 계속 진행하면서 객체 지향 프로그래밍, 템플릿, 표준 라이브러리 사용과 같은 언어의 더 고급 기능을 발견하게 될 것입니다. 계속 탐구하고 즐거운 코딩 되세요!

C++ 개발에 WebIDE 를 사용하는 것은 특히 초보자에게 매우 편리할 수 있습니다. 일관된 환경을 제공하고 많은 설정 문제를 제거합니다. 그러나 진행하면서 더 고급 기능과 더 빠른 컴파일 시간을 위해 Visual Studio, CLion 또는 Code::Blocks 와 같은 로컬 개발 환경 및 IDE 를 탐색할 수 있습니다.