강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

kamin_s2님의 프로필 이미지
kamin_s2

작성한 질문수

홍정모의 따라하며 배우는 C++

2.5 부동소수점수 floating point numbers

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 을 통해 볼 수 있습니다.

kamin_s2님의 프로필 이미지
kamin_s2

작성한 질문수

질문하기