redbob
Messages postés9Date d'inscriptionjeudi 17 avril 2003StatutMembreDernière intervention16 juin 2004
-
16 juin 2004 à 20:43
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 2004
-
16 juin 2004 à 21:58
J'ai un probleme avec la fonction gets().
Voici mon code:
struct piece temp;
printf("\nReference de la piece : ");
get(temp.ref);
fflush(stdin);
strupr(temp.ref);
printf("\nLibelle : ");
gets(temp.libel);
et ma structure piece:
struct piece
{
char ref[5];
char libel[30];
float pxVente;
int qteStock;
};
Alors le probleme c'est que ma var temp.ref reçoit les 2 gets()
Je sais pas comment faire, alors si quelqu'un pouvait m'aider ce serait vraiment sympa!
redbob
Messages postés9Date d'inscriptionjeudi 17 avril 2003StatutMembreDernière intervention16 juin 2004 16 juin 2004 à 21:00
Merci d'avoir répondu aussi vite.
En fait ce que j'ai voulu dire, c'est que ma variable temp.ref, au lieu de s'arreter a cinq caractères, reçoit en plus le libellé qui est saisi juste après
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 20091 16 juin 2004 à 21:13
gets(temp.ref);
temp.ref[4] = 0;
l'element ref de ta structure, declaré come il l'est, ne permet de stocker ke 4caracteres et le caractere de fin de chaine ('\0' == 0) donc verifie ke tu ne recois pas plus ke 4 caracteres, ds le cas contraire, nésite pas a augmenter la taille de ton tab...mais pense qu'un élément de ton tableau sera tjrs "perdu" du a la presence du caractere de fin de chaine !
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 20047 16 juin 2004 à 21:13
fflush(stdin); n'a pas de comportement standard, ca marche sur les compilo de ms (il parait) mais qu'elle est l'interet vu que le code n'est plus standard ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 20091 16 juin 2004 à 21:37
excuz moi de douter du standard, mais j'ai fait un prog sous TC (donc Borland) et si j'enleve les appels a cette fonction, ben il marche plus, donc au fond, cette fonction agit ...
Et le k&r n'est pas la norme ANSI, c'est mm assez != sur certains points