J'ai une liste de nombres qui ressemble à ceci: 1.234D+1
ou 1.234D-02
. Je veux lire le fichier en utilisant C. La fonction atof
ignorera simplement le D
et ne traduira que la mantisse.Lecture des nombres ASCII en utilisant "D" au lieu de "E" pour la notation scientifique en utilisant C
La fonction fscanf
n'acceptera pas le format '%10.6e'
car il attend un E
au lieu d'un D
dans l'exposant.
Lorsque j'ai rencontré ce problème en Python, j'ai abandonné et simplement utilisé une substitution de chaîne avant de passer de la chaîne à float. Mais en C, je suis sûr qu'il doit y avoir une autre façon. Alors comment lire un fichier avec des nombres en utilisant D
au lieu de E
pour la notation scientifique? Notez que je ne veux pas dire comment lire les chaînes elles-mêmes, mais plutôt comment les convertir en chars.
Merci. Remplacer D par E, en faisant une boucle le long d'une chaîne.
Je suis déçu que C manque de support natif pour lire la notation scientifique en utilisant 'D' au lieu de' E'. Votre code proposé est le plus proche d'une solution parfaite. Merci! – Escualo
@Arrieta: Je suis déçu qu'il ne puisse pas analyser les nombres où la lettre Q apparaît à la place du chiffre 0 (zéro). Il semble que les concepteurs de bibliothèques n'aient pas compris à quel point nos exigences sont essentielles pour tant de programmes ... ;-) –