Problème de tableau...
Résolu
Kuartz
Messages postés
852
Date d'inscription
Statut
Membre
Dernière intervention
-
Kuartz Messages postés 852 Date d'inscription Statut Membre Dernière intervention -
Kuartz Messages postés 852 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis un hyper débutant (mais alors ultra ultra) et j'essaye de faire un petit exercice en C et.... je n'y arrive pas :(
Voici mon code :
Mon header :
Le code ne me donne que des chiffres à la fin du programme. Et pour cause, ma fonction définit bien le tableau comme int. Mais je ne sais pas comment lui dire que c'est du texte... Une petite aide svp?
Merci d'avance.
Je suis un hyper débutant (mais alors ultra ultra) et j'essaye de faire un petit exercice en C et.... je n'y arrive pas :(
Voici mon code :
#include <stdio.h> #include <stdlib.h> #include <string.h> #include "main.h" void affiche(int *tableau, int tailleTableau); int main(int argc, char *argv[]) { int i; Joueur joueur[3]; for(i = 0 ; i < 3 ; i++) { printf("Tapez le pseudo du joueur %d\n", i + 1); scanf("%s", joueur[i].pseudo); printf("Quel est le Tag du joueur %d?\n", i + 1); scanf("%s", joueur[i].tag); } printf("\n Les 3 joueurs de cette partie sont : \n \n"); affiche(&joueur, 3); return 0; } void affiche(int tableau[], int tailleTableau) { int i; for (i = 0 ; i < tailleTableau ; i++) { printf("%d\n", tableau[i]); } }
Mon header :
typedef struct Joueur Joueur; struct Joueur { char pseudo[100]; char tag[100]; };
Le code ne me donne que des chiffres à la fin du programme. Et pour cause, ma fonction définit bien le tableau comme int. Mais je ne sais pas comment lui dire que c'est du texte... Une petite aide svp?
Merci d'avance.
A voir également:
- Problème de tableau...
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
- Imprimer tableau excel sur une page - Guide
2 réponses
J'ai changé le code ainsi, mais cette fois le programme plante à la fin...
#include <stdio.h> #include <stdlib.h> #include <string.h> #include "main.h" void affiche(char tableau[], int tailleTableau); int main(int argc, char *argv[]) { int i; Joueur joueur[3]; for(i = 0 ; i < 3 ; i++) { printf("Tapez le pseudo du joueur %d\n", i + 1); scanf("%s", &joueur[i].pseudo); printf("Quel est le Tag du joueur %d?\n", i + 1); scanf("%s", &joueur[i].tag); } printf("\n Les 3 joueurs de cette partie sont : \n \n"); affiche(&joueur, 3); return 0; } void affiche(char tableau[], int tailleTableau) { int i; for (i = 0 ; i < tailleTableau ; i++) { printf("%s\n", tableau[i]); } }
Bonjour,
Il faudrait voir la définition de Joueur. Je pense notamment à des pointeurs non initialisés qui expliqueraient tes problèmes.
En attendant, quelques remarques sur ton code :
affiche(&joueur, 3);
scanf("%s", &joueur[i].pseudo);
scanf("%s", &joueur[i].tag);
Il ne faut pas mettre &joueur mais joueur.
affiche(&joueur, 3);
Je te conseille plutôt de mettre :
De même pour for(i = 0 ; i < 3 ; i++)
Ou alors, tu peux même définir un #define TAILLE 3
Cdlt,
Il faudrait voir la définition de Joueur. Je pense notamment à des pointeurs non initialisés qui expliqueraient tes problèmes.
En attendant, quelques remarques sur ton code :
affiche(&joueur, 3);
scanf("%s", &joueur[i].pseudo);
scanf("%s", &joueur[i].tag);
Il ne faut pas mettre &joueur mais joueur.
affiche(&joueur, 3);
Je te conseille plutôt de mettre :
affiche(joueur, sizeof joueur / sizeof *joueur);
De même pour for(i = 0 ; i < 3 ; i++)
Ou alors, tu peux même définir un #define TAILLE 3
Cdlt,