| 
	
		|  Autor | Tema: Ayuda con Archivos  (Leído 7,266 veces) |  
	| 
			| 
					
						| jscrip 
								
								 Desconectado 
								Mensajes: 14
								
								
								
								
								
								   | 
 
Hola amigos, necesito me ayuden con unos problemas que tengo en mi programa, no entiendo por qué no funciona:  Ingresar al Sistema. Se pide por teclado que ingrese el usuario y luego la contraseña, se compara con lo que hay en el archivo accesobanco.text; de existir dicho usuario/contraseña, se muestra mensaje: “acceso exitoso”. Si no existe el usuario, se muestra mensaje: “usuario incorrecto”. Si la contraseña es equivocada, se muestra mensaje: “contraseña incorrecta”. Si la contraseña digitada no es correcta, se da la oportunidad de volver a ingresar la contraseña, si en 3 oportunidades falla al ingresar la contraseña, se bloquea el acceso al sistema para ese usuario en este momento. void ingresarsistema(){
 FILE *p;
 char S1[9], S2[5], ch;
 char user[9], pass[5], tmp[5];
 int f1=0, i;
 p = fopen("accesobanco.txt", "r");
 printf("User: ");
 scanf("%s", user);
 printf("\nPassword: ");
 fflush(stdin);
 scanf("%s", pass);
 while(!feof(p))
 {
 fscanf(p, "%[^,], %[^\n]\n", S1, S2);
 if(strcmp(user, S1) == 0) /*Se compara cadenas de usuarios*/
 {
 f1=1;
 strcpy(tmp, S2);
 if(strcmp(pass, S2) == 0) /*Se compara cadenas de contraseñas*/
 {
 printf("\nAcceso Exitoso\n");
 return;
 }
 }
 if(f1 == 0)
 {
 printf("\nUsuario Incorrecto\n");
 }
 else
 {
 printf("\nContraseña Incorrecta");
 for(i=0; i<2; i++)
 {
 printf("\nVuelva a ingresar la contrasenia: ");
 fflush(stdin);
 scanf("%s", pass);
 {
 printf("\nAcceso Exitoso\n");
 return;
 }
 }
 printf("\nEl sistema ha sido bloqueado\n");
 }
 }
 fclose ( p );
 }
Agradecería mucho su ayuda.
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| Maik33 
								
								 Desconectado 
								Mensajes: 128
								
								
								
								
								
								   | 
 
¿Que problema tienes?
 Acabo de hacer una prueba y funciona bien. Lo único que no funciona son lo de las 3 oportunidades. ¿Tienes el problema con eso?
 
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| jscrip 
								
								 Desconectado 
								Mensajes: 14
								
								
								
								
								
								   | 
 
¿Que problema tienes?
 Acabo de hacer una prueba y funciona bien. Lo único que no funciona son lo de las 3 oportunidades. ¿Tienes el problema con eso?
 
 Exacto, no me funcionan las 3 oportunidades. |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| amchacon 
								       
								
								 Desconectado 
								Mensajes: 1.211
								
								   | 
 
for(i=0; i<2; i++){    printf("\nVuelva a ingresar la contrasenia: ");    fflush(stdin);    scanf("%s", pass);    {        printf("\nAcceso Exitoso\n");        return;    }} 
 No falta aquí un if? |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| Maik33 
								
								 Desconectado 
								Mensajes: 128
								
								
								
								
								
								   | 
 
Si, cuando lees la contraseña por segunda vez, no comparas con nada, y por eso siempre te da "Acceso Exitoso". |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| jscrip 
								
								 Desconectado 
								Mensajes: 14
								
								
								
								
								
								   | 
 
for(i=0; i<2; i++){    printf("\nVuelva a ingresar la contrasenia: ");    fflush(stdin);    scanf("%s", pass);    {        printf("\nAcceso Exitoso\n");        return;    }} 
 No falta aquí un if?un error mío al subir el codigo y borrar comentarios: for(i=0; i<2; i++){    printf("\nVuelva a ingresar la contrasenia: ");    fflush(stdin);    scanf("%s", pass);    if(strcmp(pass, tmp) == 0);    {        printf("\nAcceso Exitoso\n");        return;    }} 
  con ese if lo tengo y no funciona |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| Maik33 
								
								 Desconectado 
								Mensajes: 128
								
								
								
								
								
								   | 
 
Ya he encontrado el fallo.    {       return;   }
 En la comparacion tienes: if(strcmp(pass,tmp)==0); El punto y coma, hace que siempre se ejecute lo que hay despues del if. |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| jscrip 
								
								 Desconectado 
								Mensajes: 14
								
								
								
								
								
								   | 
 
Ya he encontrado el fallo.    {       return;   }
 En la comparacion tienes: if(strcmp(pass,tmp)==0); El punto y coma, hace que siempre se ejecute lo que hay despues del if.era de madrugada, disculpen, los subí mal, pero en mi programa si lo tengo sin el ; en cuanto a sintaxis creo que esta correcto, pero aun así no funciona |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  |  |  | 
			| 
					
						| jscrip 
								
								 Desconectado 
								Mensajes: 14
								
								
								
								
								
								   | 
 
De hecho el programa lo hice en linux, al pasarlo a windows le puse el fflush, de todas manera si lo quito o borro el buffer con while(getchar()!='\n'); el programa sigue sin funcionar. |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  |  |  
 
	
 
 
				
					
						| Mensajes similares |  
						|  | Asunto | Iniciado por | Respuestas | Vistas | Último mensaje |  
						|   |   | ayuda con archivos ASF y WMV Multimedia
 | dama | 1 | 2,251 |  7 Diciembre 2004, 20:19 pm por Songoku
 |  
						|   |   | AYUDA:ARCHIVOS BIN Y CUE Software
 | Kasswed | 1 | 9,980 |  8 Enero 2005, 01:51 am por el-brujo
 |  
						|   |   | Ayuda con archivos .ape y .cue Multimedia
 | josocli | 1 | 2,430 |  1 Febrero 2005, 10:40 am por Songoku
 |  
						|   |   | ayuda con archivos nsv Multimedia
 | darkwakko | 1 | 2,473 |  22 Junio 2006, 20:30 pm por Sourraund
 |  
						|   |   | ayuda  archivos wmv Multimedia
 | raulll | 3 | 2,647 |  28 Septiembre 2006, 09:36 am por Sourraund
 |    |