Struture en c

perdue -  
 amigo -
Bonjour,

Voici mon programme qui doit lire et afficher cette structure:

les erreurs à la compilation
Compiling...
61.c
F:\61.c(22) : error C2054: expected '(' to follow 'Fiche'
F:\61.c(22) : error C2085: 'Lire_chaine' : not in formal parameter list
F:\61.c(23) : error C2085: 'Afficher_chaine' : not in formal parameter list
F:\61.c(30) : error C2085: 'main' : not in formal parameter list
F:\61.c(30) : error C2143: syntax error : missing ';' before '{'
F:\61.c(53) : error C2017: illegal escape sequence
Error executing cl.exe.

61.exe - 6 error(s), 0 warning(s)

on peut l'aider à corriger??

merci

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

#define NOM 30
#define PRE 25

struct fiche_membre {

	char nom_membre[NOM];
	char prenom_membre[PRE];
	int num_membre;
	int age_membre;
	float montant_ardoise;
};

typedef struct fiche_membre Fiche

void Lire_chaine (char *, int);
void Afficher_chaine (char *p, int nb, int MAX);

//void Lire_chaine (Fiche);
//void Affiche_chaine(Fiche);

void main (void)

{
	struct Fiche membre;

	
	
	
	
	printf("Bonjour,veuillez indiquer:\n\n");

	printf("Votre Nom: ");

	//Lire_chaine (Fiche);

	Lire_chaine (membre.nom_membre,NOM);

	printf("\nVotre Prenom: ");

	//Lire_chaine (Fiche);

	Lire_chaine (membre.prenom_membre,PRE);

    do
	{
		printf("Entrez votre numero de membre: [1-250]"\n);
		scanf("%d",&membre.num_membre);

	}while(membre.num_membre < 1 || membre.num_membre >250);

	do
	{
		printf("Entrez votre age:[18-99]\n");
		scanf("%d",&membre.age_membre);
	}while (membre.age_membre < 18 || membre.age_membre > 99);

	do
	{
		printf("Entrez le montant t':[0-500]\n");
		scanf("%d",&membre.m que vous devez au caféntant_ardoise);
	}while (membre.montant_ardoise < 0 || membre.montant_ardoise > 500);
	
	system("cls");

	printf("Voici vos infos:\n");
	printf(" Votre Nom:\n");
	Afficher_chaine (membre.nom_membre);
	printf("Votre prenom:\n");
	Afficher_chaine(membre.prenom_membre);
	printf("Votre numero de membre:\n", membre.num_membre);
	printf("Votre Age:\n",membre.age_membre);
	printf("Vous devez au café,un montant de:\n", membre.montant_ardoise);
	




}


void Lire_chaine(char *vchar, int MAX)

//void Lire_chaine (Fiche)

{
	char a;
	int cpte;

	//char *vchar;
	//int MAX;

	cpte=0;

	do
	{
		fflush(stdin);
		a = getchar();
		a = toupper(a);

	}while(a<'A' || a>'Z');

	while((cpte<MAX-1) && (a !='\n'))
	{
		*vchar = a;
		vchar++;
		cpte++;

		do
		{
			a = getchar();

			if(a != '-' && a!='\n')
			{
				a = toupper(a);
			}

		}while((a<'A' || a>'Z') && a != '-' && a!='\n');
	}

	*vchar = '\0';

} 





void Afficher_chaine (char *p, int nb, int MAX)

//void Afficher_chaine (Fiche)
{
     char *pi,*pj;
	 //char *p;

//	 int nb;
//	 int MAX;

     for(pi=p;pi<p+nb*MAX;pi+=MAX)
     {
          
          printf("%s",pi);
          printf("  ");
     }
     printf("\n");
}



Configuration: Windows XP
Firefox 2.0.0.12

