下面程序把一個浮點數組以二進制方式寫入文件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);
該函數將輸出緩沖區的內容實際寫入文件中,而將輸入緩沖區的內容清除掉。