es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo dar formato a un arreglo 2D de cadenas de diferentes tamaños de tipo (por ejemplo, x, xxx, xx, xxx) para que se vea más cuadrado al imprimirlo.

Este es mi código. ¿Alguien sabe cómo puedo formatearlo para que se vea más como un cuadrado en lugar de verse así debido a los diferentes tamaños de caracteres en cada elemento?

int main() {
string a[4][4]= {{"\xC9","\xCD","\xCD","\xBB"},
{"\xBA","p1","p2","\xBA"},
{"\xBA","100","p3","\xBA"},
{"\xC8","\xCD","\xCD","\xBC"}};
printSquare(a);

Este es mi código, pero la salida parece verse extraña.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para cambiar el formato de tu código de manera que parezca más como un cuadrado, puedes ajustar el ancho de cada elemento dentro del arreglo de cadenas de texto. Una forma de hacer esto es utilizando la función setw() proveniente de la librería <iomanip>.

    A continuación, te mostramos un ejemplo de cómo modificar tu código para darle un formato de cuadrado:

    #include <iostream>
    #include <iomanip>
    
    using namespace std;
    
    void printSquare(string a[][4], int size) {
        for(int i = 0; i < size; i++) {
            for(int j = 0; j < size; j++) {
                cout << setw(3) << a[i][j] << " ";
            }
            cout << endl;
        }
    }
    
    int main() {
        string a[4][4] = {
            {"\xC9","\xCD","\xCD","\xBB"},
            {"\xBA","p1","p2","\xBA"},
            {"\xBA","100","p3","\xBA"},
            {"\xC8","\xCD","\xCD","\xBC"}
        };
        printSquare(a, 4);
        return 0;
    }
    

    En este código modificado hemos añadido el parámetro size a la función printSquare para especificar el tamaño del arreglo (en este caso 4×4). También hemos incluido la librería <iomanip> y hemos utilizado la función setw(3) para establecer el ancho de cada elemento en la salida con un ancho de tres caracteres.

    Esto debería producir una salida que esté equidistantemente espaciada y se vea como un cuadrado:

      ┌───┬───┬───┬───┐ 
      │  ╔╦╗ │  ╔╦╗ │
      │  ║p1║ │p2 ║ │
      ├──╠═╬╦╩═╣╠═╬═╣
      │  ║100║ │p3 ║ │
      │  ╚╩═╩╝  ╚═╩═╝
      └───┴───┴───┴───┘
    

    ¡Esperamos que te haya sido de ayuda!

Comments are closed.