Programación General > C/C++

 Pedir password al iniciar el programa

<< < (2/3) > >>

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

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa