L'écriture d'un double type de valeur dans un fichier texte

Le code ci-dessous est l'écriture des caractères illisibles dans le fichier texte:

int main () 
{
    ofstream myfile ("example.txt");

    if (myfile.is_open())
    {
        double value       = 11.23444556;
        char   *conversion = (char *)&value;
        strcat (conversion, "
int main () 
{
ofstream myfile ("example.txt");
if (myfile.is_open())
{
double value       = 11.23444556;
char   *conversion = (char *)&value;
strcat (conversion, "\0");
myfile.write (conversion, strlen (conversion));
myfile.close();
}   
return 0;
}
"
); myfile.write (conversion, strlen (conversion)); myfile.close(); } return 0; }

Je veux voir le nombre écrit dans le fichier 🙁 Conseils s'il vous plaît.

MODIFIER
Voir les réponses ci-dessous, j'ai modifié le code comme:

int main () 
{
    ofstream myfile ("example.txt");

    if (myfile.is_open())
    {
        double value       = 11.23444556;

        myfile << value;
        myfile.close();
    }   

    return 0;
}

Ce produit le putput: 11.2344 bien que le nombre réel est 11.23444556. Je veux le numéro complet.

Éditer le post pour informer tout le monde:
Les caractères illisibles sont dues à ofstream l'écriture de la fonction:

C'est un non formaté fonction de sortie

Cette citation est tirée de: http://www.cplusplus.com/reference/iostream/ostream/write/

La valeur par défaut est l'affichage 6 chiffres, si vous voulez plus de précision, vous pouvez faire myfile << setprecision(10) << value; pour obtenir 10 chiffres dans le nombre.
Persson: pour obtenir 10 chiffres dans le nombre, std::fixed est également nécessaire, ou bien les zéros de fin willn'pas être imprimé.
Le moulage d'un double comme ça, autres que de mal dans ce cas, viole stricte aliasing règle, d'une façon ou l'autre, votre code n'aurait pas travaillé.
Quelle est donc la bonne façon de casting?
Vous avez besoin de faire une union avec le double et le type que vous voulez jeter, ou à l'utilisation memcopy. Le dernier sur les récentes compilateurs doivent être optimisées à l'écart et le code résultant serait exactement ce que vous attendez, mais formellement correct. Check this out: stackoverflow.com/questions/4163126/...

OriginalL'auteur Aquarius_Girl | 2011-06-03