// Escribe un mensaje y leer una variable numerica con decimales (float, double) double VGeneral::LeerNroDecimal(string msj) { double dato; int valido,cont; string s; do { valido = 0; cont = 0; s = LeerString(msj); for(unsigned int i=0; i<s.size(); i++) { if(s[i] == '.') cont += 1; if(!(s[i]>='0' and s[i]<= '9') and (s[i]!='-') && (s[i] != '.')) { ImprimirMensaje("\n Dato no v\xa0lido \n"); valido = -1; break; } if(cont > 1) { ImprimirMensaje("\n Dato no v\xa0lido \n"); valido = -1; break; } } // for } while(valido == -1); dato = atof(s.c_str()); return dato; }
unsigned char PuertoSerie::LeerByte(unsigned TiempoEspera) throw(Excepcion) { unsigned char c; LeerString(&c, 1, TiempoEspera); return c; };
// Escribe un mensaje y lee un valor numerico sin decimales (variable int, long) long VGeneral::LeerNro(string msj) { /*long c; cout<<msj; cin>>c; return c;*/ long dato; int valido; string s; do { valido = 0; s = LeerString(msj); for(unsigned int i=0; i<s.size(); i++) { if(!(s[i]>='0' and s[i]<= '9')) { ImprimirMensaje("\n Dato no v\xa0lido \n"); valido = -1; break; } } // for } while(valido == -1); dato = atof(s.c_str()); return dato; }