我正在尝试从txt文件转换为二进制文件,txt包含来自1-20的数字 除以(输入)。只要我知道它工作正常(调试它)但也许它可能包含错误,所以你可以看到它。之后我想检查一下我的二进制文件是什么。 我想打印二进制文件进行监控。但是它打印了一段记忆污垢。 你能帮我找到代码中的问题吗?提前谢谢
void txt_to_bin (void) /*Make binary from txt*/
{
FILE *ft,*fb;
int a;
ft = fopen("binadatok.txt","rt");
fb = fopen("versenyazonosito.dat","wb");
while (fscanf(ft,"%d\n",&a) != EOF)
{
fwrite(&a,sizeof(a),1,fb);
printf("%d\n", a);
}
}
void bin_olvas(void) /*Print out the binary*/
{
FILE *f;
int k;
f = fopen("versenyazonosito.dat","rb");
while(!feof(f))
{
(fscanf(f,"%d\n",&k) != EOF);
printf("%d\n", k);
}
fclose(f);
}
答案 0 :(得分:0)
fscanf(f, "%d\n", &k)
仅对读取ASCII文件有用。您无法使用它从versenyazonosito.dat
读取二进制数据。您将不得不使用fread
或类似的东西。