Dev - C++ - Ayuda con validar

 
Vista:

Ayuda con validar

Publicado por Stefania Parra (24 intervenciones) el 22/05/2019 03:11:17
Como se válida, tiene que marcar error cuando metas un número negativo, decimal y letras. Solo debe aceptar numeros positivas.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
 
using namespace std;
 
const int N = 10;
 
void leerEntero( int &e )
{
    do{
        cin >> e;
    } while( e < 0 );
}
 
int main()
{
    int numeros[N];
    int suma = 0;
 
    cout << "Introduzca 10 numeros enteros: ";
 
    for( int i = 0; i < 10; i++ )
        leerEntero( numeros[i] );
 
    cout << "\nLos numeros introducidos son: ";
    for( int i = 0; i < 10; i++ )
        cout << numeros[i] << " ";
 
    cout << "\nLa suma de las posiciones pares es: ";
    for( int i = 0; i < 10; i += 2 )
        suma += numeros[i];
 
    cout << suma;
 
    return 0;
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ayuda con validar

Publicado por Alfil (1444 intervenciones) el 22/05/2019 06:33:26
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
 
using namespace std;
 
const int N = 10;
 
void leerEntero( int &e )
{
    do{
        cout << "Introduzca un numero enteros: ";
        cin >> e;
        if( cin.fail() || cin.bad() || e < 0 ){
            e = -1;
            cin.clear();
            cin.ignore(80, '\n');
            cout << "\nNO VALIDO\n";
        }
    } while( e < 0 );
}
 
int main()
{
    int numeros[N];
    int suma = 0;
 
    for( int i = 0; i < 10; i++ )
        leerEntero( numeros[i] );
 
    cout << "\nLos numeros introducidos son: ";
    for( int i = 0; i < 10; i++ )
        cout << numeros[i] << " ";
 
    cout << "\nLa suma de las posiciones pares es: ";
    for( int i = 0; i < 10; i += 2 )
        suma += numeros[i];
 
    cout << suma << endl;
 
    return 0;
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Ayuda con validar

Publicado por Stefania Parra (2 intervenciones) el 23/05/2019 20:33:56
Muchas gracias pero para que sirve los:
cin.fail
cin.bad
cin.ignore
cin.clear
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ayuda con validar

Publicado por Alfil (1444 intervenciones) el 23/05/2019 21:22:02
El estado de un flujo puede evaluarse a través de los bits de la clase ios; la clase base correspondiente a las clases istream, ostream e iostream.

El eofbit se establece para un flujo de entrada, después de que se encuentre el fin de archivo. Se puede utilizar la función miembro eof para determinar si el fin de archivo se encontró en el flujo, después de intentar extraer datos más allá del final del flujo. La llamada cin.eof() devuelve verdadero si se encontró el fin de archivo en cin, de lo contrario devuelve falso.

El failbit se establece en el flujo cuando ocurre un error de formato, como introducir un carácter cuando se espera un entero; cuando dicho error sucede, los caracteres no se pierden. La función miembro fail reporta si falló una operación del flujo; normalmente es posible recuperarse de tales errores.

El badbit se establece en un flujo cuando ocurre un error que resulta en una perdida de datos. La función miembro bad reporta si falló una operación de flujo. Estos fallos son serios y normalmente irrecuperables.

La función goodbite se estblece en un flujo si no se establece alguno de los bits eofbit, failbit o badbit. La función miembro good devuelve verdadero si las funciones eof, fail y bad devuelven falso.

La función miembro clear normalmente se utiliza para restablecer a “bien” el estado de un flujo, de tal forma que la E/S pueda proceder en ese flujo. El argumento predeterminado para clear es ios::goodbit.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar