elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Filtro para no introducir un char en vector int.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Filtro para no introducir un char en vector int.  (Leído 2,074 veces)
antkk

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Filtro para no introducir un char en vector int.
« en: 14 Marzo 2015, 13:15 pm »

Hola, estoy aprendiendo a programar en c++ y tengo una duda con esto:

void Leer(int vector[]){

   for(int i=0; i < TAMANIO; ++i){
      cout << "Introduce números v[" << i << "]: ";
      cin >> vector;
   }

}

He escrito esta función y mi duda es como resuelvo que el usuario al introducir un char desde el teclado y no se lo trague el vector??

TAMANIO está declarada como una constante global y su tamaño es 100.

Un saludo


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Filtro para no introducir un char en vector int.
« Respuesta #1 en: 14 Marzo 2015, 15:07 pm »

Primero lee la linea como una string. Luego, miras si es numérica. En caso de que lo sea, usas una función como "stoi()" para transformarlo a int, y ya lo metes en el vector.


En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Filtro para no introducir un char en vector int.
« Respuesta #2 en: 14 Marzo 2015, 17:43 pm »

como resuelvo que el usuario al introducir un char desde el teclado y no se lo trague el vector?
Una opción ya la indico ivancea96, otra consiste en verificar el resultado del operador >> directamente, un ejemplo:
Código
  1. #include <iostream>
  2. using std::cout;
  3. using std::cin;
  4. using std::endl;
  5.  
  6. #include <limits>
  7. using std::numeric_limits;
  8.  
  9. int main()
  10. {
  11.   int numero;
  12.  
  13.   while (true) {
  14.      cout << "Introduce un numero: ";
  15.      if (cin >> numero)
  16.         break;
  17.      else {
  18.         cin.clear();
  19.         cin.ignore(numeric_limits<int>::max(), '\n');
  20.      }
  21.   }
  22.  
  23.   cout << "El numero es " << numero << endl;
  24.  
  25.   return 0;
  26. }

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Introducir un nombre en un vector
Programación C/C++
Qorin 5 5,608 Último mensaje 18 Noviembre 2010, 06:31 am
por Qorin
hacer compareTo con vector de char (para ordenar nombres)
Java
d!lan 2 3,242 Último mensaje 19 Febrero 2014, 16:41 pm
por NikNitro!
introducir valor a funccion ( char * x [] )
Programación C/C++
70N1 7 2,655 Último mensaje 23 Septiembre 2014, 16:14 pm
por eferion
Introducir elementos de un vector en orden
Programación C/C++
Katerina Dobreva 3 3,028 Último mensaje 15 Noviembre 2014, 11:54 am
por Eternal Idol
Introducir char y convertir char en int
Programación C/C++
tonesofwhiskie 0 1,920 Último mensaje 27 Enero 2017, 12:43 pm
por tonesofwhiskie
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines