文件一旦使用完畢,應用文件關閉函數fclose把文件關閉,以避免文件的數據丟失等錯誤。
fclose函數調用的一般形式是:
fclose(文件指針);
正常完成關閉文件操作時,fclose函數返回值為0;否則返回EOF(-1)。如返回非零值則表示有錯誤發生。
對文件的讀寫操作,都是通過係統函數完成的。
1.寫字符函數(fputc函數或putc函數)
fputc()函數功能是把一個字符寫到磁盤文件中去。
其調用的一般形式為:
fputc(ch,fp);
其中ch是要輸出的字符,它可以是一個字符常量,也可以是一個字符變量。fp是文件指針變量,它從fopen函數得到返回值。上麵fputc(ch,fp)函數的作用是將字符(ch的值)輸出到fp所指向的文件中去。
fputc函數也帶回一個值:如果輸出成功,則返回值就是輸出的字符;如果輸出失敗,則返回一個EOF。
[例131]編寫程序,將字符“Z”寫到文件test.txt中,然後從文件中將此字符讀出並在屏幕上顯示。
#include
voidmain()
{FILE*fp;
fp=fopen("d:\\test.txt","w");
fputc(Z,fp);
fclose(fp);
fp=fopen("d:\\test.txt","r");
putchar(fgetc(fp));
close(fp);
}
文件test一次將字符送入,一次將字符輸出顯示在屏幕上。
2.讀字符函數(fgetc函數或getc函數)
fgetc函數從指定文件讀入一個字符。該文件必須是以讀或讀寫方式打開的。
其調用的一般形式為:
ch=fgetc(fp);
其中,fp為文件型指針變量,ch為字符變量。fgetc函數帶回一個字符,賦給ch。如果執行fgetc讀字符時遇到文件結束符,函數返回一個文件結束標誌EOF,EOF在stdio.h中定義為-1。如果想從一個磁盤文件順序讀入字符並在屏幕上顯示出來,可以運行以下程序:
ch=fgetc(fp);
while(ch!=EOF)
{putchar(ch);
ch=fgetc(fp);
}
[例132]輸出上麵例子的文件內容。
#include
voidmain()
{FILE*fp;
charch;
if((fp=fopen("d:\\test.txt","r"))==NULL)
{printf("\nCannotopenfile!");
exit(1);
}
while((ch=fgetc(fp))!=EOF)
putchar(ch);
fclose(fp);
}
運行文件,在DOS提示符下利用d:\typetest.txt命令可以看到文件內容,比較是否一致。