c语言怎么直接将整数的值写入二进制文件?而非一串数字组成的字符串

c语言如何直接将整数的值写入二进制文件?而非一串数字组成的字符串?
用函数fprintf(pf,   "%d ",   i)所写入的是一串字符串,读出来还要进行转换,效率很低。
有没有方法直接将整数的值写入文件,并且读取的时候读取文件中的四个字节就行了?

谢谢

------解决方案--------------------
int x;
FILE *f;
...

fwrite(&x,sizeof(int),1,f);
------解决方案--------------------
fread
------解决方案--------------------
不懂LZ的意思
------解决方案--------------------
good
------解决方案--------------------
楼上几位已经阐述的很清楚拉,我在补充下:
fscanf () 与 fprintf () 函数的读写数据的基本单位是以类型为单位的数据对象。
fread () 与 fwrite () 函数读写的最小单位是字节,所以更加适合处理二进制文件。

int s;
FILE *p;
fread (&s,sizeof (int),1,p);
fwrite (&s,sizeof (int),1,p);
从s的首地址中读、写sizeof (int)长度的数据,一共读、写1次到p指向的文件的当前读写位置。