728x90
[ C++ : cin과 scanf의 차이 ]
알고리즘 문제의 해결을 위해 예제의 값을 입력받는 방법을 찾아보던 중, C와 동일하게 <stdio.h> 라이브러리를 통해 scanf를 C++에서도 사용할 수 있다는 것을 확인했다.
c++에서의 표준 입력은 cin으로 알고 있는데..
cin과 scanf에는 무슨 차이가 있는 걸까?
cin?
- cin은 iostream 헤더 파일에 입력 스트림을 나타내는 객체로 정의
- 문자열, 수, 문자 등 다양한 데이터형을 서식문자 없이 변수형에 맞게 자동으로 입력
- cin은 키보드로 입력한 값을 저장할 변수가 받아들이는 형태로 알아서 바꿔서 저장한다.
둘의 차이점
- cin은 LF(ASCII 10 = 개행)을 무시하지만, scanf는 LF(ASCII 10)을 무시하지 않고 입력으로 받는다.
- 알고리즘 문제 해결에 있어서, scanf와 printf가 입출력 속도가 훨씬 빠르다
- whitespace의 저장에도 차이가 있는데, cin은 문자 받을 때 무시하고 저장 / scanf는 저장
두 사용에 있어서 문제점
- 알고리즘 문제시 입출력 속도 차이로 통과여부가 갈리기도
여담
동일한 내용으로 printf와 cout이 있다.
📚 참고한 서적 및 사이트
- https://velog.io/@somnode/c-cin%EA%B3%BC-scanf-%EC%B0%A8%EC%9D%B4
- https://shaeod.tistory.com/363
- https://takeknowledge.tistory.com/15
- https://blossoming-man.tistory.com/entry/cin%EA%B3%BC-scanf%EB%8A%94-%EA%B3%B5%EB%B0%B1-%EB%AC%B8%EC%9E%90%EB%A5%BC-%EC%96%B4%EB%96%BB%EA%B2%8C-%EC%9D%B8%EC%8B%9D%ED%95%98%EB%8A%94%EA%B0%80
728x90
'공부 > C\C++' 카테고리의 다른 글
[C/C++] char *와 char []의 차이와 bus error (0) | 2021.03.31 |
---|---|
[C] 가변인자, 가변인자 함수 (0) | 2021.03.18 |
[C/C++] int와 long, unsigned int와 unsigned long의 차이와 혼동으로 인한 문제점 (0) | 2021.03.18 |
[C/C++] 구조체와 연결리스트 (0) | 2021.03.16 |
[C++] using namespace std는 무엇인가 (0) | 2021.03.06 |