C, C++/공부정리 11

scanf와 std::cin

scanf와 std::cin은 입력에 사용된다. scanf (C) #include // C++ 의 경우 int scanf(const char* format, ...); 값을 읽을 때 변수의 주소를 받아야 한다. 탭, 스페이스바, Enter 키의 입력을 구분자로 이용한다. % 를 통해 다양한 타입을 입력받을 수 있다. scanf 함수는 문자열을 입력받을 때 널 문자를 붙여주지 않기 때문에 문자열의 끝을 알 수 없으며 오버플로우가 일어날 수 있다. 이를 위해 fgets 함수를 이용하거나 폭을 지정해준다. (ex. char str[10]) std::string을 입력받을 수 없다. std::string은 C++ 표준 라이브러리 타입이기 때문에 C 스타일의 문자열 입력 방식인 scanf를 사용할 수 없다. st..

C, C++/공부정리 2023.10.24

[따배씨++] 스택과 힙

우리가 작성한 프로그램을 컴퓨터에 실행시키면 운영체제는 메모리를 넘겨 프로그램을 실행시킬 준비를 한다. 이때 메모리는 여러 구역으로 나뉘며 '세그먼트'라고 부르고 세그먼트마다 역할이 다르다. 코드 세그먼트: 작성한 프로그램이 저장된다.데이터 세그먼트와 BSS 세그먼트: 데이터 영역에는 Initialized data segment, Uninitialized data segment 두 가지가 있다. 전역 변수와 정적 변수가 들어있다. - 데이터 세그먼트엔 초기화가 된 전역 변수와 정적 변수가 있다. - BSS 데이터 세그먼트엔 0으로 초기화 된 전역, 정적 변수가 있다. 코드를 실행시키면 operating system은 main함수를 먼저 실행시킨다. 그리고 코드에서 쓰이는 전역 변수는 가장 먼저 메모리를 ..

C, C++/공부정리 2023.10.15

[백준 그리디 1008] A/B - 자료형 주의!

#include int main () { int a, b; scanf("%d %d", &a, &b); printf("%.9f", (double)a / b); return 0; } 첫째 줄에 A/B를 출력한다. "실제 정답과 출력값의 절대오차 또는 상대오차가 10-9 이하이면 정답이다." 조건 때문에 자료형에 유의해야 한다. float은 소수점 유효 자리수가 6자리(7자리는 반올림), double은 15자리(16자리는 반올림)이므로 double형을 써야 한다.

C, C++/공부정리 2023.08.07

goto문

goto문을 이용하면 간단한 반복 실행을 만들 수 있다. goto 이름: 이름: 이 작성된 곳으로 프로그램 실행이 진행된다. 이렇게 콜론(:)이 있는 부분을 이름표(label, 레이블)라고 한다. 레이블은 언더바(_)나 영문자로 시작하면 되고 공백없이 붙여 써야 한다. [코드업 1071] 0이 입력될 때까지 반복하기 #include int main (void) { int a; reload: scanf("%d", &a); if(a!=0) { printf("%d\n", a); goto reload; } return 0; }

C, C++/공부정리 2023.07.23

switch case문

switch()에 사용 가능한 값은 정수(int)나 문자(char)만 가능하다. break; 를 사용하지 않으면 이후 명령이 계속 실행된다. [코드업 1069] 영문자(A, B, C, D) 중 1개 입력에 따른 출력 #include int main (void) { char a; scanf("%c", &a); switch(a) { case 'A': printf("best!!!\n"); break; case 'B': printf("good!!\n"); break; case 'C': printf("run!\n"); break; case 'D': printf("slowly~\n"); break; default: printf("what?\n"); } return 0; } 만약 A 또는 B 입력 시 best!!! ..

C, C++/공부정리 2023.07.23

[따배씨++] 정수형 (Integers)

정수형 (integer, int): 4바이트 영역 형(type) 최소 크기 정수 short 2바이트 int 2바이트 대부분 4바이트 long 4바이트 long long 8바이트 - c++ 표준에서는 최소 크기를 지정하고 있다. 2바이트로는 사용하기에 부족함을 느껴 대부분 4바이트를 이용한다. 실제 몇 바이트로 구분되어 있는지는 사용하는 os와 컴파일러가 결정한다. - int형은 4바이트(32비트)로 2^32가지의 수를 표현할 수 있다. 앞에 1비트는 부호 표현에 사용된다. 0이면 양수, 1이면 음수이다. 예를 들어 short형의 경우 2바이트로 2*8 = 16비트이다. 이진수로 표현하기 때문에 2^16개만큼 표현할 수 있다. 최대값을 체크하기 위해서는 limits 라이브러리를 이용해.. (include ..

C, C++/공부정리 2023.03.19