0

我要询问的代码部分如下所示。我的 TXT 包含 1-20 除以 . 我想用这个 txt 制作一个二进制文件,这就是程序应该做的,但它只是感觉它与内存污垢有关。你能告诉我我的代码是否有错误吗?

void txt_to_bin (void)                                 
{
FILE *ft,*fb;
int a;
ft = fopen("binadatok.txt","rt");
fb = fopen("versenyazonosito.dat","wb");
while (fscanf(ft,"%d\n",&a) != EOF)
{
    fprintf(fb,"%d\n");

}

}
4

2 回答 2

1

fwrite写入二进制文件时需要使用,而不是fprintf

fwrite(&a, sizeof(a), 1, fb);
于 2013-12-06T17:50:37.310 回答
0

您没有在 fprintf(fb,"%d\n") 中提供任何值,您应该在此语句中提供 a 的输入。

void txt_to_bin (void)                                 
{
FILE *ft,*fb;
int a;
ft = fopen("binadatok.txt","rt");
fb = fopen("versenyazonosito.dat","wb");
while (fscanf(ft,"%d\n",&a) != EOF)
{
    fprintf(fb,"%d\n",a);

}

}

现在它可以工作了。

于 2013-12-06T18:13:29.607 回答