Ver Mensaje Individual
  #6 (permalink)  
Antiguo 10/04/2013, 16:18
l222p
 
Fecha de Ingreso: julio-2010
Mensajes: 191
Antigüedad: 13 años, 9 meses
Puntos: 2
Respuesta: Formulario de usuario y password

yo lo tengo!!!

Código C:
Ver original
  1. #include<conio.h>
  2. #include<windows.h>
  3. #include<stdio.h>
  4. #include<string.h>
  5. main()
  6. {
  7.     int i=0,cont=0,contrasenia,user;
  8.    
  9.     char passIngresado[15],c,usuarioIngresado[15],password[13]={112,114,111,103,114,97,109,97,99,105,111,110,0},usuario[7]="kattia";
  10.  
  11.     do
  12.     {
  13.         system("cls");
  14.         printf("Ingrese usuario: ");
  15.         scanf("%s",&usuarioIngresado);
  16.  
  17.         printf("\nContrasenia: ");
  18.         do
  19.         {
  20.            
  21.             c=getch();
  22.             printf("*");
  23.             passIngresado[i]=c;
  24.             i++;
  25.         }
  26.         while(c!=13);
  27.         passIngresado[i-1]='\0';
  28.         printf("\n\n");
  29.        
  30.         for(int y=0; y<i; y++)
  31.         {
  32.             printf("%d\n",passIngresado[y]);
  33.         }
  34.        
  35.  
  36.         contrasenia=strcmp(password,passIngresado);
  37.         user=strcmp(usuario,usuarioIngresado);
  38.         if(contrasenia!=0 || user!=0)
  39.         {
  40.             printf("Datos Incorrectos");
  41.             system("pause");
  42.         }
  43.  
  44.        
  45.     }
  46.     while(contrasenia!=0 || user!=0);
  47.  
  48.     system("pause");
  49.     return 0;
  50.     }

Pero hay un error, por ejemplo, ingreso la contraseña y usuario correcto (el usuario correcto es "kattia" y contraseña "programacion") Funciona de maravilla.

Pero que pasa si ingreso un usuario o contraseña incorrecta y luego los ingreso correctamente, segun el programa no te los toma como buenos.

Y yo se lo que pasa, que el vector "passIngresado" se queda con los datos que se ingresaron por primera vez, y los va acumulando cuantas veces el usuario lo repita.

Entonces como hago para dejar en blanco totalmente el vector, probe usando un ciclo for, asi:

for(int g=0, g<i; g++)
passIngresado='\0';


pero lo que hace es que lo llena de 0, como hago para que el vector quede como fue declarado, sin nada??
o otra forma de hacerlo.

PD: el for
for(int y=0; y<i; y++)
{
printf("%d\n",passIngresado[y]);
}

solo esta para ver lo que tiene incluido el vector.