Crear una tabla en C++
En C++, los datos se pueden mostrar en forma de tabla utilizando la biblioteca iomanip
. También aprenderemos sobre varios métodos de la biblioteca iomanip
que ayuda a imprimir datos en la tabla.
En este artículo, discutiremos cómo imprimir datos en forma de tabla en C++.
Funciones para crear una tabla en C++
En C++, para imprimir datos en la tabla, necesitamos imprimir las columnas del mismo ancho y usar la biblioteca iomanip
. Si el valor en cualquier columna es menor que el ancho de la columna, debemos agregar relleno para que el ancho sea igual al de otras columnas.
La biblioteca iomanip
proporciona muchos métodos para manipular la salida del programa. Solo aprenderemos sobre la función setfill()
y la función setw()
, ya que solo se requieren para imprimir datos en una tabla.
La función setw()
se utiliza para establecer el ancho del campo de salida. La sintaxis de la función setw()
se escribe como setw(número)
, donde número
denota el número de caracteres que se establecerán en el ancho del campo de salida.
Código de ejemplo:
#include <iomanip>
#include <iostream>
using namespace std;
int main() {
cout << setw(10) << "Monday" << endl;
cout << setw(10) << "Tuesday" << endl;
cout << setw(10) << "Wednesday" << endl;
return 0;
}
Producción :
Monday
Tuesday
Wednesday
Hemos asignado el ancho como 10
a los valores de salida al imprimir las palabras lunes
, martes
y miércoles
.
En el caso de lunes
, la salida agregará 4 espacios en blanco para que el ancho sea igual a 10, se agregan 3 espacios en blanco para martes
, y en el caso de miércoles
, se agrega un espacio en blanco.
La función setfill()
se utiliza como carácter de relleno. La sintaxis de la función setfill()
se escribe como setfill(char ch)
, donde ch
es el carácter que debe rellenar los espacios negros.
Código de ejemplo:
#include <iomanip>
#include <iostream>
using namespace std;
int main() {
cout << setfill('#') << setw(10) << "Monday" << endl;
cout << setfill('#') << setw(10) << "Tuesday" << endl;
cout << setfill('#') << setw(10) << "Wednesday" << endl;
return 0;
}
Producción :
####Monday
###Tuesday
#Wednesday
Hemos asignado el ancho como 10
e impreso las palabras lunes
, martes
y miércoles
. Sin la función setfill()
, la salida habría contenido caracteres de espacio para hacer que la longitud de salida de las palabras sea 10, como se muestra en el ejemplo anterior.
Sin embargo, cuando usamos el método setfill()
con el carácter # como argumento de entrada, los espacios en la salida se reemplazan por el carácter #.
Para lunes
se utilizan 4 caracteres de relleno # para que el ancho sea igual a 10. En el caso de martes
se utilizan 3 caracteres de relleno y para miércoles
se utiliza 1 carácter de relleno.
El carácter de relleno se coloca en el lado izquierdo de forma predeterminada, pero también podemos usar std::left
para imprimir el carácter de relleno en el lado derecho. Puede observar esto en el siguiente ejemplo, donde el carácter de relleno se imprime en el lado derecho del valor de salida.
Código de ejemplo:
#include <iomanip>
#include <iostream>
using namespace std;
int main() {
cout << setfill('#') << left << setw(10) << "Monday" << endl;
cout << setfill('#') << left << setw(10) << "Tuesday" << endl;
cout << setfill('#') << left << setw(10) << "Wednesday" << endl;
return 0;
}
Producción :
Monday####
Tuesday###
Wednesday#
Crear una tabla con la alineación adecuada en C++
Veamos un ejemplo para hacer una tabla en C++ con la alineación adecuada. En el siguiente ejemplo, hemos impreso la Edad
y el Cumpleaños
en la tabla en C++.
Hemos utilizado la función setw()
de la biblioteca iomanip
en C++ para establecer el ancho de las entradas.
Código de ejemplo:
#include <iomanip>
#include <iostream>
using namespace std;
class Birthday {
public:
string studentName;
int studentAge;
int birthDay;
string birthMonth;
string birthYear;
Birthday(string name, int age, int day, string month, string year) {
studentName = name;
studentAge = age;
birthDay = day;
birthMonth = month;
birthYear = year;
}
};
int main() {
Birthday recordArray[5] = {Birthday("Naman", 20, 13, "January", "1999"),
Birthday("Divesh", 23, 04, "May", "1996"),
Birthday("Nitish", 19, 29, "December", "2000"),
Birthday("Mandeep", 25, 19, "March", "1998"),
Birthday("Aman", 20, 29, "April", "1989")};
cout << left << setw(10) << "Name" << left << setw(5) << "Age" << left
<< setw(8) << "Day" << left << setw(10) << "Month" << left << setw(4)
<< "Year" << endl;
for (int i = 0; i <= 4; i++) {
cout << left << setw(10) << recordArray[i].studentName << left << setw(5)
<< recordArray[i].studentAge << left << setw(8)
<< recordArray[i].birthDay << left << setw(10)
<< recordArray[i].birthMonth << left << setw(4)
<< recordArray[i].birthYear << endl;
}
return 0;
}
Producción :
Name Age Day Month Year
Naman 20 13 January 1999
Divesh 23 4 May 1996
Nitish 19 29 December 2000
Mandeep 25 19 March 1998
Aman 20 29 April 1989
Hemos establecido diferentes anchos en cada columna. El ancho de cada columna es mayor que el ancho del contenido.
Si el ancho de la salida es menor que el ancho de la columna, el contenido se desbordará. Considere el siguiente ejemplo.
Código de ejemplo:
#include <iomanip>
#include <iostream>
using namespace std;
int main() {
cout << left << setw(1) << "January" << endl;
return 0;
}
Producción :
January
La salida se imprime en la tabla incluso si el tamaño del ancho se establece en un número menor que la longitud de la salida. En esta situación, la longitud de salida será igual a la longitud del valor de salida.
Conclusión
Hemos discutido cómo hacer una tabla usando la biblioteca iomanip
en C++. Aprendimos sobre la sintaxis de la función setw()
y la función setfill()
de la biblioteca iomanip
.
También discutimos el uso de estas funciones para hacer una tabla en C++. En el ejemplo, solo hemos utilizado el método setw()
para decidir el ancho de la columna y la función setfill()
para formatear la tabla con diferentes caracteres.
Aditya Raj is a highly skilled technical professional with a background in IT and business, holding an Integrated B.Tech (IT) and MBA (IT) from the Indian Institute of Information Technology Allahabad. With a solid foundation in data analytics, programming languages (C, Java, Python), and software environments, Aditya has excelled in various roles. He has significant experience as a Technical Content Writer for Python on multiple platforms and has interned in data analytics at Apollo Clinics. His projects demonstrate a keen interest in cutting-edge technology and problem-solving, showcasing his proficiency in areas like data mining and software development. Aditya's achievements include securing a top position in a project demonstration competition and gaining certifications in Python, SQL, and digital marketing fundamentals.
GitHub