我要问的代码部分看起来像这样。 我的TXT包含1-20的数字除以。我想制作一个BINARY文件 从这个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");
}
}
答案 0 :(得分:1)
在写入二进制文件时,您需要使用fwrite
,而不是fprintf
:
fwrite(&a, sizeof(a), 1, fb);
答案 1 :(得分: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);
}
}
现在它会起作用。