pg en C
Forum Programmation : pg en C
TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique.
Pour obtenir de l'aide, inscrivez-vous gratuitement !
s'il vous plais je veux que quelqu'un m'aide avec les erreur que j'ai dans ce programme avec beaucoup de remerciemen pour vous
#include<stdio.h>
#include<stdlib.h>
struct eleve
{
char nom[20];
int anne_scolaire;
};
void main()
{
struct eleve *tab;
tab=(struct eleve*)malloc(2*sizeof(struct eleve));
for(int i=0;i<=1;i++)
{
gets((*(tab+i)).nom);
scanf("%d",(tab+i).anne_scolaire);
}
for(int j=0;j<=1;j++)
{
puts((*(tab+i)).nom);
printf("%d",(*(tab+i).anne_scolaire));
}
free(tab);
}
les erreurs que j'ai eu sont:
D:\2eme session\I205\RAPPEL c\structpers.cpp(15) : error C2228: left of '.anne_scolaire' must have class/struct/union type
D:\2eme session\I205\RAPPEL c\structpers.cpp(20) : error C2228: left of '.anne_scolaire' must have class/struct/union type
mais je croix que l'anne_scolaire est un champs de la structure eleve.pourquoi c'est faux?
merci
scanf ne prend en paramètre que des pointeurs, donc il faut ajouter le &:
scanf("%d",&((tab+i).anne_scolaire));
et pour le printf, les parenthèses sont mal mises.
Éssai juste de faire afficher un integer.anne_scolaire pour voir ca donne quoi. Si ca marche pas c'est jsute pas le bon type pour la valeur associée au champ anne_scolaire
J'avais pas vu non plus, il faut utiliser -> sur un parent pointeur, pas le . :
&((tab+i)->anne_scolaire)
Pour la flèche, c'est pareil dans le printf
en plus de CRicky (EDIT: il s'en est rendu compte
, par contre pour le printf, il y a le *):
pour avoir le membre d'une structure pointée, il faut utiliser "->" :
&((tab+i)->anne_scolaire) |
pour le scanf, il te faut purger ce qui reste dans le buffer clavier:
Code :
|
et enfin, tu utilises i dans la 2eme boucle alors que c'est j
merci beaucoup
ca marche
mais pouver vou me dire que fait exactement la fct getchar() s'il vous plais
en effet ca marchera sans toute la boucle while
elle vide tous les caractères tapés après le nombre quand tu le demandes.
si tu répond "12cfg" par exemple à la demande du nombre, cfg sera enlevé.
de même que le caratère retour à la ligne "\n" qui peut poser problème et faire sauter la deuxieme demande.
getchar lit une entrée au clavier
Il y a 582 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
