Muy buenas, con el fin de ir practicando y aprendiendo, me he puesto a crear una especie de jueguecito, y lo primero que he hecho ha sido crear un menu, para crear tu cuenta y luego ingresar con ella, (una chorrada ya que por ahora será de un solo jugador, pero para ir manejando el asunto), el problema está en que cuando se supone que he creado una cuenta, luego al ingresar con ella me dice dice que el nombre o la pass son incorrectos (no es que sean incorrectos, sino que directamente no reconoce lo que he creado antes), supongo que el problema será que cuando "creo" la nueva cuenta, no se me guarda correctamente en la variable, o quizás que no busque bien donde está la contraseña nueva, no tengo ni idea. Aquí tenéis el código, segurísimo que tendré mil fallos, pero espero ir poco a poco corrigiendo y aprendiendo. Gracias de antemano.
#include <stdio.h>

int menu();
int menujuego();

main(){

	menu();
	
	
}

int menu(){
	int op;
	char nombre[20], nombre1[20];
	char pass[20], pass1[20];
	char m;
	
	printf("(1) Entrar a su cuenta\n");
	printf("(2) Crear nueva cuenta\n");
	scanf("%d",&op);
	
	switch(op){
		case 1 : 
			system("cls");
			printf("Introduzca el nombre de su cuenta:  ");
			fflush(stdin);
			gets(nombre);
			printf("Introduzca la contrasena:  ");
			fflush(stdin);
			gets(pass);
			
			if(nombre == *nombre1 && pass == *pass1){
				menujuego();
			}
			else{
			while(nombre != *nombre1 || pass != *pass1){
				system("cls");
				printf("Nombre o contrasena incorrectos, intenta de nuevo. \n");
				printf("Introduzca el nombre de su cuenta:  ");
				fflush(stdin);
				gets(nombre);
				printf("Introduzca la contrasena:  ");
				fflush(stdin);
				gets(pass);
				}
			}
			break;
		case 2 :
			system("cls");
			printf("Introduzca su nombre para la nueva cuenta:  ");
			fflush(stdin);
			gets(nombre1);
			printf("Introduzca la contrasena:  ");
			fflush(stdin);
			gets(pass1);	
			
			while(m!='M'){
			system("cls");
			printf("Cuenta creada con exito. Pulsa \"M\" para volver al menu: \n");
			scanf("%c",&m);
		}
			system("cls");
			if(m == 'M'){
				menu();
			}
			break;
		default : 
			system("cls");
			printf("Elija una opcion correcta. \n");
			menu();
	}
	
	return op;
}

int menujuego(){
	system("cls");
	printf("MENU\nMENU\nMENU\nMENU");
}
Podrías poner la solución para que en el futuro alguien abra un post similar.

Creo que podría ser porque no has escrito el valor de nombre1 y pass1.
Ok, Blau, no lo había pensado ;)

Si Pink, usando strcmp, para comparar las dos cadenas. Aquí está el código:
if(strcmp (nombre, nombre1)==0 && strcmp (pass, pass1)==0 ){
				menujuego();
			}
			else{
			while(strcmp (nombre, nombre1)!=0 && strcmp (pass, pass1)!=0 ){
...}
Ahora, el problema que me surje, es como puedo guardar todas las cuentas que cree en un archivo, para luego poder entrar a cualquier cuenta que quiera, incluse despues de haber cerrado el programa, no se si me explico... Como cualquier programa que funciona de esta manera, básicamente. Espero que alguien me pueda echar un cable.

Un saludo ¡!
puedes crear un ini file. o algo parecido. creas algun formato(structura para el archivo) aunque los .ini funcionan muy bien para lo que quieres si trabajas en windows hay varias APIs. que te ayudarian mucho. aunque tambien se podria hacer con IO default.

Saludos
Imagen
Necesitas saber manejo de ficheros tanto lectura como escritura para que cuando tu programa se ejecute lea el archivo .ini
y vea si existe algun usuario ya registrado

dale una mirada a este link [Enlace externo eliminado para invitados]
Skype:crack8111
Uff de inglés no entiendo ni media :/

Pero de manejo de ficheros si que tengo una base, pero tipo .txt, no .ini, no se si será el mismo procedimiento...
Responder

Volver a “C/C++”