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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Dudas varias programa
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Dudas varias programa  (Leído 1,676 veces)
novatus84

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Dudas varias programa
« en: 24 Noviembre 2014, 19:20 pm »

Muy buenas estoy haciendo una practica de fibonacci tengo lo siguiente después de mucha comedura de cerebro...
Código
  1. #include <vector>
  2. #include <math.h>
  3. #include <iostream>
  4. using namespace std;
  5.  
  6.  
  7. void fibonacci (int x, int y , vector<int>& v, int n){
  8.    int num1 = x;
  9.    int num2 = y;
  10.    int aux;
  11.    v.push_back(x);
  12.    v.push_back(y);
  13.    for (int d = n-2; d > 0; --d){
  14.        aux = num1 + num2;
  15.        num1 = num2;
  16.        num2 = aux;
  17.        v.push_back(aux);
  18.    }
  19. }
  20.  
  21. int main(){
  22.    int x;
  23.    int y;
  24.    int n;
  25.    cout << "Enter the first term: \n";
  26.    cin >> x;
  27.    cout << "Enter the second term: \n";
  28.    cin >> y;
  29.    cout << "Enter the number of terms: \n";
  30.    cin >> n;
  31.    vector<int> v;
  32.    fibonacci(x, y, v , n);
  33.    cout << endl << "The numbers for the sequence asked are: " << endl;
  34.    for (int i = 0; i <v.size(); ++i){
  35.        cout << v[i] << endl;
  36.    }
  37. }
  38.  

¿como puedo sacar del main la lectura de los datos?
¿como hacer que no se pueda introducir letras, que solo lea datos?
en fin mejorarlo que llevo tiempo con ello y no me apaño no hacen mas que salirme errores, Gracias de antemano, saludos


En línea

Orubatosu


Desconectado Desconectado

Mensajes: 2.515


Ver Perfil WWW
Re: Dudas varias programa
« Respuesta #1 en: 24 Noviembre 2014, 20:24 pm »

El tema de control de errores por parte del usuario es... una batalla perdida, los usuarios tontos son muy inteligentes  ;D

Pero, puedes hacer obviamente controles... por ejemplo (una opción, hay otras) la entrada por CIN haz que sea un string, ya que un string virtualmente se lo come "todo". Luego compruebas que lo introducido es efectivamente un número, y si es así lo "das por bueno".

Intenta por ejemplo en una función convertir ese string en un objeto istringstream, y sacas "a piñón" un entero. Si la lectura tiene éxito, el contenido es un entero, si no tiene éxito obras en consecuencia.

Por ejemplo:

Código:
#include <iostream>
#include <sstream>

using namespace std;

int numero(string entrada, bool& correcto){
    int valor;
    istringstream S(entrada);
    if (!(S >> valor)) correcto = false;
    return valor;
}


int main(){
    bool lectura = true;
    string In;
    int X;
    int Y;
    int N;
    cout << "Enter the first term: \n";
    cin >> In;
    X = numero(In, lectura);
    cout << "Enter the second term: \n";
    cin >> In;
    Y = numero(In, lectura);
    cout << "Enter the number of terms: \n";
    cin >> In;
    N = numero(In, lectura);
    // -------------------------
    cout << "Valor de X = " << X << endl;
    cout << "Valor de Y = " << Y << endl;
    cout << "Valor de N = " << N << endl;
    if (!lectura) cout << "Uno de los valores es erroneo" << endl;
}

Eso si, aquí tenemos un "medio problema", y es que tal y como te lo planteo, solo te dice que uno de los valores es erróneo, no cual, y además si introduces un valor como por ejemplo "125df" tomará solo 125 e ignorará el resto.

Espero que te sirva de algo, aunque seguro que a alguien se le ocurre como meter un dato erróneo.


En línea

"When People called me freak, i close my eyes and laughed, because they are blinded to happiness"
Hideto Matsumoto 1964-1998
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Programa WTFast dudas
Software
Nillo 1 1,168 Último mensaje 20 Febrero 2015, 22:11 pm
por engel lex
Dudas de programa en C
Programación C/C++
Orb 7 2,968 Último mensaje 18 Enero 2016, 18:43 pm
por MAFUS
Un programa con varias funciones y sin entradas « 1 2 3 »
Programación C/C++
ciquee 20 7,280 Último mensaje 25 Mayo 2019, 08:24 am
por K-YreX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines