2026-02-24(화)

조범근·2026년 2월 24일

TIL

목록 보기
2/25

C++ (1)

기본 구조

#include <iostream>

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

iostream 헤더파일을 가져와야 화면 값 출력/입력(std::cout, std::cin) 가능
'<<'도 함수, 방향으로 물이 흘러 들간다고 생각하면 됨

자료형

#include <iostream>

int main()
{
	int i; // int라는 자료형에 i라는 변수 정의
	std::cout << i << "" << sizeof(i) << std::endl;
    // 123 4  i값, 공백, i 자료형 int 사이즈 4바이트 출력됨
	
    float f = 123.456f; // 마지막에 f붙여줘야함 이것도 4byte
    double d = 123.456; // f 불필요 8byte 뒤에 소수점이 중요한거 아니면 보통 float 사용
    
    char c = 'a'
    char str[] = "Hello, World!"; // str[] 대괄호 안 숫자없으면 알아서 할당함
}

형변환

#include <iostream>

int main()
{
	int i;
    i = 987.123; // double형 값을 int에 강제로 저장하면?
    
    std::cout << i << std::endl;

출력결과: 987
변수의 자료형으로 바꿔서 정수만 출력

기본 연산자

i += 100; // i = i + 100;
i++; // i = i + 1;

불리언

#include <iostream>

int main()
{
	bool is_good = true; // bool(자료형) is_good(변수) 정의
    is_good = false; // 내부적으로 true 는 1 false 는 0
    
    std::cout << is_good << std::endl; // 출력결과: 0
    std::cout << std::boolalpha; // 0, 1로 출력 되는걸 문자로 바꿔줌 true, false
}
    

noboolalpha 는 반대로 바꿔줌

논리연산자

true && true // and 논리연산자 둘다 true면 통과 0, 1 곱셈이라 생각

false || false // or 논리연산자 둘 중 하나라도 false면 통과 덧셈이라 생각

영역(scope)

#include<iostream>

int main()
{
	i = 123;
    
    {
    	int i = 345;
        
        std::cout << i << std:endl;
    }
    
    std::cout << i << std::endl;
    
    return 0;
    
}

출력결과: 345
123
중간에 int i = 345; 대신 그냥 i = 345; 라고 정의해버리면
출력결과: 123
123
(자료형) (변수) = (값) <- 좀더 좁은 영역의 변수 정의

배열

int a = 1;
int b = 2;
int c = 3;

이렇게 하나하나 정의 하는 것보다 같은 자료형의 데이터를 저장하기 위해 메모리를 미리 잡아두는

int my_array[3] = { 1, 2, 3 };

my_array[0], my_array[1], my_array[3]을 순서대로 출력해보면

순서대로 1 2 3 이 나옴
대괄호 안에 들간 숫자는 몇번째인지 순서를 의미

\n

char name[13] = "Hello, World!";

13개 이지만 13으로 디버깅하면 출력이 안됨,
그 이유는 문자열은 뒤에 \0 즉 null을 포함하고 있기때문

name[10] = 'a';
name[11] = 'b';
name[12] = 'c';

이런식으로 특정 배열을 바꿔주게 되면 숫자에 해당하는 자리만 바뀜

cin

#include <iostream>

int main()
{
	char user_input[100];
	
    std::cin >> user_input; // >> 방향이 다름
}

사용자의 입력을 받아오는 자료형에 따라서 자동으로 해석을 해줌

만약 입력을 할때 띄어쓰기를 하면 뒤에껄 안 받아옴 그럴땐

cin.getline(user_input, sizeof(user_input));

이렇게 입력하면 띄어쓰기도 가져옴
띄어쓰기 뒤에껄 가져오기 싫다면

char.ignore(100, '\n'); // 최대 100글자까지 또는 뒤에 \n 띄어쓰기가 있으면 무시하겠다

분기

반복문

#include <iostream>

int main()
{
	for (int i = 0; i < 10; i++)
    {
    	std::cout << i << " ";
    }
}

기본 구조 i=0이고 10보다 작아야하며 한번돌때마다 +1씩
출력결과:1 2 3 4 5 6 7 8 9

반복문으로 소수 구하기

#include <iostream>

int main()
{
	// 100까지 소수만 나열해서 마지막에 총 개수 세기
	int count = 0;
	for (int i = 2; i <= 100; i++)
	{
		bool isPrime = true;
		
		for (int j = 2; j < i; j++)
		{
			if (i % j == 0)
			{
				isPrime = false;
				break;
			}
		}
		if (isPrime)
		{
			std::cout << i << " ";
			count++;
		}
	}
	std::cout << "\nnumber: ";
	std::cout << count << "" << std::endl;
}

이건 좀 더 해봐야할듯

단어정리

iostream = 'input output stream' 입출력 흐름
std = 'standard' 기본형
cout = 'charactor out' 문자출력
cin = 'charactor in' 문자입력

0개의 댓글