Foros del Web » Programación para mayores de 30 ;) » C/C++ »

¿Cómo hago para que solo me acepte numeros positivos?

Estas en el tema de ¿Cómo hago para que solo me acepte numeros positivos? en el foro de C/C++ en Foros del Web. Estoy haciendo un ejercicio de movimientos de saldos telefónicos en consola en C++ y quiero saber como hago para que solo me acepte números positivos, ...
  #1 (permalink)  
Antiguo 14/05/2013, 14:39
Avatar de Gugolplex  
Fecha de Ingreso: junio-2011
Ubicación: Vía Lactea
Mensajes: 35
Antigüedad: 12 años, 9 meses
Puntos: 0
Pregunta ¿Cómo hago para que solo me acepte numeros positivos?

Estoy haciendo un ejercicio de movimientos de saldos telefónicos en consola en C++ y quiero saber como hago para que solo me acepte números positivos, es decir, que si ponga un signo, número negativo, un cero, letras, etc..., no lo acepte y me diga opción no válida por favor ingrese un número válido.

Este es el código del ejercicio que estoy haciendo

http://gugolplex.tk/saldotelefonico.cpp
  #2 (permalink)  
Antiguo 14/05/2013, 15:20
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: ¿Cómo hago para que solo me acepte numeros positivos?

Aquí te dejo una función que termina solamente si lo que tecleaste fue un numero.

Adaptalo para que limites los rangos. O crea otra función en base a eso para limitar los rangos.

Código C++:
Ver original
  1. #include <iostream>
  2. #include <sstream>
  3.  
  4. int get_number() {
  5.     std::string str;
  6.     int num;
  7.     std::istringstream iss;
  8.     do {
  9.         iss.clear();
  10.         std::getline(std::cin, str);
  11.         iss.str(str);
  12.         iss >> num >> std::ws;
  13.     } while(iss.fail() && !iss.eof());
  14.     return num;
  15. }
  16.  
  17. int main () {
  18.   char line[15];
  19.   int num;
  20.  
  21.   std::cout << "Enter a number between 0 and 100" << std::endl;
  22.   num = get_number();
  23.   return 0;
  24. }
  #3 (permalink)  
Antiguo 14/05/2013, 16:44
Avatar de Gugolplex  
Fecha de Ingreso: junio-2011
Ubicación: Vía Lactea
Mensajes: 35
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: ¿Cómo hago para que solo me acepte numeros positivos?

¿Alguna otra solución?
  #4 (permalink)  
Antiguo 14/05/2013, 17:11
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: ¿Cómo hago para que solo me acepte numeros positivos?

Damn! no seas flojo!

Solamente te falta validar que sea mayor a 0.

Pero si quieres otra solución puedes usar unsigned int en lugar de int, así no vas a tener números negativos.

Etiquetas: c++
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:38.