#include<stdio.h>
int main() {
char frase[100] = "hola! Esto es solo una prueba de como funciona el especificador de formato para strings...";
printf(":%-20.9s: %s", frase, "<--Esto tiene 10 espacios entre : y :, pero solo se muestra 9 letras.\n\n\n");
printf(":%20.9s: ", frase);printf("%s", "<--El symbolo - hace que el texto este pegado a la izquierda. Retira el - y vea el texto pegado a la derecha..\n\n");
float f = 99.70;
//lo mismo para float
printf(":%10.2f:\n", f); //el 10 a diferencia del no quiere decir la distancia entre : y : sino mas bien la cantidad total de caracteres que se va mostrar. Si tengo 99.99 siempre va tener ese espacio minimo de 10 numeros:1234567890:
printf(":%-10.2f:\n", f); //a diferencia del string el 2 es la precision, o sea que en 10.247 es el .247 que solo se muestra el .24 ignorando el 7
//rellena con ceros a la izquierda
printf(":%010.2f:\n", f);
printf(":%-4.2f:\n\n", 9876543210.0123456789); //El problema que si el numero es mayor que 10 caracteres lo de arriba no funcion... se mostrara el numero tal cual ocultando solo la precision ...o sea que solo muestra lo que digas despues del punto. si tienes ...10.01 se muestra solo ...10.01 al limitar la presicion al 2 no imprimiendo el 23456789
//los enteros
printf(":%10d:\n", 10);
printf(":%-10d:\n", 10);
printf(":%020d:\n", 10);
printf(":%20d:\n\n", 10);
//Otro truco es:
int ancho = 10;
printf (":%*d:\n\n", ancho, 100);
ancho = 20;
printf (":%*d%*d:\n\n", ancho, 100 ,ancho, 200);
printf ("%*d\b%s \n\n", ancho, 1, "well hello =)"); // si pones algo mas petas la consola XDDD
//por supuesto esta el tabulador de toda la vida XDD
printf(":\t:hola\n:\t:\t:mundo!");
getchar();
}