1
我正在使用MPIR/Ubuntu 14.04。使用MPIR將大量數字寫入文件
我有大的整數,有很多的數字,如2^1920,不知道如何將其寫入文件* .TXT
FILE *result;
result=fopen("Number.txt","a+");
gmp_fprintf(result,"%d",xyz);
fclose(result);
沒有工作。
我還有其他的選擇嗎?
我正在使用MPIR/Ubuntu 14.04。使用MPIR將大量數字寫入文件
我有大的整數,有很多的數字,如2^1920,不知道如何將其寫入文件* .TXT
FILE *result;
result=fopen("Number.txt","a+");
gmp_fprintf(result,"%d",xyz);
fclose(result);
沒有工作。
我還有其他的選擇嗎?
的gmp_printf()
函數(因此隨後gmp_fprintf()
以及)需要mpz_t
對象特殊格式說明(我想xyz
是)。你應該使用%Zd
而不是簡單的%d
,這是行不通的。要迂腐,它是undefined behavior使用不足的f.s.在C.
如果您不需要「全功能」格式化輸出,那麼你可能還看一看mpz_out_str()
,即允許指定的基礎(如2或10):
size_t mpz_out_str (FILE *stream, int base, const mpz_t op)
或者您可以使用mpz_out_raw()
功能只是「轉儲」全數字,因爲它是二進制格式存儲:在標準輸入輸出流流
size_t mpz_out_raw (FILE *stream, const mpz_t op)
輸出運算,在原始的二進制格式。該整數是用便攜式格式寫成的,其中有4字節的大小信息,而 表示許多字節的四肢。大小和四肢均以 降低顯着性順序(即,以大寫字母)寫入。