Programación General > C/C++
Pedir password al iniciar el programa
fachamix:
mira, lo que pides es algo muy pero muy facil, en serio, necesiitas sentarte a leer sobre C/C++ te recomiendo, que entres a la pagina de C con clase, es:
http://c.conclase.net/
y la veas, veo que tus preguntas son las frecuentes y porque no te han enseñado bien el lenguaje (estoy asumiendo que estas en la universodad o colegio tecnico)
en esa pagina tienen un manual EXELENTE PARA EMPEZAR, muy bien explicado.
http://c.conclase.net/curso/index.php
o si quieres te puedes descargar los cursos:
http://c.conclase.net/descargas.php
enfin , mi respuesta , y hasta mi solucion , seria que lo leas, no entiendo cietas partes de tu codigoque me indican que no tienes muchas experiencia y aparte no entiendes bien, y esta bien , a mi me pasa que me olvido las funciones estandar aunque me canso de usarlas, en fin .
por ejemplo, esta parte de tu codigo:
for (i=0;i<5;i++)
{
cout<<"Digite la contraseña n";
cin>>pass;
}
creo que no estas usando bien las cosas aqui.
ceslinx:
Hola Moskito, compile el programa el error me lo arroja en la linea 8 me dice que es por el signo = ; y en la linea 19 dice que el arreglo "password" dice que no se ha declarado
les agradezco si me pueden ayudar en decirme porque me sale este error , y si no hay otra forma de validar el password sin usar las cadenas porque aun no he visto ese tema y me es muy dificil saber donde tengo el error
Como siempre agradezco muchos sus comentarios.
m0skit0:
Sí, error de mi parte, disculpa. Tantos lenguajes en la cabeza que uno termina mezclándolos :P
--- Código: C ---#define MAX_TAM_PASSWORD 8
ceslinx:
Bueno lo del error de la cadena ya se corrigio gracias, La parte de comparar la contraseña aun no me funciona lo he intentado y no se como mas hacerlo, porque como lo estoy haciendo, escribo una contraseña cualquiera me deja entrar y si esta es menor o mayor de cinco caracteres el programa se totea, por favor un consejo,
dejo el codigo nuevamente por si me quieren hechr una mano.
--- Código: C++ --- #include <conio2.h>#include <iostream.h> /*Tamaño máximo que puede tener la contraseña*/#define MAX_TAM_PASSWORD 80/*Contraseña por defecto*/#define DEF_PASSWORD "cesar"//char password[MAX_TAM_PASSWORD] = DEF_PASSWORD; int main(void){ char password [MAX_TAM_PASSWORD] = DEF_PASSWORD; int vecp [3]; int menu=0; int conta=0; int contp=0; int bol=0; int i=0; int aur=0; char nombre[5]; int numsale=0; int dato=0; char pass [5]; int a=0; for (i=0;i<5;i++) { cout<<"Digite la contraseña n"; cin>>pass[i]; } if (password[i]=pass[i]) { cout<<"Bienvenido n"; } else cout<<"Digite un password valido "<<endl; while (menu!=5) { gotoxy(6,40); cout<<" BIENVENIDO "; gotoxy(6,42); cout<<" (1) Registrar los autos en el parqueadero "; gotoxy(6,44); cout<<" (2) Registrar su boleto de entrada al cine "; gotoxy(6,46); cout<<" (3) Sacar autos del parqueadero "; gotoxy(6,48); cout<<" (4) cuantas personas entraron a cine y cantidad de vehiculos que salieron "; gotoxy(6,50); cout<<" (5) Salir "; cin>>menu; switch (menu) // Creo un switch para leer las 4 opciones del menu { case 1: { clrscr(); // en este case se deben ingresar los 10 carros que esperan turno for(i=0;i<3;i++) { cout<<"Por favor digite los tres numeros de la placa del auto que ingresa n"; cin>>vecp [i]; // break; } } case 2: { clrscr(); // en este case por cada boleta que entre es una persona q ha ingresado cout<<"Por favor ingrese su boletan"; cin>>bol; if (bol>=0) {contp++; getch(); } else if (conta<0) {cout<<"Por favor digite un boleto valido n"; } break; } case 3: { clrscr(); // en este case se debe digitarl la placa del auto que va as lir y si coincide con las ingresadas descontar el auto cout<<"Por favor digite los numeros de la placa del auto que va a salir n"; cin>>numsale; for(i=0;i<3;i++) { if (numsale=vecp[i]) { dato=i; } } if (dato=0) { cout<<"La placa del auto no existe n"; } else cout<<"El auto a salido n"; } case 4: { clrscr(); // aqui se debe mostrar cuantas personas han ingresado y cuantos autos han salido cout<<" EL NUMERO DE PERSONAS QUE HAN INGRESADO ES "<< contp <<endl; getch(); for (i=0;i<3;i++) { if (vecp[i]=0) { conta++; cout<<"El numero de carros que han salido es "<< conta << endl; } else cout<<"no ha salido ningun vehiculo n"; getch(); break; } } default: { cout<<"Ingrese una opcion validan por favor n"; break; } } } }
m0skit0:
Bueno, son tantos errores que no sé por dónde empezar... :no:
Primero te aconsejo que te cojas un buen libro de C++ y empieces a estudiar. Practica con ejercicios más sencillos hasta que realmente domines los conceptos básicos, porque sin eso no vas a ir muy lejos.
* Ya que usas C++, utiliza la clase strings en vez de char *: bueno, bonito, barato.
* La contraseña no pueden ser más de 5 caracteres porque tú mismo lo has definido así (líneas 29 y 36).
* No sé para qué muestras el mensaje "Digite la contraseña" cada vez que se introduce un carácter (bucle líneas 36-41)
* No marcas el final de cadena () (bucle líneas 36-41)
* Haces una asignación (=) y no una comparación (==) (línea 44)
* Aunque el punto anterior estuviera bien, estás comparando el 6º carácter (puesto que usas i, que al salir del for vale 5) de password y pass. Esta posición de carácter no existe en pass[] tal y como la has definido (línea 29).
* Aunque valiera la comparación siempre ejecutaría el bucle while() porque lo único que haces en el if-else (línea 44) es imprimir un mensaje por pantalla y seguir con la ejecución.Vuelve a pensar cómo hacerlo, porque con esto vas bastante mal encaminado.
Salud
P.D: ¿qué demonios es "totea"?
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa