cin>>int

LioNHearT

muy buenas a todos. supongo que esta es una duda tonta. si dado un cin, quiero que sea de tipo int y, como hacer que me vuelva a pedir el cin si no introduzco un int? es decir:

si hacemos:

int val;
cin>>val;

e introducimos a, que me vuelva a pedir el cin. se que es un if sencillo pero nose como poner la condicion de que el cin sea un int.

gracias!

dagavi

Que yo sepa de forma automática no puedes.

Deberías de leer la entrada como un string y averiguar tu que realmente es un int (ej: todo carácter corresponde a un número, posiblemente el primero pueda ser un '-')

elkaoD

EDIT: Entendí la pregunta mal, creo que #2 tiene razón.

LioNHearT

weno pos tonces se kedara asi xD. total solo era para hacer el programa "mas solido" xD

LOc0
#include <stdio.h>

int main()
{
    int numero;

while(scanf("%d", &numero)!=1)
    getchar();//Limpiar el búffer

printf("\nHas tecleado -> %d\n", numero);

return 0;
}

El scanf es más de C "puro", pero perfectamente válido.

Salu2 ;)

elkaoD

Ostia #5 no sabía que scanf devolvía error en caso de no corresponder la entrada con el formato dado. Me va a venir pero que muy bien xD

cm07

En C++ es mas bonito usar cin.peek() o una excepción.

B

scanf=buffer overflow

Usuarios habituales