Saltar al contenido

En C ++, ¿cómo imprimir arte ASCII en la consola?

Mantén la atención porque en este tutorial vas a hallar la solución que buscas.Esta reseña ha sido analizado por nuestros expertos para garantizar la calidad y veracidad de nuestro contenido.

Solución:

Adyacente string los literales están concatenados, por lo que puede hacer esto:

cout << " _______________________ _______ _          _______         _______ _______  _______ _       _______         n"
        "(  ____ __   __/  ___  )  ____      /  (  ___  )     /|  ____   ____ )(  ____       (  ___  )     /|n"
        "| (    /  ) (  | (   ) | (    /    / /  | (   ) | )   ( | (    / (    )|| (    / (     | (   ) | )   ( |n"
        "| (_____   | |  | (___) | |     |  (_/ /   | |   | | |   | | (__   | (____)|| (__   | |     | |   | | | _ | |n"
        "(_____  )  | |  |  ___  | |     |   _ (    | |   | | (   ) )  __)  |     __)|  __)  | |     | |   | | |( )| |n"
        "      ) |  | |  | (   ) | |     |  (     | |   | | _/ /| (     | ( (   | (     | |     | |   | | || || |n"
        "/____) |  | |  | )   ( | (____/  /     | (___) |    / | (____/ )  __| )     | (____/ (___) | () () |n"
        "_______)  )_(  |/     |_______/_/    /  (_______)  _/  (_______//   __/|/      (_______/_______)_______)n";

O, más exactamente, quizás:

cout << "                              .::/-                                                                                                                                                             n"
        "                              .+++/                                                                                                                                                             n"
        "                   `.::`       /+++.                                                                                                                                                            n"
        "                  -////.      :+++-                                                                                                                                                             n"
        "                    .////-`    .+++/`                                                                                                                                                           n"
        "                    `:///:`   `/++/.                                                                                                                                                            n"
        "            ..`        -////.   -+++:                                                                                                                                                           n"
        "           :+++:-`      .////:` ./++/`                                                                                                                                                          n"
        "          `-/+++++/-.    `:////.`:++/.                                                                                                                                                          n"
        "             `.:/++++/:.`  -////..:--`                                                                                                                                                          n"
        "                 .-/+++++/-..::.`                                                                                                                                                               n"
        "       `:::-..``    `.:/++++-                                                                                                                                                                   n"
        "       -++++++///:--.```.-/-                                                                                                                                                                    n"
        "        `.--:///++++++//::.                                                                                                                                                                     n"
        "`--.          ``..-::///+/``---                                                 -+-                                                             ./oso- /++:                                     n"
        "-oo+  -::::----....````... `ooo                  :s-                            /mo                                                            -dmmhy:`hmmo                                     n"
        "-oo+  /+++++++++++++++++/. `ooo                  om:                            /mo             ````     ```      ```    ``.``      ```  `.``  ommd`` `hmmo       ``.``    ```     ```     ```  n"
        "-oo+  ...----::::////+++/` `ooo      `/ssyss+:`.ohmyoo` .+ssyss+-     -+syys+-  /mo    -o+.  .ohdmmdho- -hdd/   `sdds` :shmmmdy/`  .hddshdmmhoydmmmhy:`hmmo    .+hdmmmds- .ddd/   .ddh-   +ddh. n"
        "-oo+  ```````````````````  `ooo     .yh-.``-/-  .sm/.` `/o-```-sd+  .sd+-..-++` /mo  .odo.  :dmmy+/smmm: +mmh-  /mmd- +mmh+:/smmy- .dmmdo/+s:`/ymmm++.`hmmo   .dmmh++smmd+`ommd` `ymmmy  .hmm+  n"
        "-oo+  +oooooooooooooooooo- `ooo     -dy.         om:           -dy` +m/         /mo`+dy-   `smmy`  `smmy``smms`.hmm/ -dmd+---:hmmo`.dmm+       ommd   `hmmo   ommh.   ommh..ymm+ +mmdmm/ ommy.  n"
        "-oo+  /++++++++++++++++++. `ooo      -oyhyyys/`  om:   `:osyyyyymy``sm-         /myhyhd:   `smms    +mmh` `dmm/smms  :dmmddddddddo`.dmm/       ommd   `hmmo   smmy`   /mmd. :dmd+dmy-ymd+hmd:   n"
        "-oo+                       `ooo          ``.+do  om:   /do.    -dy``om:         /md/``od+` `ommh.  `ymmy`  :dmmmmy.  .hmd/`````.`  .dmm/       ommd    hmmo   +mmh-   smmy` `smmmmm- :dmmmmo    n"
        "-oo+:::::::::::::::::::::::/ooo     -+:.```.od+  +mo.` /do.```.omy` .sd/.``.//` /mo    +dy. -ymmdysdmmh-    +mmmh-    :dmmyoosdd+` .dmm/       ommd    ommmso.`ymmdyshmmh:   .hmmm+   +mmmd`    n"
        "-oooooooooooooooooooooooooooooo     ./syyyyyo:`  `:sys.`:syyyys+yo`  `:syyyyo:` :h/     :ys` `:shddhs/`     `ohy/      ./shddhy+-  .shh:       /hhy    `:syhs. `:oyhdhs/.     /hho`   `shh/     n"

