Accueil > Forum > > > > Probleme typedef struct
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
Livres en rapport
|
Derniers Blogs
[WF4] PASSAGE D'ARGUMENTS LITERAL, VISUALBASICVALUE OU LAMBDAVALUE?[WF4] PASSAGE D'ARGUMENTS LITERAL, VISUALBASICVALUE OU LAMBDAVALUE? par JeremyJeanson
Avec la sortie de la RC de Visual Studio 2010, Microsoft a mis un peu les points sur leS i en ce qui concernait le passage d'arguments. Mais nous somme un certain nombre à avoir pris ce changement comme un coup dur. Pour résumer la situation : à la sortie...
Cliquez pour lire la suite de l'article par JeremyJeanson [RIA SERVICES] INCLUDE ET DOMAINDATASOURCE[RIA SERVICES] INCLUDE ET DOMAINDATASOURCE par Audrey
Dans un de mes articles précédents , j'avais parlé des DomainDataSource avec RIA Services dans le cas d'une interface Maître - Détail. Dans le même principe, je vais parler d'une autre manière de mettre en forme ce cas d'interface avec RIA Services. Et po...
Cliquez pour lire la suite de l'article par Audrey ZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATIONZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATION par ROMELARD Fabrice
Une des nouveautés de la version V 3.0 était l'apparition de l'onglet Social qui ne fonctionnait que si le MarketPlace était activé sur son poste. Cela limitait donc son intérêt, car hors du cadre commercial USA-CANADA, peu de monde trouva...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice PRATIQUE DE SILVERLIGHT PAR ERIC AMBROSIPRATIQUE DE SILVERLIGHT PAR ERIC AMBROSI par MPOWARE
Je viens de finir la lecture du dernier livre d'
Eric Ambrosi
éditions PEARSON
Son livre donne une approche pratique de Silverlight qui sera aussi bien comprise par le développeur que par le designeur.
Tous les aspects du développement RIA sont abor...
Cliquez pour lire la suite de l'article par MPOWARE APPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NETAPPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NET par odewit
2 déclinaisons de Silverlight et 2 déclinaisons de Mono permettent dorénavant (ou permettront prochainement) de développer des applications .NET mobiles pour les principales plates-formes du marché :
Silverlight pour Symbian, basé sur Silverlight 2...
Cliquez pour lire la suite de l'article par odewit
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|