Struture en c
perdue
-
amigo -
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
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");
}
6 réponses
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)?
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)?
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
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
Dans le main:
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 );
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 );
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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)
(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");
}