-1

可能重复:
C 编程 - 文件 - 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 上打印任何数字,请帮忙!

4

2 回答 2

3

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

如果要编写文本,请使用fprintf.

于 2010-11-29T00:46:48.417 回答
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);
}
于 2010-11-29T00:03:05.110 回答