gpt4 book ai didi

c - 从二进制文件读取 mpq_t

转载 作者:行者123 更新时间:2023-11-30 17:13:21 25 4
gpt4 key购买 nike

我已将 mpq_t 写入一个名为“data”的二进制文件,现在我尝试从该文件中逐一读取 mpq_t,但我一直在该行出现段错误: gmp_printf("%Qd\n", buf )。我已经调试了一段时间,但无法弄清楚哪里出了问题。

int main(){

FILE *fp = fopen("data", "rb");
if (fp == NULL){
perror("FILE open failed");
exit(1);
}

mpq_t buf;
mpq_init(buf);

while (fread(&buf, sizeof(mpq_t), 1, fp) == 1){
gmp_printf("%Qd\n", buf);
}

fclose(fp);
return 0;
}

从文件读取后,我似乎遇到了 buf 内存问题。我也尝试过使用 malloc 来代替启动,但也没有成功。

    mpq_t *buf = (mpq_t *)malloc(sizeof(mpq_t));

if (buf == NULL){
perror("malloc failed");
exit(1);
}

while (fread(buf, sizeof(mpq_t), 1, fp) == 1){
gmp_printf("%Qd\n", *buf);
}

最佳答案

使用gmp_fprintf和gmp_fscanf进行写入和读取:

   gmp_fprintf (FILE *fp, const char *fmt, ...)
gmp_fscanf (FILE *fp, const char *fmt, ...)

关于c - 从二进制文件读取 mpq_t,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30907213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com