6 réponses

  1. Humph
     
    typedef struct fiche_membre Fiche ;
    
    0
  2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    voici quelques erreurs

    cette ligne doit se finir avec un ;

    typedef struct fiche_membre Fiche;

    Tu as utilisé un typedef donc le mot struct ne doit plus être utilisé

    Au lieu de
    struct Fiche membre;
    tu dois écrire tout simplement
    Fiche membre;

    Et oublie fflush(stdin) qui ne sers à rien.

    A toi de voir pour la suite.
    Pourquoi utliser la fonction Lire_chaine quand il y a des fonctions tout prêtes (scanf, fgets)?
    0
  3. amigo
     
    bonsoir,

    j'ai ai trouvé d'autres

    scanf("%d",&membre.m que vous devez au caféntant_ardoise); &membre.m que vous devez au caféntant_ardoise

    tu déclares
    void Afficher_chaine (char *p, int nb, int MAX);

    et tu appelle
    Afficher_chaine (membre.nom_membre); il manque nb et MAX
    0
  4. Humph
     
    Dans le main:
    	printf("Votre numero de membre:\n", membre.num_membre);
    	printf("Votre Age:\n",membre.age_membre);
    	printf("Vous devez au café,un montant de:\n", membre.montant_ardoise);
    


    rintf prend en premier paramètre une chaîne de format décrivant où insérer les paramètres suivants.

    Par exemple:
    <code>
    char c = 'e';
    int i = 24;
    char *s = "bonjour";
    unsigned int u = 22;
    float f = 1.35f;

    printf( "c vaut %c, i vaut %d en décimal et %x en hexadécimal, s vaut %s, u vaut %u et f vaut %f\n", c, i, i, s, u, f );
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. perdue
     
    voici mon nouveau code mais il y toujours 2 erreurs , les voici:

    (77) : error C2198: 'Afficher_chaine' : too few actual parameters
    (79) : error C2198: 'Afficher_chaine' : too few actual parameters
    Error executing cl.exe.

    2 error(s), 0 warning(s)

    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
    
    #define NOM 30
    #define PRE 25
    
    struct fiche_membre {
    
    	char nom_membre[NOM];
    	char prenom_membre[PRE];
    	int num_membre;
    	int age_membre;
    	float montant_ardoise;
    };
    
    //typedef struct fiche_membre Fiche
    
    typedef struct fiche_membre Fiche ;
    
    void Lire_chaine (char *, int);
    void Afficher_chaine (char *p, int nb, int MAX);
    
    //void Lire_chaine (Fiche);
    //void Affiche_chaine(Fiche);
    
    void main (void)
    
    {
    	//struct Fiche membre;
    
    
    	Fiche membre; 
    	
    	
    	
    	printf("Bonjour,veuillez indiquer:\n\n");
    
    	printf("Votre Nom: ");
    
    	//Lire_chaine (Fiche);
    
    	Lire_chaine (membre.nom_membre,NOM);
    
    	printf("\nVotre Prenom: ");
    
    	//Lire_chaine (Fiche);
    
    	Lire_chaine (membre.prenom_membre,PRE);
    
        do
    	{
    		printf("Entrez votre numero de membre: [1-250]\n");
    		scanf("%d",&membre.num_membre);
    
    	}while(membre.num_membre < 1 || membre.num_membre >250);
    
    	do
    	{
    		printf("Entrez votre age:[18-99]\n");
    		scanf("%d",&membre.age_membre);
    	}while (membre.age_membre < 18 || membre.age_membre > 99);
    
    	do
    	{
    		printf("Entrez le montant que vs devez au café:[0-500]\n");
    		scanf("%d",&membre.montant_ardoise);
    	}while (membre.montant_ardoise < 0 || membre.montant_ardoise > 500);
    	
    	system("cls");
    
    	printf("Voici vos infos:\n");
    	printf(" Votre Nom:\n");
    	Afficher_chaine (membre.nom_membre,NOM/*,nb,MAX*/);
    	printf("Votre prenom:\n");
    	Afficher_chaine(membre.prenom_membre,PRE/*,nb,MAX*/);
    	printf("Votre numero de membre:\n", membre.num_membre);
    	printf("Votre Age:\n",membre.age_membre);
    	printf("Vous devez au café ,un montant de:\n", membre.montant_ardoise);
    
    }
    
    
    void Lire_chaine(char *vchar, int MAX)
    
    //void Lire_chaine (Fiche)
    
    {
    	char a;
    	int cpte;
    
    	//char *vchar;
    	//int MAX;
    
    	cpte=0;
    
    	do
    	{
    		fflush(stdin);
    		a = getchar();
    		a = toupper(a);
    
    	}while(a<'A' || a>'Z');
    
    	while((cpte<MAX-1) && (a !='\n'))
    	{
    		*vchar = a;
    		vchar++;
    		cpte++;
    
    		do
    		{
    			a = getchar();
    
    			if(a != '-' && a!='\n')
    			{
    				a = toupper(a);
    			}
    
    		}while((a<'A' || a>'Z') && a != '-' && a!='\n');
    	}
    
    	*vchar = '\0';
    
    } 
    
    
    
    
    
    void Afficher_chaine (char *p, int nb, int MAX)
    
    //void Afficher_chaine (Fiche)
    {
         char *pi,*pj;
    	 //char *p;
    
    //	 int nb;
    //	 int MAX;
    
         for(pi=p;pi<p+nb*MAX;pi+=MAX)
         {
              
              printf("%s",pi);
              printf("  ");
         }
         printf("\n");
    }
    
    
    0
  7. amigo
     
    RE:

    Afficher_chaine (membre.nom_membre,NOM/*,nb,MAX*/);

    La fonction
    void Afficher_chaine (char *p, int nb, int MAX)
    attend 3 paramètres *p, nb et MAX et tu n'en passe qu'un seul puisque /*,nb,MAX*/ c'est du commentaire

    or la fonction a besoin de ces paramètres
    for(pi=p;pi<p+nb*MAX;pi+=MAX)
    0