2016-05-06 6 views
0

Je suis en train d'enregistrer mon numéro dans un fichier, mais le programme se bloque:Saving valeur mpf_t à un fichier en utilisant la bibliothèque MRIP (GMP)

include stdio.h 
include mpir.h 

int main(void){ 

mpf_set_default_prec(32); //Default precision for floating points 

mpf_t my_number; 
mpf_init_set_str(my_number, "5.12345e0", 10); //Set my_number to 5.123 with decimal base (10) 

FILE *f; 
f = fopen("some.txt", "w"); 

gmp_printf("Printed number to screen: %.*Ff \n", 32, my_number); 

//Everything works until I try to save it to file: 

gmp_fprintf(f, "My saved number is: %.*Ff \n", 32, my_number); 

fclose(f); 

return 0; 
} 

Au lieu de fprintf j'ai essayé:

gmp_fscanf (f, "% F", & zbroj)

mpz_out_str (f, 10, zbroj)

sprintf (f, "% F", zbroj)

+0

Veuillez noter que vous fuyez la mémoire en n'appelant pas 'mpf_clear (my_number)'. –

Répondre

0

Il semble qu'il y ait eu un problème avec ma version x64. J'ai compilé à nouveau MPIR (cette fois-ci x32) et mis les fichiers dans le répertoire VS et cela a fonctionné.

Je pense qu'il ya des instructions spéciales pour la construction x64 que je ne suis pas: \

btw. J'ai utilisé mpf_out_str (f, 10, 0, var);

Où f est un pointeur vers un fichier, 10 est la base, 0 signifie la précision maximale et var est la variable qui sera enregistrée.