cs_shenron
Messages postés21Date d'inscriptionmardi 29 janvier 2002StatutMembreDernière intervention17 janvier 2005
-
23 mai 2002 à 22:23
cs_pheno
Messages postés141Date d'inscriptionmardi 30 avril 2002StatutMembreDernière intervention23 mars 2005
-
26 mai 2002 à 19:50
/*Definition de la structure*/
typedef struct
{
char login[11];
char mdp[11];
}strlogin;
/*Declaration de fonctions*/
void ajout(FILE *f);
/*Fonction Principale*/
void main(void)
{
FILE *f;
char ulogin[11];
char umdp[11];
int trouve;
strlogin fiche;
clrscr();
/*Lecture du fichier*/
f = fopen("D:\\login.dat","r");
printf("Entrer votre login et votre mot de passe\n");
printf("LOGIN:");
gets(ulogin);
flushall;
printf("MOT DE PASSE");
gets(umdp);
flushall;
while((fread(&fiche,sizeof(strlogin),1,f) !=0 )&&(trouve==0))
{
if((strcmp(strlogin.login,ulogin)==0)&&(strcmp(strlogin.mdp,umdp)==0))
{
trouve=1;
printf("Bienvenue %d",strlogin.ulogin);
}
}
if(trouve==0)
{
printf("Vous n\'etes pas un utilisateur enregistre\n");
printf("Vous allez maintenant creer un login et un mot de passe\n");
printf("Pour continuer appuyer sur une touche...\n");
ajout(f); /*Fonction ajout d un utilisateur*/
getch();
}
fclose(f);
}
void ajout(fichier)
{
FILE *f;
char mdpverif[10];
strlogin fiche;
f = fopen("D:\\login.dat","a");
printf("Vous allez creer un utilisateur");
printf("Choisissez le login que vous voulez");
gets(strlogin.login);
do
{
printf("Choisissez le mot de passe correspondant");
gets(strlogin.mdp);
printf("Retapper votre mot de passe");
gets(mdpverif);
}while(strlogin.mdp==mdpverif);
}
---
c pas fini ms si deja g un bleme de struct.. ca va pas aller la...
"Improper use of typedef 'strlogin' "
cs_Gaelle
Messages postés41Date d'inscriptionlundi 1 avril 2002StatutMembreDernière intervention 7 mars 2004 24 mai 2002 à 02:11
Salut je te donne la correction de ton code... Mais ta principale erreur viens de ceci : Tu déclares une structure strlogin OK ! Mais ensuite tu déclares une variable fiche de type strlogin. La aussi OK ! Mais il faut ensuite référencer cette variable fiche. Ex: pour accéder à ton champ mdp de la variable fiche il faut écrire : fiche.mdp et nom pas le nom de ta structure ! Bon sinon il y avait d'autres erreurs corrigées. Voici ton code à toi de l'affiner maintenant car il manque des petits trucs.
/*Definition de la structure*/
typedef struct IDENTIFICATION
{
char login[TAILLE_CHAINE];
char mdp[TAILLE_CHAINE];
}strlogin;
/*Declaration de fonctions*/
void ajout();
/*Fonction Principale*/
void main(void)
{
FILE *f;
int trouve=0; //Initialisation de trouve à 0
strlogin fiche; //Variable fiche de type strlogin
strlogin saisiecran; //contient les infos saisies à l'écran
system("cls"); //Effaçage de l'écran sous VC++ et borland
/*clrscr(); //Effaçage de l'écran sous borland*/
/*Lecture du fichier*/
/*Si le fichier n'existe pas on enregistre directement le premier user*/if ((f fopen("login.dat","r")) NULL)
goto enregistrer;
printf("Entrer votre login et votre mot de passe\n");
printf("LOGIN : ");
gets(saisiecran.login);
flushall();
/*Dans le cas ou aucun user de créé ou de user non enregistré ds le fichier*/
enregistrer:
if(trouve==0)
{
printf("Vous n\'etes pas un utilisateur enregistre\n");
printf("Vous allez maintenant creer un login et un mot de passe\n");
printf("Pour continuer appuyer sur une touche...\n");
getch();
ajout(); /*Fonction ajout d un utilisateur*/
}
/*Fin de main()*/
getch();
}
/*Fonction Ajout() ajoute un user et son mdp dans le fichier login.dat*/
/*--------------------------------------------------------------------*/
void ajout()
{
FILE *f;
strlogin fiche; //Les infos qui seront contenues dans le fichier
strlogin saisiecran; //Les infos saisies à l'écran
/*on ouvre le fichier en mode ajout si il n'existe pas il sera crée*/
f = fopen("login.dat","a");
/*Saisi du nom de login*/
printf("\nVous allez creer un utilisateur");
printf("\n\nChoisissez le login que vous voulez :");
gets(fiche.login);
do
{
/*Saisi et confirmation du mot de passe*/
printf("\nChoisissez le mot de passe correspondant : ");
gets(fiche.mdp);
printf("\nRetapper votre mot de passe : ");
gets(saisiecran.mdp);
/*On boucle tq les mots de passe saisis diffèrent*/
}while(strcmp(fiche.mdp,saisiecran.mdp) != 0);
/*Rappel des informations saisies*/
printf("\nRecapitulatif de votre saisie:\n");
printf("\t NOM LOGIN : %s\n", fiche.login);
printf("\tMOT DE PASSE : %s\n", fiche.mdp);
/*Ecriture des informations dans le fichier*/
fwrite(&fiche, sizeof(strlogin), 1, f);
/*Definition de la structure*/
typedef struct IDENTIFICATION
{
char login[TAILLE_CHAINE];
char mdp[TAILLE_CHAINE];
}strlogin;
/*Declaration de fonctions*/
void ajout();
/*Fonction Principale*/
void main(void)
{
FILE *f;
int trouve=0; //Initialisation de trouve à 0
strlogin fiche; //Variable fiche de type strlogin
strlogin saisiecran; //contient les infos saisies à l'écran
clrscr(); /*Effaçage de l'écran*/
/*Lecture du fichier*/
/*Si le fichier n'existe pas on enregistre directement le premier user*/if ((f fopen("D:\\login.dat","r")) NULL)
{
printf("Il n'existe pas d'utilisateur enregistre");
ajout();
}
printf("Entrer votre login et votre mot de passe\n");
printf("LOGIN : ");
gets(saisiecran.login);
flushall();
/*Fonction Ajout() ajoute un user et son mdp dans le fichier login.dat*/
/*--------------------------------------------------------------------*/
void ajout()
{
FILE *f;
strlogin fiche; //Les infos qui seront contenues dans le fichier
strlogin saisiecran; //Les infos saisies à l'écran
/*on ouvre le fichier en mode ajout si il n'existe pas il sera crée*/
f = fopen("D:\\login.dat","a");
/*Saisi du nom de login*/
printf("\nVous allez creer un utilisateur");
printf("\n\nChoisissez le login que vous voulez :");
gets(fiche.login);
do
{
/*Saisi et confirmation du mot de passe*/
printf("\nChoisissez le mot de passe correspondant : ");
gets(fiche.mdp);
printf("\nRetapper votre mot de passe : ");
gets(saisiecran.mdp);
/*On boucle tq les mots de passe saisis diffèrent*/
}while(strcmp(fiche.mdp,saisiecran.mdp) != 0);
/*Rappel des informations saisies*/
printf("\nRecapitulatif de votre saisie:\n");
printf("\t NOM LOGIN : %s\n", fiche.login);
printf("\tMOT DE PASSE : %s\n", fiche.mdp);
/*Ecriture des informations dans le fichier*/
fwrite(&fiche, sizeof(strlogin), 1, f);
/*Fermeture du fichier*/
fclose(f);
}
---
Voila plus de goto mais un plantage de merk kd le fichier n'existe pas... executez le vs verrez.. je comprend pas...
cs_pheno
Messages postés141Date d'inscriptionmardi 30 avril 2002StatutMembreDernière intervention23 mars 20051 26 mai 2002 à 19:50
slt j ai trouve ton erreur
pour acceder a la variable login ou mdp de ta structure tu dois ecrire
fiche.login
fiche.mdp
car strlogin c est un type, c est un peu comme le type int char etc
alors que fiche c est une variable structure de type STRLOGIN
voila @++
Chevalier Pheno Starboard, membre de la Freeman-Corp