Autor
|
Tema: [AYUDA]C++ / VALIDAR SOLO NUMEROS SEGUN MI TRABAJO (Leído 8,389 veces)
|
hctr12
Desconectado
Mensajes: 6
|
Buenas, tengo una consulta como puedo validar sólo números en mi trabajo. Lo que quiero saber si hay opciones en las librerias que uso para lograrlo ya que en internet encuentro muchas formas pero no las entiendo, porque usan otras librerias y me desviaré mucho de lo que me piden. #include "stdafx.h" #include "stdio.h" #include "conio.h" do { printf("\n\n\n\tRETORNAR AL MENU: 1 = SI o 0 = NO , PARA FINALIZAR: "); scanf("%d",&M); // if(M == 1) // { printf("\n\n"); goto menu; // } else if(M == 0) { return 0; } }while (M<0 || M>1); Sólo he logrado usar el bucle while para que no usen números fuera de las opciones, pero aún tengo el problema con las letras. Saludos
|
|
« Última modificación: 9 Julio 2014, 06:44 am por hctr12 »
|
En línea
|
|
|
|
engel lex
|
leelo como char y resolvería tu problema... el código solo tienes que modificar el tipo de variable de scanf a %c y M a char (con sus respectivas comparaciones)
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
hctr12
Desconectado
Mensajes: 6
|
Entonces char M;
do { printf("\n\n\n\tRETORNAR AL MENU: 1 = SI o 0 = NO , PARA FINALIZAR: "); scanf("%c",&M); // if(M == 1) // { printf("\n\n"); goto menu; // } else if(M == 0) { return 0; } }while (M<0 || M>1);
¿Cómo plantearías las comparaciones? Quiero validar sólo numeros para las opciones . Y me pierdo un poco
|
|
|
En línea
|
|
|
|
engel lex
|
las comparaciones son iguales pero en comillas simples es decir el char es visualmente interpretado como letra, pero el codigo lo entiende como numero (es basicamente lo que quiere decir que séa ascii) al ser interpretado como numero, las validaciones se hacen igual, para estos casos es lo más simple... por si a las dudas, busca la tabla ascii, ahí están representados
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
hctr12
Desconectado
Mensajes: 6
|
Claro, cuando las reemplazo como dices llega a identificarse pero me imprime dos veces printf("\n\n\n\tRETORNAR AL MENU: 1 = SI o 0 = NO , PARA FINALIZAR: ");
|
|
|
En línea
|
|
|
|
engel lex
|
pasa tu sección código actual
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
hctr12
Desconectado
Mensajes: 6
|
Es todo el codigo de mi trabajo, hasta ahora. Lo llevo haciendo en Visual Express c++ #include "stdafx.h" #include "stdio.h" #include "conio.h"
int main() { menu: int OP; char M; // VARIABLES DE MENU int N,A,SN,MN=1; //VARIABLES DE LA FUNCION 1 int primero = 1, segundo = 0, tercero = 1, i=0, cant; // VARIABLES DE LA FUNCION 2
// INICIO DE LA FUNCION MENU----------------------------------------------------------------------------------------------- do { printf("-------------------------------------------------------------------------------\n\n"); printf("\t\t\t\tMenu"); printf("\n\n"); printf("\t1. Suma de los cuadrados de los impares.\n\n"); printf("\t2. Mostrar la serie de Fibonacci.\n\n"); printf("\t3. Mover un movil.\n\n"); printf("\t4. Terminar.\n\n"); printf("\n\n"); printf("-------------------------------------------------------------------------------\n\n\t"); printf("Elija la funcion, segun su numero de orden: "); scanf("%d",&OP); printf("\n\n");
} while (OP<1 || OP>4); //OP>=1 && OP<=4); // FIN DE LA FUNCION MENU-----------------------------------------------------------------------------------------------
// INICIO DE LA FUNCION 1----------------------------------------------------------------------------------------------- if (OP==1) //CONDICION PARA QUE DIRECCIONE A LA PRIMERA FUNCION { printf("\tIngrese la cantidad N de numeros impares ,al cuadrado, a sumar: "); scanf("%d",&N); // scanf LEE EL ENTERO QUE SE INGRESARA EN LA VARIABLE N printf("\n"); SN=(((N*2)+1)*(N*2)*((N*2)-1))/6; // OPERACION PARA ENCONTRAR LA SUMA DE "N" NUMEROS IMPARES AL CUADRADO printf("\tLa suma de los N numeros, impares al cuadrado es: %d",SN); // IMPRIME EL RESULTADO DE LA FORMULA
//********************************************************************************************* do { printf("\n\n\n\tRETORNAR AL MENU: 1 = SI o 0 = NO , PARA FINALIZAR: "); scanf("%c",&M); // if(M == '1') // { printf("\n\n"); goto menu; // } else if(M == '0') { return 0; } }while (M=='0' || M=='1');
} _getch(); return 0; }
|
|
|
En línea
|
|
|
|
engel lex
|
claro! mira la condicion del while! :s por qué la cambiaste? tenias y ahora tienes while (M=='0' || M=='1'); fijete que las condiciones son casi opuestas, porque en la original no podían ser 1 ni 0, ahora deben ser 0 y 1... deja las originales ---pd---- no uses conio.h está contra-recomendado... tampoco goto... para eso hay librerías standard y funciones
|
|
« Última modificación: 9 Julio 2014, 08:00 am por engel lex »
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
hctr12
Desconectado
Mensajes: 6
|
Claro, estaba intentando otras opciones pero cuando regreso a Me imprime dos veces RETORNAR AL MENU: 1 = SI o 0 = NO , PARA FINALIZAR: RETORNAR AL MENU: 1 = SI o 0 = NO , PARA FINALIZAR: ____ y recién para ingresar el valor y si el valor no es ni 1 ni 0, vuelve a imprimirse dos veces más y así...pero la validación si está correcta solo faltaría anular una impresión PD1: EL CONIO NO LO PUEDO SACAR, POR EL _getch(); eso ya es capricho de mi docente. PD2: QUÉ FUNCION PUEDE REEMPLAZAR A GOTO ?
|
|
« Última modificación: 9 Julio 2014, 08:05 am por hctr12 »
|
En línea
|
|
|
|
engel lex
|
sorry... copie y pegué el codigo... lo tienes como deberia ser?
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Como validar usuarios segun tipo??
Programación Visual Basic
|
byway
|
6
|
4,999
|
16 Abril 2009, 19:34 pm
por Angeldj27
|
|
|
como validar jtxtbox para que acepte solo números!
Java
|
washington8277
|
7
|
7,126
|
29 Octubre 2012, 15:33 pm
por ChavalChavito
|
|
|
validar numeros
Programación C/C++
|
m@o_614
|
1
|
2,670
|
5 Abril 2014, 02:54 am
por do-while
|
|
|
Validar solo números en un INT en C++
Programación C/C++
|
RGT
|
1
|
6,608
|
5 Noviembre 2015, 12:31 pm
por class_OpenGL
|
|
|
SOLO VALIDAR ENTRADA DE NUMEROS
Programación C/C++
|
WarrirorPT3
|
1
|
2,687
|
15 Abril 2019, 23:28 pm
por K-YreX
|
|