Comment convertir simplement un flotteur pour une chaîne de caractères en c?
FILE * fPointer;
float amount = 3.1415;
fPointer =fopen("vending.txt","w");
fprintf(fPointer ,amount);
printf("The file has been created for the first time and we added the value %f" , amount);
fclose(fPointer);
Je suis en train d'enregistrer un nombre à virgule d'un fichier texte, mais lorsque j'essaie d'exécuter ce code, il déclenche une compilation d'erreurs parce que la fonction fprintf attend le second paramètre à un tableau de caractères alors, comment puis-je convertir mon flotteur à une chaîne, donc je peux passer , je viens d'un c# arrière-plan où quelque chose comme .toString() est possible si il ya une chose comme ça en c directement jeté un flotteur pour une chaîne de caractères ?
Pourquoi la balise c# et c++ ?
pourquoi avez-vous tagged c# et c++ si vous êtes à l'aide de c??
c'était une erreur, mais que quelqu'un a déjà supprimé pour moi , merci .
Pas à cette question est dans c, alors que le lien que vous avez copié est une solution à un problème de c++
Le vote pour la ré-ouvrir en tant que post a été mal étiqueté, tags corrigé, encore dupe se réfère à une autre langue, la réponse n'est pas pertinent à sa question.
pourquoi avez-vous tagged c# et c++ si vous êtes à l'aide de c??
c'était une erreur, mais que quelqu'un a déjà supprimé pour moi , merci .
Pas à cette question est dans c, alors que le lien que vous avez copié est une solution à un problème de c++
Le vote pour la ré-ouvrir en tant que post a été mal étiqueté, tags corrigé, encore dupe se réfère à une autre langue, la réponse n'est pas pertinent à sa question.
OriginalL'auteur Fady Sadek | 2016-12-30
Vous devez vous connecter pour publier un commentaire.
Le deuxième paramètre est la chaîne de format après quoi le format des arguments suivent:
%f
ditfprintf
à écrire cet argument (amount
) en tant que représentation de chaîne de la valeur flottante.Vous pouvez trouver de la documentation et des exemples dans MSDN.
Suggérer
"%e"
au lieu de"%f"
. Ce dernier sera d'impression près de la moitié de tous lesfloat
comme"0.000000'
ou"-0.000000'
.OriginalL'auteur René Vogt
En utilisant sprintf() nous pouvons convertir de flotter à la chaîne de caractères en langage c
pour mieux comprendre voir le code ci-dessous
Espère que cela va vous aider.
OriginalL'auteur kumar
Si vous pouvez utiliser le standard C99, alors le meilleur moyen est d'utiliser
snprintf
fonction. Sur le premier appel, vous pouvez passer d'une longueur nulle (null) tampon et il sera ensuite de retour à la longueur nécessaire pour convertir la valeur à virgule flottante en une chaîne de caractères. Ensuite allouer la mémoire nécessaire en fonction de ce qu'il est retourné et ensuite de les convertir en toute sécurité.Cela résout le problème avec sprintf qui ont été discutés ici.
Exemple:
OriginalL'auteur Nikola Novak
Pour imprimer un texte différent pour chaque
float
, utilisez le format de la chaîne de"%.*e"
.FLT_DECIMAL_DIG - 1
est le nombre de chiffres nécessaires pour imprimer chaquefloat
valeur unique, sans trop de précision.À l'aide de
"%f"
imprime près de la moitié des petitesfloat
comme0.000000001f
et-1.2345e-10
comme0.000000
ou-0.000000
.À l'aide de
"%f"
permettra d'imprimer de grandesfloat
commeFLT_MAX
avec des informations détaillées texte comme "340282346638528859811704183484516925440.000000".OriginalL'auteur chux