- 출력
∘ 출력 시 cout 함수 사용
∘ C++에서의 표준 함수들은 함수 앞에 std:: 를 붙여줘야 사용가능, 하지만 코드 상단에 using namespace std; 를 적어주면 매번 std:: 를 함수 앞에 적지 않아도 됨.
∘ cout 함수는 iostream 이라는 헤더를 코드 상단에 포함시켜야 사용가능 #include <iostream> (콘솔에서의 입출 력 기능을 정의한 객체가 있음)
> 특수문자 출력
해당 특수문자 앞에 \ 를 붙임 (\를 붙이면 특정 기능이 아닌 문자로 인식하게 됨)
> 줄바꿈
- cout << endl;
- cout << \n
둘 모두 한 줄을 띄우는 역할을 함.
> string 자료형 이용하려면 string 헤더를 코드 상단에 포함시켜야 함. #include <string>
- 변수
> 2개 이상의 변수를 선언할 때는 한 줄에 동시에 선언할 수 있음
ex) int a = 5, b =9;
> 변수에 담긴 값 서로 교환하기 - temp 라는 추가 임시 변수 사용)
temp = a;
a = b;
b = temp;
> 변수 동시에 복사
a = b = c 코드를 이용하면 변수 c에 담겨있는 값이 변수 a와 b에 동시에 복사됨
오른쪽에서 차례대로 b에 c의 값 넣음 -> a에 b의 값 넣음 이 실행됨
- 입력
> cin 이라는 함수 이용해 공백, 줄바꿈 단위로 입력 받을 수 있음
> 출력과 동일하게 #include<iostream> 이라는 헤더 포함시켜야 사용가능
> 입력시 문자의 구분을 공백, 줄바꿈이 아닌 특정 문자 (:, / 등)로 할 때, cin.get()을 이용해 중간 문자 무시 가능
(정수를 입력받지는 않음, 오직 문자만 받음)
> 여러 개의 수 선언과 초기화 동시에 하려면 콤마를 이용해야함
ex)
int a = 0, b = 0; //두 변수 선언, 초기화 동시에
- 연산자
> / (나눗셈) 연산시 연산이 이루어지는 항들이 모두 int형이라면, 그 결과 또한 int가 됨
-> 실수로 계산된 결과를 얻으려면 하나의 항을 (double)을 이용해 실수형으로 바꿔주어야 함.
int a = 9, b = 4;
cout << (double)a / b << endl;
cout << (double)(a / b);
위의 코드에서 (double) a / b는 결과값이 double로 잘 계산이 되지만, (double) (a / b) 는 a / b가 int로 먼저 계산이 된 후, double로 형변환을 했기 때문에 결과값은 정수형태로 출력이 됨. (실수형의 소수점 뒤 자리가 모두 0이기 때문)
- if 조건문
> if문의 조건을 만족하면, if문의 중괄호 블록 {} 안에 존재하는 코드가 모두 실행
> 만약 {} 블록을 사용하지 않는다면, if 조건 다음에 나오는 한 줄의 코드만 if 조건 만족시 실행
> 삼항 연산자
//기존 코드
if (조건) {
a = 1;
}
else {
a = 2;
}
//삼항연산자 이용
a = 조건 ? 1 : 2;
- a가 조건을 만족하면 ? 뒤의 값을 취하고, 만족하지 않는다면 : 뒤의 값을 취함.
- 삼항연산자의 각 항은 하나로 묶여서 처리됨 (ex. 2 + 3 + 4 < 5 ? 10 : 20 과 같은 항에서 2 + 3 + 4는 한 묶음으로 처리되어 조건 에 거짓이 되므로 20을 반환함)
- 삼항 연산자는 항상 전체를 괄호로 감싸는 게 안전함
> else if를 사용한 if문에서 else if는 가장 가까운 if하고만 쌍을 이룸
(ex. if - if - else if 순이라면 else if는 두 번째 if 와만 쌍을 이룸)
> 0이 아닌 값은 참, 0은 거짓으로 정의됨
> && (and)는 || (or) 보다 연산자 우선순위가 높음
- for 반복문
> for문의 조건을 만족하면, for문의 중괄호 블록 {} 안에 존재하는 코드가 모두 실행
> 만약 {} 블록을 사용하지 않는다면, for 다음에 나오는 한 줄의 코드만 조건 만족시 실행
> 증감식에서의 i++ (후위 증가연산자): 후위 연산자가 속한 코드 실행이 먼저 이루어지고 증가가 이루어짐.
++i (전위 증가연산자): 전위 연산자가 속한 코드를 실행하기 전에 증가가 이루어짐.
- while 반복문
> while문의 조건을 만족하면, while문의 중괄호 블록 {} 안에 존재하는 코드가 모두 실행
> 만약 {} 블록을 사용하지 않는다면, while 다음에 나오는 한 줄의 코드만 조건 만족시 실행
> do-while: 반복문을 조건과 상관 없이 무조건 한 번 실행
do {
조건을 만족할 때만 수행되는 코드,
조건과 관계없이 무조건 한번은 실행됨
} while (조건);
> 무한루프: while(true) 사용해 특정 조건 만족시 탈출 가능하도록 만듦
= whlie(1), for(;;) 도 같은 역할을 함.
- 배열
> 배열의 모든 원소를 0으로 초기화하고 싶을 때는 int arr[5] = {}; 와 같이 중괄호 안에 아무것도 안써주면 됨
> int arr[n]; 과 같은 선언은 n이 고정된 상수가 아닌 변수일 때는 할 수 없음, 따라서 n의 최댓값을 확인한 다음 모두 담을 수 있는 충분한 크기의 배열을 정확한 수로 선언해주어야 함.
- 문자열
> 문자열의 길이 string 헤더의 length() 함수 이용해 구함 ( ex. 문자열.length() )
> 공백이 포함된 문자열 입력(문자열 구문을 공백이 아닌 줄바꿈만으로만 함): getline(cin, 문자열 변수명) 함수 사용
> length()로 공백이 포함된 문자열 길이 구하면 공백을 포함한 길이가 나옴
> 문자열로 이루어진 배열 => 2차원배열로 각 문자열들을 구성하는 문자에도 접근 가능
> 공백 표기: '\0', 줄바꿈 표기: '\n'
> 문자열 붙이는 방법: ex. 문자열 변수 a와 b를 붙일 때) a + b or a.append(b)
> 원래 문자열의 부분 문자열을 반환하는 함수(string 헤더에 포함): 문자열.substr(시작 인덱스, 부분문자열 길이)
> 원래 문자열에 부분 문자열의 포함 여부를 알려주는 함수(string 헤더에 포함): 문자열.find("부분문자열")
> find 함수가 부분문자열 찾는데 성공 -> 부분문자열 첫 문자의 인덱스 반환(여러 개이면 가장 앞의 인덱스)
> find 함수가 부분문자열 찾는데 실패 -> string::npos 라는 상수 반환
> 특정 문자열의 모든 문자들을 소문자로 변경하는 함수(cctype 헤더에 포함): tolower(문자열) / 대문자로 변경하는 함수(cctype 헤더에 포함) : toupper(문자열)
> 문자열 정수로 변환하는 함수(string 헤더에 포함): stoi(문자열)
> 정수를 문자열로 변환하는 함수(string 헤더에 포함): to_string(문자열)
> 문자열 끼리의 >, < 연산은 사전순으로 앞선 문자열에 대한 비교 (cf. 문자에서의 >, < 연산은 문자의 아스키 코드 값 비교)
'언어' 카테고리의 다른 글
| C++ (함수, 배열, 정렬, 객체) (0) | 2026.03.25 |
|---|---|
| c++ 기본 (출력 ~ 2차원 배열 개념) (0) | 2026.01.15 |