Bonjour,
je réalise un programme pour la gestion d'un inventaire pour un terminal portable laser (fonctionnant sous dos):
J'utilise une liste chaîné.
(C'est surement pas la meilleur des solutions, mais ça fait pas des masses que j'ai commencé le C :| et surtout j'ai commencé par du C++ )
Alors, j'ai commencé par une structure comme celle ci :
Code :
- struct CInvent
- {
- char emp[9]; // emplacement
- char arti[21]; // articles
- char nlot[9]; // numéro de lot
- long int qte; // quantité
- float tempe; // température
- double mouillage; // mouillage
- float degre; // degré
- struct CInvent *suiv;
- };
- l=(struct CInvent *)malloc(sizeof(struct CInvent));
|
J'effectue une écriture sur fichier standard .txt des résultats des saisie.
J'ai besoin de gérer des float (en entré et sortie) et je me pose quelles questions:
Par exemple pour la température je dois accepter xx.yy (x= chiffre avant virgule; y= chiffre après virgule)
pour le moment j'ai quelque chose comme ça qui me convient pas trop ça gère pas assez
Je vous donne l'exemple de la température:
Code :
- do {
- affiche_titre();
- printf("Temperature: " );
- scanf("%f",&l->tempe);
- }while(l->tempe < 0 || l->tempe > 99);
- [...]
- // l'écriture dans mon fichier
- fprintf(fp,"%.2f;",deb->tempe);
|
A ce stade:
- ça tronque bien en sortie les chiffres en trop après la virgule
- les chiffres avant la virgule sont bien limité de 0 à 99
Mais si je rentre un nombre trop grand d'ailleur ça ne va pas. (pas de gestion de la taille de la variable.
Est-ce la bonne solution de récuperer directement un float ou faut t-il passer par un char ou autre?
(sinon question bête, existe t-il un équivalent de itoa pour les float?)
voilà, je remercie ceux qui vont jeter un coup d'oeil à mon problème.
Message édité par gaar@ le 17-02-2005 à 12:12:39