0

我正在尝试将数据写入二进制文件,然后从文件中读回数据。数据由单个数字(整数)nrows 组成。下面是我将数据写入二进制文件的代码。但是,当我尝试读回数据并使用 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.//

我的代码有什么问题?

4

1 回答 1

4

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

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

于 2013-01-14T18:20:01.080 回答