Ingreso SesionesBueno este code lo que hace es que abre un menu, con dos opciones, ingresar o crear cuenta, si pones crear cuenta guarda en un fichero los datos ID, PASS, NICK y con la opcion ingresar, ingresas tu cuenta (ID PASS) y dira bienvenido "NICK".
La verdad este programa podria ser mucho mejor, por ejemplo cifrar los datos para que no se pueda ingresar directamente a ellos, y bueno, cuando sepa un poco mas de sockets, vere si puedo hacer un chat usando de base este code
Code:#include<stdio.h>
#include<stdlib.h>
#include<string.h>
// Inicio del Programa
main ()
{
char posID[10], posPASS[10], posNICK[10];
char Fname[]="Datos.txt";
int X,i, opc, comp, NUM=0;
FILE* folder;
// Menu Inicio
MENU:
system("cls");
system("color 07");
printf("Elija una opcion: \n");
printf("1.- Ingreso\n");
printf("2.- Crear Cuenta\n");
printf("3.- Salir\n\n");
printf("Opcion Nro: ");
scanf ("%i", &opc);
system("cls");
folder = fopen(Fname,"a+");
if (!folder)
{
printf("Error, no se pueden iniciar los ficheros\n\n");
system("pause");
exit(1);
}
fseek(folder, -4,SEEK_END);
fscanf(folder,"%i",&NUM);
char ID[NUM][10], PASS[NUM][10], RePASS[10], NICK[NUM][10];
switch(opc)
{
// Opcion 1: Ingreso
// Abriendo Archivo (Solo lectura)
case 1:
INGRESO:
rewind(folder);
for(i=1;i<=NUM;i++)
{
fscanf(folder,"ID: %s PASS: %s NICK: %s NUM: %i\n", &ID[i], &PASS[i], &NICK[i], &X);
}
X=-1;
printf("Ingreso\n");
printf("Acontinuacion ingrese sus datos:\n");
printf("\n\tID : ");
scanf ("%s", &posID);
printf("\tPass: ");
scanf ("%s", &posPASS);
for(i=1;i<=NUM;i++)
{
if (0 == strcmp(posID,ID[i]))
{ X=i;
i+=NUM;
}
}
if (X == -1)
{
system("cls");
printf("La cuenta no existe\n\n");
system("pause");
system("cls");
goto INGRESO;
}
if (0 != strcmp(posPASS,PASS[X]))
{
system("cls");
printf("Password incorrecto\n\n");
system("pause");
system("cls");
goto INGRESO;
}
system("cls");
system("color 0e");
printf("Sesion Iniciada\n");
printf("Bienvenido %s, presiona una tecla para continuar.", NICK[X]);
system("pause>NULL");
goto MENU;
break;
// Opcion 2: Crear Cuenta
// Abriendo Archivo (Modificable)
case 2:
FORMU:
if (NULL == freopen(Fname,"a",folder))
{
printf("Error, no se pueden iniciar los ficheros\n\n");
system("pause");
exit(1);
}
system("cls");
printf("Crear Cuenta\n");
printf("Porfavor complete los siguientes datos:\n\n");
printf("ID (max. 10): ");
scanf ("%s", &ID);
printf("Nick (max. 10): ");
scanf ("%s", &NICK);
printf("Pass (max. 10): ");
scanf ("%s", &PASS);
printf("Repita Pass : ");
scanf ("%s", &RePASS);
system("cls");
comp = strcmp(PASS[0],RePASS);
if (comp!=0)
{
printf("Has ingresado contraseñas diferentes\n\n");
system("pause");
goto FORMU;
}
system("color 0a");
NUM++;
fprintf(folder,"ID: %s PASS: %s NICK: %s NUM: %i\n", ID, PASS, NICK, NUM);
printf("Los siguientes datos han sido guardados: \n\n");
printf("ID : %s\t\t", ID);
printf("Nick: %s\n", NICK);
printf("Pass: %s\n\n", PASS);
printf("Pulse una tecla para volver al menu inicio...");
system("pause>NULL");
if (fclose(folder)!=0)
{
printf("Error, no se pueden cerrar los ficheros\n\n");
system("pause");
exit(1);
}
goto MENU;
break;
// Opcion 3: Salir
case 3:
printf("Saliendo del programa...\n\n");
system("pause");
return 0;
break;
// Opcion X: No existe
default:
printf("La opcion ingresada no existe\n\n");
system("pause");
goto MENU;
break;
}
}
PD: Me fue mui dificil hacer ese "simple" codigo, por que permite muchas MUCHAS cuentas, y las lee todas.