cout
을 사용할 때 <iomanip>
헤더에 정의 된 기본 포맷터는 무엇입니까? 즉, cout << fixed << setPrecision(2)
을 사용하여 포맷터를 fixed
으로 설정하면 어떻게 다시 바꿀 수 있습니까? 또는 무엇을 다시 변경합니까 ~?cout에서`fixed`의 반대는 무엇입니까?
6
A
답변
4
std::fixed
의 반대는 std::scientific
입니다.
1
resetiosflags()
을 사용하여 플래그를 설정 해제 할 수 있습니다.
1
std::fixed
의 반대가 std::scientific
입니다. 그것은 당신을 위해 할 수도 있습니다.
그러나, 당신은 당신이 더 나은 솔루션을 사용할 수 있습니다 대신 기본적으로는 이전 상태를 필요로하는 경우 또는, 더 플래그를 복원하려면 :
std::resetiosflags
조작하는 당신이 특정 플래그를 재설정 할 수 있습니다 그들의 디폴트;두 개의
ios::flags
함수를 사용하면 이전 형식 플래그 값을 저장하고 복원 할 수 있습니다.
+1
어, "기본값으로 돌아 가기"라는 의미에서'std :: fixed'의 반대는'std :: scientific'가 아닙니다. 자동 포맷 전환 모드와 비슷합니다. –
3
대답은 C++ 11에서 std::defaultfloat
입니다. 당신이
cout.unsetf(std::ios_base::floatfield);
가 I로 설정 할 수있는 "기본"거기 Really, what's the opposite of "fixed" I/O manipulator?
참조 할 수있는 C++ 03이에 달성하기 위해? – Moshe
기본값은'std :: ios :: scientific'라고 생각합니다. – Chad
@Moshe : 유감스럽게도 스트림을 완전히 재설정하는 간단한 방법은 없습니다. 필자가 보았던 가장 정교한 코드조차도 (James Kanze에 의해, 10 년 전) iword와 pword와 같은 일부 비밀 속성에 빠져있다. (물론 제임스는 한계를 완전히 인식하고있었습니다.) 그러나''std :: ios :: flags()'] (http://www.cplusplus.com/reference/iostream/)로는 꽤 멀어 질 수 있습니다. ios_base/flags /). – sbi