C++ 실습

yun·2023년 11월 7일
0

C++

목록 보기
1/41

C++ 코드를 작성하고 실행하는 방법

  • g++로 빌드 후 실행한다.
# ubunutu 22.04에 g++이 설치되어 있고 C++ 17 버전을 사용할 수 있음

# c++ 빌드
g++ filename.cpp

# c++ 실행
./a.out

# 빌드할 때 파일이름을 지정하려면
# 주: 코드파일과 실행파일 순서를 잘못 쓰면 코드파일도 삭제되고 실행파일도 생성되지 않음
g++ -o filename_whatever filename.cpp 

# output 실행
./filename_whatever
  • 현재 사용되는 C++ 버전을 확인하려면 cpp 코드 파일에서 다음과 같이 작성해보자.
cout << __cplusplus  // C++ 17 버전의 경우 201703 값이 출력된다.
  • 따로 설정하지 않으면 Ubuntu 22.04에 설치된 g++ 11.4.0 버전은 C++ 17 버전으로 컴파일한다.

  • cf. Windows에서 실습할 경우

    • 방법이 여러 가지 있지만 minGW(https://nuwen.net/)를 설치하는 게 제일 편했다.

    • minGW 설치 후 환경변수에 설치된 minGW의 bin 디렉토리 시스템 변수로 추가

    • cmd에서 g++ -vgcc -v으로 설치 확인

    • 빌드/실행

      # c++ 빌드
      g++ filename.cpp
      
      # c++ 실행
      ./a.exe
    • 실행 시 한글이 깨진다면: F1 설정에서 change encoding → save with encoding → Korean (EUC-KR) 선택 → 다시 빌드 → 실행

  • vscode에서 작성하기 편하게 C++ Extension pack을 설치해 주자

  • 여러 파일 빌드 시 cmake 작성 또는 다른 툴 사용 필요

코드 실습

1. 입력받은 정보(이름과 주소)를 표시

#include <iostream>
using namespace std;

int main()
{
    cout << "[System] What's your name?" << endl;

    string name;  // C++ provides string as std::string
    cin >> name;
    cout << "[You] My Name is " << name << "." << endl;
    
    cout << "[System] What's your email address?" << endl;

    string email;
    cin >> email;
    cout << "[You] My email address is " << email << endl;

    cin.get();  // 키 입력을 받으면 종료
    
    return 0;
}
  • main 함수는 항상 int를 리턴타입으로 사용하고 return 0를 적는다.
  • 사용되지 않는 리턴값이며, main함수가 종료되기까지 리턴문이 없으면 return 0;가 입력된 것으로 인지하고 동작한다. (그래도 일반규칙이므로 적어주자.)
  • main 함수 외에는 return이 없으면 warning: no return statement in function returning non-void 에러 발생하며 컴파일이 불가하다.)

2. furlong을 yard로 변환

#include <iostream>
using namespace std;

int main()
{
    cout << "Furlong: ";

    int furlong;
    cin >> furlong;

    int yard;
    yard = furlong * 220;
    cout << "Yard: " << yard << endl;

    cin.get();  // 키 입력을 받으면 종료
    
    return 0;
}

3. inch로 입력된 키를 feet와 inch로 변환

#include <iostream>
#define underline "\033[4m"
#define underline_off "\033[0m"

using namespace std;

int main()
{
    const int FEET_CONVERT_CONST = 12;

    cout << "Tell me your height in inches(integer only): ";

    int height_i;
    cin >> height_i;

    int height_f;
    height_f = height_i/FEET_CONVERT_CONST;

    int height_rest;
    height_rest = height_i - (height_f*FEET_CONVERT_CONST);

    cout << "Your height is " << underline << height_i << underline_off << " inches." << endl;
    cout << "In other words, your height is " << height_f << " ft and " << height_rest << " inches" << endl;

    cin.get();  // 키 입력을 받으면 종료

    return 0;
}
  • ANSI escape문으로 밑줄을 표시
  • 1 foot = 12 inches 이므로 상수를 사용
  • 입력된 키 중에서 feet로 변환할 수 있는 부분을 제외하고 inch로 표시
  • 실행 예
  • 예제 출처
    C++ Primer Plus ch.2 ~ ch.3

0개의 댓글