25.05.21 (4) - C++ Tutorial 2

김영하·2025년 5월 21일

C++

목록 보기
2/32

C++ Tutorial


C++ Comments(주석)

C++ 주석

주석은 코드의 설명을 위한 것으로
대체용 '테스트 코드'가 실행되는 것을 막을 수도 있다

한줄 코멘트

// 를 사용해 짧은 주석을 달 수 있다
// 부터 시작해서 행의 끝부분까지는 컴파일러에게 무시당하며 실행되지 않는다

// This is a comment
cout << "Hello World!";

이렇게 뒤에 다는 것도 문제 없다

cout << "Hello World!"; // comment

여러 줄 코멘트

주석을 여러 줄 달고 싶은 경우에는,
/**/ 을 사용하며, /**/ 사이가 주석으로 인식되어 실행되지 않는다

/* The code here, will be ignored by compiler.
not be executed */
cout << "Hello!";


C++ Variables(변수)

C++ 변수

변수는 '데이터 값을 저장하는 컨테이너'
C++로 예를 들면 :

  • int : 인티저(integer)
  • double : float 역할, 소숫점을 포함한 부동 소수점 숫자 저장
  • char : 단일 캐릭터, ex) a, B , char 값은 '' 작은 따옴표로 둘러싸임
  • string : 문자열, ex) "Hello World" , string 값은 "" 큰따옴표로 둘러싸임
  • bool : 불린, 참/거짓 = true/false

Declaring(선언), 변수 생성

변수를 생성하기 위해선, '타입을 특정하고' '값을 할당한다'

type variableName = value;

type 부분에 C++ 변수타입, int 같은 것들이 들어가고
variableName 부분에 변수의 이름을 지정
value 부분에 값을 할당해 주면 된다

int myNum = 15;
cout << myNum;

맨 위에 int main() 은 메인 함수이기 때문에
메인 함수 내부에 넣어줘봤는데 정상 작동했다

변수부터 만들고 값은 나중에 할당하는 방법도 있다

int myNum;
myNum = 15;
cout << myNum;

변수 값 수정

한 번 값을 할당한 변수에 새로 값을 지정해 주게 되면
overwrite, 덮어쓰기가 된다

int myNum = 15; // myNum 은 15
myNum = 10; // 10으로 덮어쓰기
cout << myNum; // 10으로 출력됨


다른 데이터 타입들의 경우

int myNum = 5; // integer, 정수
double myFloatNum = 5.99; // float, 실수
char myLetter = 'D'; // character, 단일 문자
string myText = "Hello"; // string, 문자열
bool myBoolean = true; // boolean, 참/거짓

변수를 표시(Display)

cout<< 를 사용해 변수도 출력할 수 있다
블루프린트의 "Format Text" 노드처럼,
문자와 {변수} 같은 느낌으로 조합가능

int myAge = 30;
cout << "I am " << myAge << " years old.";

띄어쓰기도 제대로 넣어줘야한다

변수 타입이 다르더라도 문제없다

string name = "John";
int age = 35;
double height = 6.1;

cout << name << " is " << age << " years old and " << height << " feet tall.";


계산식 활용

당연히 연산자를 통해 변수 계산도 가능

int x = 5;
int y = 10;
int sum = x + y;
cout << sum;


다중 변수 생성(Declare Multiple Variables)

한번에 여러개의 변수를 생성하는 법

같은 타입 의 변수를 여러 개 생성해주려면,
, 로 구분해 주면 된다

int x = 5, y = 6, z = 50;
cout << x + y + z;

하나의 값을 여러개의 변수에 할당하는 방법도 있다

int x, y, z;
x = y = z = 50;
cout << x + y + z;


C++ Identifiers(식별자)

C++ 식별자

모든 C++ 변수는 unique names, 고유의 이름으로 정의되어야 합니다.
이 유니크한 이름들을 identifiers, 식별자 라고 부른다
식별자 이름 길이에 딱히 제한은 없지만,
제대로 "알아볼 수 있고" "유지될 수 있는(덮어쓰기 방지)" 이름으로 해야한다.
ex) x / y / age / sum / totalVolume

