Scan f avant printf
kamikaz-88
Messages postés
66
Statut
Membre
-
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'essai d'ecrire une foction qui saisi un tableau de structure
le probleme est apres avoir saisi la taille du tableau
le scanf du premier parametre vient avant le printf ("saisir")
j'ai essayer fflush(stdout) mais ca n'aide pas
est ce que quelq'un peut m'aider
j'utilise gcc sous linux
et voici mon code
j'essai d'ecrire une foction qui saisi un tableau de structure
le probleme est apres avoir saisi la taille du tableau
le scanf du premier parametre vient avant le printf ("saisir")
j'ai essayer fflush(stdout) mais ca n'aide pas
est ce que quelq'un peut m'aider
j'utilise gcc sous linux
et voici mon code
#include <stdio.h>
#include<stdlib.h>
struct fleur
{
char design[100];
int cod;
float prix;
float tva;
char couleur[100];
};
struct fleur *tab_fleur(struct fleur *t,int n)
{
int i;
for ( i=0;i<n;i++)
{
printf(" saisir le code\n");
fflush(stdout);
scanf("%d",&t[i].cod);
printf(" saisir designation\n");
scanf("%s",t[i].design);
printf(" saisir le prix\n");
scanf("%f",&t[i].prix);
printf(" saisir le tva\n");
scanf("%f",&t[i].tva);
printf(" saisir le couleur\n");
scanf("%s",t[i].couleur);
}
return t;
}
int main(void)
{struct fleur fl ;
struct fleur *fl2;
int n;
int i;
printf("enter size \n ");
scanf("%d ",&n);
fl2=(struct fleur*)malloc(n*sizeof(struct fleur));
fl2= tab_fleur(&fl,n);
for ( i=0;i<n;i++)
printf(" **fleur (%d) \ndesign=%s\n code=%d\nprix=%f\ntva=%f\ncouleur=%s\n******\n",i,fl2[i].design,fl2[i].cod,fl2[i].prix,fl2[i].tva,fl2[i].couleur);
}
Configuration: Linux / Chrome 87.0.4280.88
A voir également:
- Scan f avant printf
- Scan qr code pc - Guide
- Sfc scan - Guide
- Copains d'avant qui a visité mon profil - Forum Facebook
- Retrouver mon compte copains d'avant - Forum Réseaux sociaux
- Avant browser - Télécharger - Navigateurs
2 réponses
Bonjour,
Je ne vois pas de problème particulier avec les
Par contre la ligne
Je ne vois pas de problème particulier avec les
printfet
scanfde ton code. Ça peut dépendre des valeurs saisies.
Par contre la ligne
fl2= tab_fleur(&fl,n);fait que ton code ne peut gérer qu'une seule
fleur. Tu promets à ta fonction l'adresse de n fleurs et tu lui passes l'adresse d'une unique
fleur. Il faut lui passer le buffer que tu as réservé.
fl2 = tab_fleur( fl12, n );
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 586
bonjour,
ton code fait:
quand tu écris
cela me semble normal, si le scanf de la ligne 2 n'a pas consommé tous les caractères entrés précédemment.
qu'as-tu entré précisément?
ton code fait:
printf("enter size \n ");
scanf("%d ",&n);
printf(" saisir le code\n");
fflush(stdout);
scanf("%d",&t[i].cod);
quand tu écris
le scanf du premier parametre vient avant le printf ("saisir"), je suppose que tu veux dire que le scanf de la ligne 5 lit ce que tu as entré au clavier avant l'exécution de la ligne 3.
cela me semble normal, si le scanf de la ligne 2 n'a pas consommé tous les caractères entrés précédemment.
qu'as-tu entré précisément?