可能重复:
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 上打印任何数字,请帮忙!
可能重复:
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 上打印任何数字,请帮忙!
我认为 OP 期望fwrite
表现得像fprintf
并在文件中写入一个 ASCII 十进制字符串,然后当输出是字节(所有不可打印的字符)时感到困惑,当在编辑器中打开它或使用打印它5,0,0,0
时可能显示为空白cat
到终端(或type
在 DOS 上)。
如果要编写文本,请使用fprintf
.
尝试这个:
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);
}