// 알아보기 쉽게
int minutesPerHour = 60;
// 알아보기 어렵다
int m = 60;

변수 이름을 짓는데 가장 일반적인 룰 은 :

  • 문자, 숫자, 언더바 가능
  • 문자나 언더바로 시작해야함
  • 대소문자를 구분 (myVar 와 myvar 는 다른 변수)
  • 공백이나 특수문자 금지
  • C++ 키워드, int 같은 것들은 사용금지

C++ Constants(상수)

상수

만약 자신이나 다른 누군가가 변수의 값을 수정할 수 없게 하고 싶다면,
const 키워드를 활용

변수를 "상수"로 지정해 불변화, 읽기 전용 으로 만들어준다

const int myNum = 15; // myNum 은 항상 15
myNum = 10; // 덮어쓰기 시도해도 안바뀐다

아래 같이 변하지 않는, 변하면 안되는 값에 써먹으면 좋다

const int minutesPerHour = 60;

상수 인 변수를 정의할 때는, 반드시 정의할 때 값을 같이 할당해줘야한다.

const int minutesPerHour = 60;

아래 같이 일단 정의하고 값을 정해주려 할 경우, 에러가 뜬다

const int minutesPerHour;
minutesPerHour = 60; // 에러


변수 예시

실생활 예제

// Student data
int studentID = 15;
int studentAge = 23;
float studentFee = 75.25;
char studentGrade = 'B';

// Print variables
cout << "Student ID: " << studentID << "\n";
cout << "Student Age: " << studentAge << "\n";
cout << "Student Fee: " << studentFee << "\n";
cout << "Student Grade: " << studentGrade << "\n";

// Create integer variables
int length = 4;
int width = 6;

// Calculate the area of a rectangle
int area = length * width;

// Print the variables
cout << "Length is: " << length << "\n";
cout << "Width is: " << width << "\n";
cout << "Area of the rectangle is: " << area << "\n";


C++ User Input

C++ 유저 입력

cout는 화면 출력에 쓰이는 키워드,
cin 은 "유저의 입력을 받는데" 쓰이는 키워드

cin은 "미리 정의된 변수"로 :
추출 연산자 >> 와 함께 사용해 키보드 데이터를 읽는다.
아래 예시 코드는 키보드 입력을 받아 변수 x 에 할당해 x 를 출력한다

int x;
cout << "Type a number: "; // 숫자를 입력하고 엔터
cin >> x; // 유저 입력을 받는다
cout << "입력한 숫자: " << x; // 화면에 출력

이유는 모르겠지만 입력하지도 않은 숫자가 뜬다

cout 은 "see-out" 이라고 부르고,
출력에 쓰이며, << 삽입 연산자와 같이 쓴다.
cin** 은 "see-in" 이라고 부르며,
입력에 쓰이고, >> 추출 연산자와 같이 쓴다.


간단한 계산기 만들기

아래 예시를 활용하면
유저에게 2가지 숫자를 입력받아 합산한 결과를 화면에 출력할 수 있다

int x, y;
int sum;
cout << "첫 번째 숫자를 입력해주세요: ";
cin >> x;
cout << "두 번째 숫자를 입력해주세요: ";
cin >> y;
sum = x + y;
cout << "두 숫자의 합은: " << sum;


직접 해볼 때와 달리 학습 페이지에서 예제 실행을 눌러서 들어가면 문제없이 화면이 나온다.
같은 코드를 복사해서 구동해도 직접 할때랑 똑같이 안된다.
이유 불명.


cincout 는 모두 <iostream> 라이브러리에 포함된다


C++ Data Types

C++ 데이터 타입

변수는 특정 데이터 타입을 지녀야 한다.

int myNum = 5;               // Integer (whole number)
float myFloatNum = 5.99;     // Floating point number
double myDoubleNum = 9.98;   // double = float
char myLetter = 'D';         // Character, 단일 문자, `''` 로 감싸야함
bool myBoolean = true;       // Boolean
string myText = "Hello";     // String, 문자열, `""`로 감싸야함

기본 데이터 타입

