我刚开始摆弄GMP,我似乎不能正确打印数字。这是我正在尝试的:
#include <stdio.h>
#include <stdlib.h>
#include "gmp.h"
int main(){
mpz_t n;
mpz_init (n);
mpz_set_ui(n, 2);
gmp_printf("attempt 1: %d \n", n);
gmp_printf("attempt 2: %Z \n", n);
return 0;
}我知道这一定很简单..。但我就是看不出来。
我的输出是:
attempt 1: 1606416528
attempt 2: Z 我想我可能用错了mpz_set_ui ...
编辑:
%Zd工作我也尝试了%n,我认为它会工作,但没有...在这方面肯定需要一些帮助。
发布于 2012-07-24 19:54:05
您使用mpz_set_ui是正确的。
gmp_printf("attempt 1: %d \n", n);
gmp_printf("attempt 2: %Z \n", n);以上两种方法都不起作用,因为it 实际上是:
gmp_printf("attempt 3: %Zd \n", n);因为这是gmp_printf要求的。
在GMP here中有一个相当完整的处理格式化输出字符串的方法。
https://stackoverflow.com/questions/11630096
复制相似问题