void Competencia::cargar (std::istream& is){ char dummy; string temp; //descarto hasta el primer "|" getline(is , temp , '|'); //leo el nombre hasta el ultimo "|" descartandolo getline(is , _categoria.first , '|'); //leo hata el primer "|" que rodea el sexo descartando getline(is , temp , '|'); //leo el sexo hasta el ultimo "|" getline(is , temp , '|'); _categoria.second = (temp == "Masculino"? Masculino : Femenino); //descarto hasta el primer "|" del estado getline(is , temp , '|'); //descarto hasta el primer "|" del estado getline(is , temp , '|'); _finalizada = (temp == "True"? true : false); //leo el "[" que indica el comienzo de la lista getline(is , temp , '['); Atleta atleta; // si tiene atletas los cargamos if( is.peek() != ']' ){ //busco el "(" is >> dummy; while( dummy != ']'){ atleta = Atleta(); atleta.cargar(is); _participantes.agregarAtras(atleta); //busco el ")" is >> dummy; //busco el "," o el "]" is >> dummy; if(dummy == ','){ //busco el "(" que viene is >> dummy; } }
void JJOO::cargar (std::istream& is) { char c; //Saco J anio jornada [ is >> c >> _anio >> _jornadaActual >> c; bool loop = true; Lista<Atleta> nuevosAtletas; if(is.peek() != ']') { while(loop) { //Saco ( is >> c; Atleta atle; atle.cargar(is); nuevosAtletas.agregarAtras(atle); //Saco ) is >> c; if(is.peek() != ',') { loop = false; } else { //Saco la coma is >> c; } } } _atletas = nuevosAtletas; //Saco ] y [ is >> c >> c; Lista<Lista<Competencia> > nuevasCompetenciasPorDia; if(is.peek() != ']') { loop = true; while(loop) { //Saco [ is >> c; Lista<Competencia> nuevaCompetenciasEnElDia; if(is.peek() != ']') { Competencia compe; bool secLoop = true; while(secLoop) { //Saco ( is >> c; compe.cargar(is); nuevaCompetenciasEnElDia.agregarAtras(compe); //Saco ) is >> c; if(is.peek() != ',') { secLoop = false; } else { //Saco la coma is >> c; } } } //Saco ] is >> c; nuevasCompetenciasPorDia.agregarAtras(nuevaCompetenciasEnElDia); if(is.peek() != ',') { loop = false; } else { //Saco la coma is >> c; } }
void MenuAtleta() { int maximaOpcion = 2; cout << "Creando atleta" << endl << "0. Volver al Menu Principal" << endl << "1. Crear atleta" << endl << "2. Cargar atleta" << endl; if (atletaCreado) { maximaOpcion = 10; cout << "3. Entrenar nuevo deporte" << endl << "4. Guardar atleta" << endl << "5. Mostrar" << endl << "6. Nombre" << endl << "7. Sexo" << endl << "8. Anio de nacimiento" << endl << "9. Nacionalidad" << endl << "10. CIA Number" << endl; } int opt = LeerOpcion(maximaOpcion); LimpiarPantalla(); switch(opt) { case 0: { LimpiarPantalla(); break; } case 1: { LimpiarPantalla(); atleta = MenuCrearAtleta(); atletaCreado = true; LimpiarPantalla(); MenuAtleta(); break; } case 2: { LimpiarPantalla(); ifstream archivoEntrada; AbrirArchivoParaLeer(archivoEntrada); atleta.cargar(archivoEntrada); archivoEntrada.close(); atletaCreado = true; LimpiarPantalla(); MenuAtleta(); break; } case 3: { int cantidad; //TODO: Chequear si la capacidad era un parametro más string nuevoDeporte; cout << "Indicar el deporte que desea entrenar y cuanto :"; cin >> nuevoDeporte; cin >> cantidad; atleta.entrenarNuevoDeporte(nuevoDeporte, cantidad); LimpiarPantalla(); MenuAtleta(); break; } case 4: { LimpiarPantalla(); ofstream archivoSalida; AbrirArchivoParaEscribir(archivoSalida); atleta.guardar(archivoSalida); archivoSalida.close(); LimpiarPantalla(); MenuAtleta(); break; } case 5: { LimpiarPantalla(); atleta.mostrar(cout); Pausar(); LimpiarPantalla(); MenuAtleta(); break; } case 6: { cout << "Nombre: " << atleta.nombre() << endl; Pausar(); LimpiarPantalla(); MenuAtleta(); break; } case 7: { cout << "Sexo: " << ((atleta.sexo()==Femenino)? "Femenino" : "Masculino") << endl; Pausar(); LimpiarPantalla(); MenuAtleta(); break; } case 8: { cout << "Anio de nacimiento: " << atleta.anioNacimiento() << endl; Pausar(); LimpiarPantalla(); MenuAtleta(); break; } case 9: { cout << "Nacionalidad: " << atleta.nacionalidad() << endl; Pausar(); LimpiarPantalla(); MenuAtleta(); break; } case 10: { cout << "CIA Number: " << atleta.ciaNumber() << endl; Pausar(); LimpiarPantalla(); MenuAtleta(); break; } } }