Recientemente fui mordido por el hecho de que ios_base::width
y/o el manipulador setw
tienen que ser reset with every item written to the stream.¿Cuál es el problema con setw()?
Es decir, usted debe hacer esto:
while(whatever)
{
mystream << std::setw(2) << myval;
}
En lugar de esto:
mystream.width(2);
while(whatever)
{
mystream << myval;
}
Ok, está bien.
Pero, ¿alguien sabe por qué se tomó esta decisión de diseño? ¿Hay algún razonamiento que me falta o es solo una esquina oscura del estándar?
Otros modificadores de formato de flujo (como se menciona en la pregunta SO vinculada) son 'pegajosos', mientras que setw
no lo son.
Véase también [¿Qué iomanip manipuladores son 'pegajoso'?] (Http: // stackoverflow.com/q/1532640/2778484). – chappjc