fwrite问题,无法写入二进制文件!

时间:2010-11-28 23:59:35

标签: c integer binaryfiles fwrite

  

可能重复:
  C Programming - File - fwrite

包括.... >

int main(void)
{

  FILE *Archivo;
  int proba=5;

  Archivo=fopen("md3.dat", "ab+");
  fwrite(&proba, sizeof(int), 1, Archivo);
  fclose(Archivo);
  printf("Bye!\n\n");
}

我只是不能在二进制丝md3.dat上打印任何数字,请帮忙!

2 个答案:

答案 0 :(得分:3)

我认为OP期望fwrite表现为fprintf并在文件中写入ASCII十进制字符串,然后在输出为字节5,0,0,0时变得困惑(所有不可打印)在编辑器中打开它或使用cat将其打印到终端(或DOS上的type)时可能显示空白的字符。

如果您想撰写文字,请使用fprintf

答案 1 :(得分:1)

试试这个:

Archivo = fopen("md3.sat", "wb+");
fseek(Archivo, 0, SEEK_END);
fwrite(&proba, sizeof(int), 1, Archivo);

这应该在文件末尾写下int值。此外,您应该检查函数返回值。记住:你在C !!

int written;
Archivo = fopen("md3.sat", "wb+");
if (Archivo != NULL) {
    fseek(Archivo, 0, SEEK_END);
    written = fwrite(&proba, sizeof(int), 1, Archivo);
    printf("%d int values written!\n", written);
}