Pues si, en este post vamos a hacer un programa en c++ que lee una frase y luego la muestra centrada en la pantalla, todo eso ¡sin usar gotoxy! wow.
Bueno, usando gotoxy serÃa mas fácil, pero este blog promueve el no uso de la librerÃa conio.h (Cómo dejar de usar conio.h) asà que lo vamos a hacer como les dije.
#include<iostream> #include<string.h> using namespace std; int main() { char str[100]; cout << "Una frase: "; cin.getline(str, 100, '\n'); int numofch = strlen(str); for(int i=1; i<(40-(numofch/2)); i++) cout << " "; cout << str; cin.get(); return 0; }
A la consola le caben 80 caracteres a lo largo, su mitad son 40; enseguida tenemos que averiguar el numero de caracteres que tiene la frase que se acaba de introducir y dividirlo entre dos. Supongamos que la frase es “hola”:
- ‘Hola’ tiene 4 caracteres.
- La mitad de la consola es 40.
- Si a los 40 le restamos la mitad de los caracteres de la frase, obtenemos el punto en donde debe comenzar la frase para quedar centrada. 40 – (4/2) = 38
- Ahora con un ciclo damos 38 espacios y luego imprimimos la frase.
Si quieren utilizar gotoxy, el proceso es el mismo hasta el último paso, donde guardarÃan el valor obtenido en una variable y luego lo pondrÃan en el lugar adecuado de la función.
La función strlen está en la librerÃa string.h y nos devuelve el número de caracteres que tiene una cadena, viene de string length.
A propósito me he dado cuenta que no he hablado casi nada de la librerÃa string.h, voy a ver si hago unos cuantos posts sobre ella.
Qué tal con setw();