[ Foro de C++ ]
Buenas, esta tarde he estado probando con ejercicios de mapas y multimapas y me he encontrado con esto, el programa me funciona perfectamente pero a la hora de imprimir no consigo que el campo de nombre no acabe empujando al resto,¿ hay alguna forma de solucionarlo? =S
Este es el metodo que uso para consultar los datos de todos los alumnos:
void consulta1 (alumnos &mapaalumnos){
for (alumitr = mapaalumnos.begin (); alumitr != mapaalumnos.end (); alumitr ++){
cout << " numero: "<<(*alumitr).first;
cout.width(15);
cout << "nombre: " << (*alumitr).second.nombre;
cout.width(20);
cout << "Telefono: " << (*alumitr).second.telefono;
cout.width(20);
cout << "media: " << (*alumitr).second.media << endl;
}
}
Y así es como me sale al ejecutar el programa:
numero: 5 nombre: Luis Telefono: 97695431 media: 4
numero: 6 nombre: Aitor Telefono: 97611387 media: 5
numero: 7 nombre: Jorge Telefono: 97693198 media: 4
numero: 8 nombre: Jorge Telefono: 97686024 media: 4
numero: 9 nombre: Hector Telefono: 97690061 media: 2
numero: 10 nombre: Nestor Telefono: 97644606 media: 5
numero: 11 nombre: Carlos Telefono: 97696378 media: 6
numero: 12 nombre: Jaime Telefono: 97635984 media: 2
numero: 13 nombre: Nestor Telefono: 97661542 media: 5
numero: 14 nombre: Miguel Telefono: 97672601 media: 8
numero: 15 nombre: Joaquin Telefono: 97641200 media: 6
numero: 16 nombre: Eduardo Telefono: 97671777 media: 5
numero: 17 nombre: Hector Telefono: 97699818 media: 5
numero: 18 nombre: Eduardo Telefono: 97638012 media: 6
numero: 19 nombre: Carlos Telefono: 97678351 media: 4
numero: 20 nombre: Jaime Telefono: 97640618 media: 5
Muchas gracias de antemano =S
Puedes utilizar el manipulador "setw(int n)". Con él se le puede dar formato al texto. De la siguiente forma, pruébalo y me comentas:
void consulta1 (alumnos &mapaalumnos){
for (alumitr = mapaalumnos.begin (); alumitr != mapaalumnos.end (); alumitr ++){
cout << setw(12)<<" numero: "<<(*alumitr).first;
cout << setw(22)<<"nombre: " << (*alumitr).second.nombre;
cout <<setw(22)<< "Telefono: " << (*alumitr).second.telefono;
cout << set(12)<<"media: " << (*alumitr).second.media << endl;
}
}
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)