Con más sensatez, use endl. Esto es sutilmente diferente de solo " n" después de cada línea, porque también eliminará el flujo de salida.

prueba algo como:

cout << R"(place multiple lines
           of text here
           and it will display exactly
           as you have it between the two brackets,
           line feeds and all.)";

... el código anterior también te permitirá usar caracteres como la barra invertida sin necesitar dos de ellos, muestra todo y no reconoce códigos de control, como n, etc. Muy útil.

Esto se llama "string literal "y se agregó en C ++ 11. Puede encontrar más información sobre los comandos aquí, consulte específicamente el prefix "R" que es para raw_characters: https://en.cppreference.com/w/cpp/language/string_literal

Otros ya han sugerido usar endl. Si bien esto no es (necesariamente) algo malo, usar endl vacía el búfer de la secuencia junto con la escritura de una nueva línea. Al contrario de lo que implica una de las respuestas que ha obtenido, utilizando endl lo hace no ayuda (en absoluto) con la traducción de la nueva línea a cualquier secuencia de caracteres que la plataforma utiliza normalmente para señalar el final de una línea. Utilizando newline está garantizado para ser exactamente equivalente a stream << "n" << flush;". La traducción de nuevas líneas a " r", o " n" o " r n", o lo que prefiera la plataforma, se realiza en un nivel diferente y newline no tiene nada que ver con eso.

los flush que lo haga, sin embargo, puede (y con frecuencia lo hará) ralentizar su E / S, a veces por un margen bastante considerable. Siempre que solo escriba unas pocas líneas (por ejemplo, un par de cientos de caracteres) probablemente sea completamente irrelevante. Sin embargo, si está escribiendo un archivo grande, use endl en lugar de "n" puede resultar fácilmente en una desaceleración de 10 veces (de hecho, iría tan lejos como para decir que gran parte de la idea de que los iostreams son lentos se deriva directamente del uso endl).

Eso no quiere decir que nunca haya ninguna razón para usar endl. los flush asegura que todo lo que se ha escrito en la secuencia se elimina inmediatamente del búfer de la biblioteca estándar y se envía al sistema operativo. Si desea asegurar una visualización inmediata, endl puede ser útil. Del mismo modo, si está registrando y es fundamental que su registro siempre refleje el estado conocido más reciente de un programa, endl puede ser (extremadamente) útil para asegurar que lo que ha escrito realmente se registre, no se pierda en un búfer cuando / si la aplicación falla.

Entonces, endl tiene sentido a veces, pero probablemente el 95% del tiempo que se usa, es realmente inapropiado (por ejemplo, es poco probable que logre algo útil en cualquiera de las respuestas a esta pregunta).

Reseñas y puntuaciones

Agradecemos que desees añadir valor a nuestro contenido informacional aportando tu experiencia en las explicaciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *