인프런 커뮤니티 질문&답변
17:28 질문입니다.
작성
·
168
0
교수님 안녕하세요!
강의 잘 듣고 있습니다:-)
std::cout 에 대해서 궁금한 점이 있어서 여쭈어 봅니다!
cout을 할 때 순서는 상관이 없는걸까요?
setprecision으로 자릿수를 정하신뒤
다음줄에 숫자로 연산을 했는데, 작동이 되는 이유와 원리가 궁금합니다.
printf를 쓴다면 불가능 할텐데, cout은 왜 가능한가요? 변수를 사용하지도 않았는데 오류가 나지 않는 이유가 궁금합니다!
답변 1
0
안녕하세요? 교수님은 아니지만..
c를 배우고 오신 것 같군요. 구조체를 이미 알고 계신다고 생각하겠습니다.
cout << setprecision 이후의 cout에서만 다르게 적용됩니다.
cout 은 class instance인데, class는 아직 안배우셨을테니 이는 구조체 변수와 비슷합니다. (cout을 우클릭하셔서 go to definition 하시면, 구조체 변수를 선언하듯이 cout을 선언해놓은 것을 볼 수 있습니다.)
그런 cout의 정의의 내부에는 precision이라는 변수가 선언되어 있는데(in ios_base) 이것이 floating number를 출력할 때 자릿수를 정해주는 변수입니다.
이제 setprecision의 경우 cout<<setprecision(n)을 해주면
cout.precision=n 을 해주는 것으로 자릿수가 바뀐 결과를 후에 사용되는 cout 을 통해 볼 수 있습니다.





