파도가 칠 때는 서핑을

Soon as possible

Wait!

공부/C\C++

[C/C++] cin과 scanf의 차이

hyeonhki 2021. 3. 6. 17:58
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이 있다.

📚 참고한 서적 및 사이트

728x90