Hola eferion, funcionó lo que me dijiste:
Con respecto al ManPersonas.h finalmente me anduvo la validación, tuve que limpiar y generar de nuevo el código, estoy teniendo problemas con el update porque no sé cómo cambiar el elemento cambiado a la lista, así me quedó, pongo la parte en lo que respecta al create y update:
Código C++:
Ver originalbool check(Persona* p){
if(p != nullptr){
for(Persona* per : lista){
if(per->nom == p->nom){
return true;
}
}
}
return false;
}
Persona* getRow(int xid){
for(Persona* p : lista){
if(p->id == xid){
return p;
}
}
return NULL;
}
bool create(Persona* p){
if(check(p)){
return false;
}
else{
lista.push_back(p);
return true;
}
}
bool update(Persona* p){
Persona* per = getRow(p->id);
if(per->nom != p->nom){
if(check(p)){
return false;
}
}
//pero acá no sé cómo editar el elemento en la lista
return true;
}
Por otro lado te hice caso y pude hacer validación con respecto al numero, pero tanto para validar strings como enteros sucede que si ingreso en ambos una letra y un numero no me funciona la validación, no sé q hacer, te pongo el código de los check y add:
Código C++:
Ver originalbool checkInt(string s){
for(int i=0; i < s.size(); i++){
if(s[i] >= 48 and s[i]<= 57) {
return true;
}
}
return false;
}
bool checkStr(string s){
for(int i=0; i < s.size(); i++){
if((s[i] >= 65 and s[i]<= 90) or (s[i] >= 90 and s[i]<= 122)){
return true;
}
}
return false;
}
string addString(string type){
int intento = 1;
string nom = "";
while(!checkStr(nom)){
cout << "\n intento nro "<< intento << " Ingrese " << type <<": ";
cin >> nom;
intento++;
}
return nom;
}
int addInt(string type){
int intento = 1;
string numero;
while(!checkInt(numero)){
cout << "\n intento nro "<< intento << " Ingrese " << type <<": ";
cin >> numero;
intento++;
}
return std::stoi(numero);
}
Agradezco tu ayuda y sugerencias, gracias a tí estoy entiendo un poco más c++.
Espero sus respuestas y saludos