• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

ws

funçao login

3 mensagens neste tópico

Preciso de uma funçao que m permita fazer o login e registar utilizadores para poderem utilizar uma aplicaçao, e os dados devem estar armazenados num ficheiro .txt !!

//----------------------------------------------------------------------------
void login()
{
FILE *login;
int getc(FILE *login);
char utilizador[20];
char pass[8];
char novo[20];
char password[8];

int n;
printf("\nMENU DE LOGIN\n");
printf("\n1.Login\n");
printf("\n2.Registar\n");
printf("\nOpcao:");
scanf("%d",&n);
switch(n)
{
case 1:

login=fopen("login.txt","r");
printf("\nLOGIN\n");
printf("\nUtilizador:");
scanf("%s",&utilizador);
fread(&novo,sizeof(novo),1,login);
printf("\nPassword:");
scanf("%s",&pass);
fread(&novo,sizeof(novo),1,login);
if (((utilizador) && (pass)) !=(*login))
printf("Dados Incorretos!!!");
fclose(login);break;

case 2:

login=fopen("login.txt","a");
printf("\nREGISTO\n");
printf("\nNovo Utilizador:");
scanf("%s",&novo);
fwrite(&novo,sizeof(novo),1,login);
printf("\nPassword:");
scanf("%s",&password);

fwrite(&password,sizeof(password),1,login);
fclose(login);break;

}
}

//----------------------------------------------------------------------------

]

Será que alguem m pode ajudar a por esta funçao a correr a 100%????

WS



0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Assim por alto porque não tenho muito tempo:

Onde tens scanf("%s",&utilizador); tira o &. Para ler strings não precisas disso.

Depois podias usar o fputs para escrever nos ficheiros e o fgets para ler (É bem mais simples).

Depois de introduzires o nome e a pass, lias o ficheiro e comparavas com o nome e a pass que lá estavam.

Para registar, pedes o username e a pass ao utilizador e depois com o fputs podes escrever no ficheiro.

PS: Da próxima tenta editar o código com o GeSHi. ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

vê se assim já te ajuda, o 1º problema era q nao tavas a criar o ficheiro login.txt

tb mudei os freads e fwrites pa fgets e fputs, mas podes ter fread ou fwrite desde q ponhas o char de new line no final de cada string no ficheiro, para depois ser + facil de ler os dados.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define logindb "login.txt"

void login()
{
FILE *login;
login=fopen(logindb, "r");
//	int getc(login);
char utilizador[20];
char pass[8];
char novou[20];
char novap[20];
char password[8];
int n;
int newl='\n';

if (login == NULL)
{
	login=fopen(logindb,"w");
	fclose(login);
}

printf("\nMENU DE LOGIN\n");
printf("\n1.Login\n");
printf("\n2.Registar\n");
printf("\nOpcao:");
scanf("%d",&n);
switch(n)
{
case 1:
{
	login=fopen(logindb,"r");
	printf("\nLOGIN\n");
	printf("\nUtilizador:");
	scanf("%s",utilizador);
	fgets(novou,sizeof(novou),login);
	printf("\nPassword:");
	scanf("%s",pass);
	fgets(novap,sizeof(novap),login);
/*		if (strcmp(novou,utilizador)!= 0)
	{
		if (strcmp(novap,utilizador)== 0)
			printf("Login Correcto");
		else
			printf("Login Incorrecto");
	}
	else
		printf("Login Incorrecto");*/
	fclose(login);
	system("Pause");
	break;
}
case 2:
{
	login=fopen(logindb,"a");
	printf("\nREGISTO\n");
	printf("\nNovo Utilizador:");
	scanf("%s",utilizador);
	fputs(utilizador,login);
	fputc(newl,login);
	printf("\nPassword:");
	scanf("%s",password);
		fputs(password,login);
	fputc(newl,login);
	fclose(login);break;
	system("Pause");
}
}
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora