C语言 fread与fwrite(在线等)

#include<stdlib.h>
#include<stdio.h>

int main()
{
int a = 9;
int b;
FILE *f;

f = fopen ("C:\\date","wb+");
fwrite (a, sizeof(int), 1,f);
fread (b, sizeof(int), 1,f);

printf ("%d",b);
getch();

fclose(f);

return 0;
}
b为何得到不以a的值?fread与fwrite的用法到底是怎样的呀?求助。。。
你可以想像有一只“笔”在执行文件操作。

f = fopen ("C:\\date","wb+");
用读写方式打开了文件。这时“笔”悄悉是在文件开头位置。

fwrite (a, sizeof(int), 1,f);
写进一个INT整启埋乎数后,“笔”的位置移到了INT整数的后边。

fread (b, sizeof(int), 1,f);
这时去读“笔”位置开始的一个整数,是读不到a的。它读的是a后边的那个液薯整数。

建议,在 fwrite 和 fread 之间加进函数,

fseek( f, 0, SEEK_SET );
这个函数是将“笔”移动到文件的开始位置。

然后再 fread 试一试。

补充一下:你的 fread 函数调用方法写错了,应该用 b 的指针调用
fread( &b, sizeof(int), 1, f );

如果有不明白的欢迎留言。
size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );

fwrite (&a, 4,携孝1,f);
fseek( f, 0, SEEK_SET );
fread (&b, 4,辩氏稿核则1,f);