[ Foro de C++ ]

Problema al imprimir con cout

02-Aug-2014 20:47
Kiraom Ezwer
1 Respuestas

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


03-Aug-2014 22:27
Luis Torres (+18)

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.)