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字节的大小信息,而 表示许多字节的四肢。大小和四肢均以 降低显着性顺序(即,以大写字母)写入。