Título: Alinear texto a la derecha Publicado por: Sothu en 12 Diciembre 2015, 17:01 pm Buenas!
Me encuentro con una sequencia de datos que deben ir siendo alineados a la derecha y creo que estoy usando mal el cout << setw( WIDTH ). El codigo de esta parte es este: Código: while ( ! fin.eof() ) http://imageshack.com/a/img903/7683/C834En.png Gracias! Título: Re: Alinear texto a la derecha Publicado por: Sothu en 12 Diciembre 2015, 17:14 pm Lo que vi que falla es que el setw empieza a contar los espacios despues de la ultima palabra escrita, cuando lo que deseo que haga es contarlas desde el principio de la linea. Alguna idea?
Título: Re: Alinear texto a la derecha Publicado por: fary en 12 Diciembre 2015, 19:12 pm Te diré que, el código del programa esta bién, lo que pasa que no es lo mismo realizar una tabulación desde la posicion 5 que desde la 7, me explico:
Fila 1 Fila 2 perro 589456 Elefante 896454 Perro (4 char ) + 18 Espacios = Inicio Segunda fila en la posicion 22 Elefante (8 char) + 18 Espacios = Inicios segunda fila posicion 26 Para desarrollar una solución con las filas perfectas tendrías que desarrollar una algoritmo que le restase los espacios cuando mas grande fuera el nombre del animal y te saldrían todas las filas cuadradas. Los de los animales a sido un ejemplo, espero que lo hallas logrado entender. saludos! Título: Re: Alinear texto a la derecha Publicado por: Sothu en 12 Diciembre 2015, 19:29 pm Y no hay alguna manera de que cuente a partir del principio? Es decir, que ignore lo que tenga escrito a la izquierda de manera que todas las filas queden alineadas.
Título: Re: Alinear texto a la derecha Publicado por: fary en 12 Diciembre 2015, 19:38 pm Te he respondido arriba como hacerlo :rolleyes:
Partiremos de la base de que los primeros 20 caracteres son para la primera fila y desde el caracter 21 hasta X sera para la segunda fila, entonces: (20 - strlen(perro)) = 15, imprimimos perro, 15 espacios y a continuación la segunda columna. (20 - strlen(elefante)) = 12, imprimimos elefante, 12 espacios y a continuacion la segunda columna, y quedaría así: Fila1 fila2 perro 589456 elefante 896454 Espero lo hallas entendido ahora. |