"데이터 타입"은 변수가 담을 정보의 크기와 형태(타입)을 지정한다

  • boolean | 1 바이트 | true/false 값
  • char | 1 바이트 | 단일 문자 혹은 숫자, 또는 ASCII 값
  • int | 2 바이트 or 4 바이트 | 소숫점을 제외한 모든 숫자
  • float | 4 바이트 | 소수점 하나 이상의 숫자, 소수점 6-7자리까지가 적정
  • double | 8 바이트 | 소수점 15자리까지가 적정

C++ Numeric Data Types(숫자 데이터 유형)

소숫점이 없는 숫자면 int
소수점이 필요하면 floatdouble

floatdouble 의 경우
float 는 소수점 6-7자리, double 은 소수점 15자리 정도까지
"정밀도"의 차이가 있기 때문에,
대부분의 계산에선 double을 사용하는 것이 안전하다

또한 이러한 실수 변수를 사용하는 경우 scientific number도 담을 수가 있는데
ex) 10의 거듭제곱 e 가 포함된 숫자 등

float f1 = 35e3;
double d1 = 12E4;
cout << f1;
cout << d1;


Boolean 데이터 유형

bool 키워드를 사용하며
값은 true 일 경우 1 , false 일 경우 0 을 리턴한다(돌려준다)

bool isA = true;
bool isB = false;
cout << isA << "\n"; // 1 출력
cout << isB; // 0 출력


Character 유형

char 는 단일 캐릭터, '' 작은 따옴표로 둘러쌓인 단일 문자를 저장한다

ASCII 값도 가능


String, 문자열 유형

string 타입은 "문자 시퀀스", 문자열=텍스트 를 저장한다
"" 큰 따옴표로 둘러쌀 필요가 있다

string 을 사용하기 위해서는,
코드에 헤더(헤더 파일 라이브러리) 를 추가해줄 필요가 있다

#include <string>

위처럼 설명은 나와있지만 확인 결과
헤더가 없어도 일단 간단한 경우는 작동한다


실생활 예제

// Create variables of different data types
int items = 50;
double cost_per_item = 9.99;
double total_cost = items * cost_per_item;
char currency = '$';

// Print variables
cout << "Number of items: " << items << "\n";
cout << "Cost per item: " << cost_per_item << currency << "\n";
cout << "Total cost = " << total_cost << currency << "\n";


C++ Operators(연산자)

연산자

+ : 두 값을 더한다
값과 값, 변수와 값, 변수와 변수 모두 가능

C++ 에서는 변수를 다음과 같이 나누는데 :

  • Arithmetic operators (산수, 산술, 계산)
  • Assignment operators (할당, 대입)
  • Comparison operators (비교)
  • Logical operators (논리)
  • Bitwise operators (비트) : 비트 단위로 논리 연산을 할 때 쓰인다

산술 연산자

+
-
*
/
% : 나머지 계산 (나눈 다음의 "나머지")
++ : increment, 1씩 증가
-- : decrement, 1씩 감소


대입 연산자

Assignment operators 는 변수에 값을 대입,할당 하는데에 쓰인다
=
+= : 현재 변수의 값에 추가로 값을 더해준다
-= : 추가로 값을 빼준다
*= : 현재 변수의 값에 추가로 값을 곱해준다
/= : 현재 변수의 값을 나눠준다
%= : 특정 값으로 나눈 나머지를 대입해준다
&= : 특정 값으로 나눈 "몫"을 대입해준다
|= ^= >>= <<= 같은 비트 연산자들


비교 연산자

두 변수의 값을 비교할 때 쓰이며, 프로그래밍에서 매우 요긴하게 쓰인다
비교 연산자의 리턴값은 1 혹은 0 , 즉 true/false 이며
boolean 값으로 나온다

== : equal to, 같으면 true
!= : not equal, 다르면 true
> : greater than, 크면 true
< : less than, 작으면 true
>= : greater than or equal to, 크거나 같으면 true
<= : less than or equal to, 작거나 같으면 true


논리 연산자

비교 연산자처럼, true/false의 boolean 값을 리턴해준다
&& : and, 둘다 참이면 true
|| : or, 둘 중 하나 참이면 true
! : not, 불린 값을 반전시켜준다
ex) !(x < 5 && x < 10)

profile
내일배움캠프 Unreal 3기

0개의 댓글