Question d'ecriture ? - C - Programmation
Marsh Posté le 11-01-2006 à 01:23:41
Gattuso a écrit : Voici le code complet que j'avais poste:
|
Ben déjà, tant que tu réserveras pas de place pour stocker tes chiffres dans ton pointeur "chiffre" tu obtiendras un comportement indéterminé
En revanche, tel que je vois ton algo, il va merder si tu lui passes un truc de ce style "123.456.789" à cause du "while (isdigit(**ligne) || **ligne == '.')"
De plus, il ne donnera rien si tu lui passes ".123" à cause du premier "if (isdigit(**ligne))"
Pourquoi tu réinventes la roue alors que tu as "strtof()" =>
Code :
|
Marsh Posté le 11-01-2006 à 06:47:56
Sve@r a écrit : Ben déjà, tant que tu réserveras pas de place pour stocker tes chiffres dans ton pointeur "chiffre" tu obtiendras un comportement indéterminé
|
En utilisant le sprintf,je n'aurais pas besoin de faire comme j'avais fait mais comment est ce que je fait ensuite pour faire avancer **ligne.
Par exemple si j'ai :
12.257 mot
j'analyse 12.257 qui est correctement ecrit et après cette analyse,je souhaite que *ligne pointe sur mot
Marsh Posté le 11-01-2006 à 08:48:26
Sve@r a écrit :
|
strtof() est C99. Je recommande plutôt strtod() qui est plus portable et qui incite à utiliser les double au profit des float, ce qui est une Bonne Chose ©
Marsh Posté le 15-01-2006 à 12:42:18
Gattuso a écrit : En utilisant le sprintf,je n'aurais pas besoin de faire comme j'avais fait mais comment est ce que je fait ensuite pour faire avancer **ligne. |
Avec "while (strtok())" tu peux faire pointer un pointeur sur chaque mot de ta ligne
Marsh Posté le 10-01-2006 à 21:35:24
Voici le code complet que j'avais poste:
http://forum.hardware.fr/hardwaref [...] 2860-1.htm
Bonjour,
en remplaçant cette partie du code par la suivante,je n'obtiens plus de seg fault.
Est ce que quelqu'un pourrait me dire pour quelle raison cela fonctionne dans un cas et pas dans l'autre.
Merci