C语言基本教程(三)输入输出函数及节制流程语句(11)
下面措施把一个浮点数组以二进制方法写入文件test_b.dat中。
例14:
#include <stdio.h>
main()
{
float f[6]={3.2, -4.34, 25.04, 0.1, 50.56, 80.5};
/*界说浮点数组并初始化*/
int i;
FILE *fp;
fp=fopen("test_b.dat", "wb"); /*建设一个二进制文件只写*/
fwrite(f, sizeof(float), 6, fp);/*将6个浮点数写入文件中*/
fclose(fp); /*封锁文件*/
}
下面例子从test_b.dat文件中读100个整型数, 并把它们放到dat数组中。
例15:
#include <stdio.h>
main()
{
FILE *fp;
int dat[100];
fp=fopen("test_b.dat", "rb");/*打开一个二进制文件只读*/
if(fread(dat, sizeof(int), 100, fp)!=100)
/*判定是否读了100个数*/
{
if(feof(fp))
printf("End of file"); /*不到100个数文件竣事*/
else
printf("Read error"); /*读数错误*/
fclose(fp); /*封锁文件*/
}
留意:
当用尺度文件函数对文件举办读写操纵时,首先将所读写的内容放进缓冲区,即写函数只对输出缓冲区举办操纵,读函数只对输入缓冲区举办操纵。譬喻向一个文件写入内容,所写的内容将首先放在输出缓冲区中,直到输出缓冲区存满或利用fclose()函数封锁文件时,缓冲区的内容才会写入文件中。若无fclose()函数,则不会向文件中存入所写的内容或写入的文件内容不全。有一个对缓冲区举办刷新的函数,即fflush(),其挪用名目为:
int fflush(FILE *stream);
该函数将输出缓冲区的内容实际写入文件中,而将输入缓冲区的内容排除去。