En C, se puede incluir un espacio en un indicador de formato printf que da como resultado el prefijo de números positivos con un espacio. Esta es una característica útil para alinear valores firmados. No puedo entender cómo hacer lo mismo en C++. En C:ostream: prefija un número positivo con un espacio
double d = 1.2;
printf("%f\n",d);
printf("%+f\n",d);
printf("% f\n",d);
produce:
1.2
+1.2
1.2
Usando ostream, puedo hacer las dos primeras, pero ¿cómo puedo hacer el tercero?
int d = 1.2;
std::cout << d << std::endl;
std::cout << std::showpos << d << std::endl;
// ??????????????
EDIT: Parece que hay cierta confusión acerca de si o no, sólo quiero prefijar todos mis valores con un espacio. Solo quiero prefijar valores positivos con un espacio, similar a a) como lo hace el indicador de espacio printf yb) similar a lo que hace showpos, excepto un espacio en lugar de un '+'. Por ejemplo:
printf("%f\n", 1.2);
printf("%f\n", -1.2);
printf("% f\n", 1.2);
printf("% f\n", -1.2);
1.2
-1.2
1.2
-1.2
Tenga en cuenta que el tercer valor se prefija con un espacio mientras que el cuarto valor (negativo) no lo es.
¿Estás tratando de imprimir un espacio? std :: cout << ""; – Jeff
Si necesita que los números se alineen, generalmente necesita usar una precisión fija y un cierto ancho de campo. Si haces eso, también obtendrás el espacio extra al principio según sea necesario. –