正文 第49章 文件1(3 / 3)

文件一旦使用完畢,應用文件關閉函數fclose把文件關閉,以避免文件的數據丟失等錯誤。

fclose函數調用的一般形式是:

fclose(文件指針);

正常完成關閉文件操作時,fclose函數返回值為0;否則返回EOF(-1)。如返回非零值則表示有錯誤發生。

對文件的讀寫操作,都是通過係統函數完成的。

1.寫字符函數(fputc函數或putc函數)

fputc()函數功能是把一個字符寫到磁盤文件中去。

其調用的一般形式為:

fputc(ch,fp);

其中ch是要輸出的字符,它可以是一個字符常量,也可以是一個字符變量。fp是文件指針變量,它從fopen函數得到返回值。上麵fputc(ch,fp)函數的作用是將字符(ch的值)輸出到fp所指向的文件中去。

fputc函數也帶回一個值:如果輸出成功,則返回值就是輸出的字符;如果輸出失敗,則返回一個EOF。

[例131]編寫程序,將字符“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);

[例132]輸出上麵例子的文件內容。

#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命令可以看到文件內容,比較是否一致。