2011-09-14 17 views
6

Al usar cout, ¿cuál es el formateador predeterminado definido en el encabezado <iomanip>? En otras palabras, una vez que configuro mi formateador en fixed usando cout << fixed << setPrecision(2), ¿cómo lo cambio? O bien, ¿qué estoy cambiando de nuevo a?¿Qué es lo opuesto a `fixed` in cout?

Respuesta

4

Lo contrario de std::fixed es std::scientific.

(a encontrar una buena lista de manipuladores en this great answer.)

1

Puede usar resetiosflags() para desarmar las banderas.

+0

¿Hay un "defecto" que puedo fijar a? – Moshe

+0

Creo que el valor predeterminado es 'std :: ios :: scientific'. – Chad

+0

@Moshe: Desafortunadamente, no hay una forma simple de restablecer completamente una secuencia. Incluso el código más elaborado que he visto para hacer eso (por James Kanze, hace más de una década) echa de menos algunas propiedades esotéricasm, como 'iword' y' prword'. (Por supuesto, James era plenamente consciente de las limitaciones). Sin embargo, puede llegar muy lejos con ['std :: ios :: flags()'] (http://www.cplusplus.com/reference/iostream/ ios_base/flags /). – sbi

1

Lo contrario de std::fixed es std::scientific. Eso podría hacer por ti.

Sin embargo, si desea restaurar más banderas, o si necesita el estado anterior, en lugar de la predeterminada, puede utilizar mejores soluciones:

  1. la std::resetiosflags manipulador le permite restablecer los indicadores específicos para sus valores predeterminados;

  2. las dos funciones ios::flags le permiten guardar y restaurar los valores anteriores de los indicadores de formato.

+1

uhm, en el sentido de "volver al valor predeterminado", lo contrario de 'std :: fixed' no es' std :: scientific'. es más como un modo automático de cambio de formato. –

Cuestiones relacionadas