scanf와 std::cin은 입력에 사용된다.
scanf (C)
#include <stdio.h> // C++ 의 경우 <cstdio>
int scanf(const char* format, ...);
- 값을 읽을 때 변수의 주소를 받아야 한다.
- 탭, 스페이스바, Enter 키의 입력을 구분자로 이용한다.
- % 를 통해 다양한 타입을 입력받을 수 있다.
- scanf 함수는 문자열을 입력받을 때 널 문자를 붙여주지 않기 때문에 문자열의 끝을 알 수 없으며 오버플로우가 일어날 수 있다. 이를 위해 fgets 함수를 이용하거나 폭을 지정해준다. (ex. char str[10])
- std::string을 입력받을 수 없다. std::string은 C++ 표준 라이브러리 타입이기 때문에 C 스타일의 문자열 입력 방식인 scanf를 사용할 수 없다.
std::cin (C++)
- 헤더파일 : <iostream>
기본 모양: std::cin >> [입력 받는 변수]; - 데이터 타입에 따라 자동으로 형변환이 일어난다. scanf 처럼 %d 등 타입을 지정해주지 않아도 된다.
- 탭, 스페이스바, Enter 키의 입력을 구분자로 이용한다.
- char형 문자를 입력받을 때 입력한 문자에 해당하는 ASCII 코드 값이 저장된다.
#include <iostream>
int main()
{
char c;
std::cin >> c; // char형 변수에 A를 입력하면
std::cout << int(c) << std::endl; // 65가 출력된다.
return 0;
}
'C, C++ > 공부정리' 카테고리의 다른 글
최대/최소, std::max_element(), std::min_element() (1) | 2023.10.24 |
---|---|
[따배씨++] 스택과 힙 (1) | 2023.10.15 |
[백준 그리디 10807] 개수 세기 - 배열 (배열의 크기는 변수로 지정할 수 없다. 배열의 동적할당) (0) | 2023.10.02 |
[백준 그리디 11382] 꼬마 정민 - 자료형 long long (0) | 2023.08.09 |
[백준 그리디 10926] ??! (0) | 2023.08.07 |