小编Jon*_*now的帖子

如何在C中从二进制文件读取到文本文件?

我在从二进制文件复制和写入文本文件时遇到问题。我编写了一个能够从文本文件复制并写入二进制文件的程序,但我不能反过来。

这是我遇到问题的功能:

void CopyBin2Text(char* rafname, char* txtname)
{

FILE * fraf = fopen(rafname,"rb");
FILE * ftxt = fopen(txtname,"r+");

//READ FROM BINARY FILE
struct PERSON p;
int ByteOfBin;


printf("ID \t NAME \t\t BALANCE \n");
printf("---------------------------------------\n");
Run Code Online (Sandbox Code Playgroud)

当我运行我的程序时,它在打印上述语句后停止在这里

  while(!feof(fraf))
  {
       fscanf(fraf, "%d %s %f", &p.ID, p.name, &p.balance);

    ByteOfBin = ((p.ID/10-1)*sizeof(p));
    fseek(ftxt,ByteOfBin, SEEK_SET);
    fwrite((char *)&p, sizeof(p), 1, ftxt);

  }


fclose(fraf);
fclose(ftxt);
}
Run Code Online (Sandbox Code Playgroud)

我注意到的另一个问题是文本文件变得太大而无法打开。结果是我必须删除文本文件并重新创建它。任何人都可以解释导致这种情况发生的原因吗?

c binary binaryfiles file text-files

1
推荐指数
1
解决办法
6917
查看次数

标签 统计

binary ×1

binaryfiles ×1

c ×1

file ×1

text-files ×1