Un pb sur les structures personnalisées
Résolu
M@teo
-
M@teo -
M@teo -
Bonjour à tous,
J'ai commencé à faire des programmes en C il n'y a pas longtemps et j'en suis à la création de structures personnalisées, et j'ai essayé de faire un petit programme, mais il y a plein d'erreurs que je ne comprends pas. voici mon programme:
9. #include <stdio.h>
10. #include <stdlib.h>
11. #include <string.h>
12.
13.
14. typedef struct Personne Personne;
15. struct Personne
16. {
17. char prenom[100];
18. char nom[100];
19. int age;
20. char ville[100];
21. char adresse[100];
22. };
23.
24.
25. void Infos_joueur(Personne joueur[])
26. {
27. printf("Votre nom: ");
28. scanf("%s", joueur.prenom);
29. printf("%s comment? %s ", joueur.prenom, joueur.prenom);
30. scanf("%s", joueur.nom);
31. print("Quel est votre age %s %s? ", joueur.prenom, joueur.nom);
32. scanf("%d", joueur.age);
33. printf("Vous habitez a: ");
34. scanf("%s", joueur.ville);
35. prnitf("Votre adresse est: ");
36. scanf("%s", joueur.adresse);
37.
38. }
39.
40.
41. int main(int argc, char *argv[])
42. {
43.
44. Personne joueur[100]={"", "", "", "", 0};
45. int nombre_de_joueurs=0;
46. do
47. {
48. printf("Combien y a-t-il de joueurs (100 max, 1 min)? ");
49. scanf("%d", &nombre_de_joueurs);
50. }while (nombre_de_joueurs<1||nombre_de_joueurs>100);
51.
52.
53. int i=0;
54. while (i=0, i<nombre_de_joueurs, i++)
55. {
56. Infos_joueur(joueur[i]);
57. printf("Fiche d'identite\n=================\nNom: %s\nPrenom: %s\nAge: %d\nVille: %s\nAdresse: %s\n\n");
58. }
59.
60. return 0;
61. }
Et les (nombreuses) erreurs sont:
In function 'Infos_joueur':|
|28|error: request for member 'prenom' in something not a structure or union|
error: request for member 'prenom' in something not a structure or union|
|29|error: request for member 'prenom' in something not a structure or union|
|30|error: request for member 'nom' in something not a structure or union|
|31|warning: implicit declaration of function 'print'|
|31|error: request for member 'prenom' in something not a structure or union|
|31|error: request for member 'nom' in something not a structure or union|
|32|error: request for member 'age' in something not a structure or union|
|34|error: request for member 'ville' in something not a structure or union|
|35|warning: implicit declaration of function 'prnitf'|
|36|error: request for member 'adresse' in something not a structure or union|
||In function 'main':|
|44|warning: missing braces around initializer|
|44|warning: (near initialization for 'joueur[0]')|
|44|warning: initialization makes integer from pointer without a cast|
|54|warning: value computed is not used|
|56|error: incompatible type for argument 1 of 'Infos_joueur'|
|25|note: expected 'struct Personne *' but argument is of type 'Personne'|
|57|warning: too few arguments for format|
||=== Build finished: 10 errors, 7 warnings ===|
Quelq'un aurait-il une solution s'il vous plaît? Merci d'avance.ig>
J'ai commencé à faire des programmes en C il n'y a pas longtemps et j'en suis à la création de structures personnalisées, et j'ai essayé de faire un petit programme, mais il y a plein d'erreurs que je ne comprends pas. voici mon programme:
9. #include <stdio.h>
10. #include <stdlib.h>
11. #include <string.h>
12.
13.
14. typedef struct Personne Personne;
15. struct Personne
16. {
17. char prenom[100];
18. char nom[100];
19. int age;
20. char ville[100];
21. char adresse[100];
22. };
23.
24.
25. void Infos_joueur(Personne joueur[])
26. {
27. printf("Votre nom: ");
28. scanf("%s", joueur.prenom);
29. printf("%s comment? %s ", joueur.prenom, joueur.prenom);
30. scanf("%s", joueur.nom);
31. print("Quel est votre age %s %s? ", joueur.prenom, joueur.nom);
32. scanf("%d", joueur.age);
33. printf("Vous habitez a: ");
34. scanf("%s", joueur.ville);
35. prnitf("Votre adresse est: ");
36. scanf("%s", joueur.adresse);
37.
38. }
39.
40.
41. int main(int argc, char *argv[])
42. {
43.
44. Personne joueur[100]={"", "", "", "", 0};
45. int nombre_de_joueurs=0;
46. do
47. {
48. printf("Combien y a-t-il de joueurs (100 max, 1 min)? ");
49. scanf("%d", &nombre_de_joueurs);
50. }while (nombre_de_joueurs<1||nombre_de_joueurs>100);
51.
52.
53. int i=0;
54. while (i=0, i<nombre_de_joueurs, i++)
55. {
56. Infos_joueur(joueur[i]);
57. printf("Fiche d'identite\n=================\nNom: %s\nPrenom: %s\nAge: %d\nVille: %s\nAdresse: %s\n\n");
58. }
59.
60. return 0;
61. }
Et les (nombreuses) erreurs sont:
In function 'Infos_joueur':|
|28|error: request for member 'prenom' in something not a structure or union|
error: request for member 'prenom' in something not a structure or union|
|29|error: request for member 'prenom' in something not a structure or union|
|30|error: request for member 'nom' in something not a structure or union|
|31|warning: implicit declaration of function 'print'|
|31|error: request for member 'prenom' in something not a structure or union|
|31|error: request for member 'nom' in something not a structure or union|
|32|error: request for member 'age' in something not a structure or union|
|34|error: request for member 'ville' in something not a structure or union|
|35|warning: implicit declaration of function 'prnitf'|
|36|error: request for member 'adresse' in something not a structure or union|
||In function 'main':|
|44|warning: missing braces around initializer|
|44|warning: (near initialization for 'joueur[0]')|
|44|warning: initialization makes integer from pointer without a cast|
|54|warning: value computed is not used|
|56|error: incompatible type for argument 1 of 'Infos_joueur'|
|25|note: expected 'struct Personne *' but argument is of type 'Personne'|
|57|warning: too few arguments for format|
||=== Build finished: 10 errors, 7 warnings ===|
Quelq'un aurait-il une solution s'il vous plaît? Merci d'avance.ig>
A voir également:
- Un pb sur les structures personnalisées
- Comment mettre une sonnerie personnalisée sur android - Guide
- Comment faire une bordure de page personnalisée sur word - Guide
- Structure d'un rapport de stage - Guide
- Étiquettes vin personnalisées gratuites télécharger ✓ - Forum Logiciels
- Dans son restaurant, igor utilise une application pour gérer les réservations. dans le schéma (structure) de la base de données de l’application représenté ci-dessous : de quoi « telephone » est-il le nom ? de quoi « reservations » est-il le nom ? associez chaque terme avec un attribut, une donnée, un enregistrement, une table, une valeur ou une variable. - Forum Webmastering
1 réponse
Bonsoir,
Alors, je te propose une solution qui fonctionne mais qui n'est pas obligatoirement bien codée. En tout cas, si je devais le faire, je ferai comme ça.
Attention à tes "printf", parce que tu avais écrit : "prnitf" et "print"
Et ce n'est pas un "while", mais un "for" avec ";" comme séparateur.
Alors, je te propose une solution qui fonctionne mais qui n'est pas obligatoirement bien codée. En tout cas, si je devais le faire, je ferai comme ça.
#include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct Personne Personne; struct Personne { char prenom[100]; char nom[100]; int age; char ville[100]; char adresse[100]; }; Personne Infos_joueur() { Personne j_temp; printf("Votre nom: "); scanf("%s", j_temp.prenom); printf("%s comment? %s ", j_temp.prenom, j_temp.prenom); scanf("%s", j_temp.nom); printf("Quel est votre age %s %s? ", j_temp.prenom, j_temp.nom); scanf("%d", &j_temp.age); printf("Vous habitez a: "); scanf("%s", j_temp.ville); printf("Votre adresse est: "); scanf("%s", j_temp.adresse); return j_temp; } void affiche(Personne joueur) { printf("Fiche d'identite\n=================\nNom: %s\nPrenom: %s\nAge: %d\nVille: %s\nAdresse: %s\n\n",joueur.nom,joueur.prenom,joueur.age,joueur.ville,joueur.adresse); } int main(int argc, char *argv[]) { Personne joueur[100]; int nombre_de_joueurs=0; int i=0; do { printf("Combien y a-t-il de joueurs (100 max, 1 min)? "); scanf("%d", &nombre_de_joueurs); } while (nombre_de_joueurs<1 || nombre_de_joueurs>100); for (i=0; i<nombre_de_joueurs; i++) { joueur[i] = Infos_joueur(); } // Affichage des joueurs for (i=0; i<nombre_de_joueurs; i++) { affiche(joueur[i]); } return 0; }
Attention à tes "printf", parce que tu avais écrit : "prnitf" et "print"
Et ce n'est pas un "while", mais un "for" avec ";" comme séparateur.
M@teo
Merci pour cette correction!