包括.... >
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上打印任何数字,请帮忙!
答案 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);
}