begin process at 2012 02 11 09:53:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Probleme typedef struct


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme typedef struct

jeudi 23 mai 2002 à 22:23:03 | Probleme typedef struct

shenron

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


/*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' "
vendredi 24 mai 2002 à 02:11:26 | Re : Probleme typedef struct

Gaelle

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.

//////////////////////////////////////////////////////////
Fichier :
/////////////////////////////////////////////////////////
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>

#define TAILLE_CHAINE 11

/*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();

while( (fread(&fiche,sizeof(strlogin),1,f) !=0 ) && (trouve==0))
{
if(strcmp(fiche.login,saisiecran.login)==0)
{
while(strcmp(fiche.mdp,saisiecran.mdp)!=0)
{
printf ("MOT DE PASSE : ");
gets(saisiecran.mdp);
flushall();
}
trouve=1;
printf("Bienvenue %s",fiche.login);
}
}
fclose(f);

/*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);

/*Fermeture du fichier*/
fclose(f);
}
samedi 25 mai 2002 à 11:34:49 | Re : Probleme typedef struct

shenron

Slt,
bon il est pas mal la correction de ton code, mais y' a un bleme, il ne faut pas utiliser de goto...
je v essayer de corriger ca...
Merci
dimanche 26 mai 2002 à 19:24:22 | Re : Probleme typedef struct

shenron

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

#define TAILLE_CHAINE 11

/*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();

while( (fread(&fiche,sizeof(strlogin),1,f) !=0 ) && (trouve==0))
{
if(strcmp(fiche.login,saisiecran.login)==0)
{
while(strcmp(fiche.mdp,saisiecran.mdp)!=0)
{
printf ("MOT DE PASSE : ");
gets(saisiecran.mdp);
flushall();
}
trouve=1;
printf("Bienvenue %s",fiche.login);
}
else
{
fclose(f);
ajout();
}
}
fclose(f);

/*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("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...
dimanche 26 mai 2002 à 19:50:57 | Re : Probleme typedef struct

pheno

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


-------------------------------
Réponse au message :
-------------------------------

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


/*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' "


Cette discussion est classée dans : login, mot, printf, char, strlogin


Répondre à ce message

Sujets en rapport avec ce message

Hachage fermé problème de lecture [ par mcflysupersonic ] Bonjour je suis nouveau sur le forum est ceci est ma première question donc j'espère que je ne me suis pas trompé d'endroit pour poster.Voilà j'ai un pb de code source [ par Peabody ] Bonjour à tous,Alors voila je debute en C et mon programme a un petit problème.Voici le code source:#include #include #define maxi 5void main (void){  aide pour realiser une repertoire telephonique en langage c [ par djamel000 ] Bonjour , je souhaiterai réaliser un répertoire téléphonique à accès sécurisé(cryptage des données par mot de passe)et recherche rapide de coordonnées printf char* [ par Flow8002 ] Bonjour , J'ai un petit soucis je n'arrive pas a imprimer un char *. je m'explique , j'ai un char *test qui contiens deux valeurs. test[0]=9; test[ trier un tableau de stucture en c [ par peli20 ] [^^happy13]salut, j ai un petit probleme en c ,j espere que vous m aidiez.. bon, j essaie d elaborer un programme faisant la gestion des contact, le r problème avec tri de tableau de chaine - Aidez-moi svp [ par jaguar57 ] Bonjour,Je viens demander de l'aide car j'ai un problème de compréhension de la fonction qsort avec un tableau de chaine fourni par un fichier txt.Je Pointeurs [ par rourou2030 ] Salut à tous,j'ai des lacunes concernants les pointeurs.En fait voici mon problème:Soitunsigned char *dataunsigned char *bufferest ce que l'appelle   convertion binaire en language C [ par mogador ] Bonjour, je souhaiterais convertir n'importe quel type de fichier (txt, jpg, avi, exe ...) en fichier binaire ou plutot en fichier texte contenant un Vecteur de pointeur de char [ par noname001 ] Bonsoir à tous. J'ai un petit soucis avec un vecteur de pointeur de char. Voici premièrement sa déclaration [code=cpp] char *mots_cles[MAX_MOTS_CLES


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,998 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales