将数据写入二进制文件,然后将其读回

时间:2013-01-14 18:17:59

标签: c pointers file-io

我正在尝试将数据写入二进制文件,然后从文件中读回数据。数据由单个数字(整数)组成。下面是我将数据写入二进制文件的代码。但是,当我尝试回读数据并使用printf打印结果时,我得到了一个荒谬的结果:-2。

FILE *fout;
FILE *file_pointer;
int nrows = 5;

fout = fopen("matrixB.bin", "wb") //Writing to a binary file.//

fwrite(&nrows, sizeof(int), 1, fout); //Writing the number nrows to the binary file "matrixB.bin"//

file_pointer = fopen("matrixB.bin", "rb"); //Reading a binary file.//

fread(&nrows, sizeof(int), 1, file_pointer);

printf("%d", nrows); //Here -2 is printed, instead of 5.//

我的代码有什么问题?

1 个答案:

答案 0 :(得分:4)

C文件函数(freadfwrite等)的一个特征是它们通常执行缓冲I / O.

在重新打开文件之前,您的程序不会刷新和/或关闭文件。它应该。