int fputs(char *string, FILE *steam);
int fputc(int ch, FILE *steam);
上述三個(gè)函數(shù)的返回值均為整型量。fprintf() 函數(shù)的返回值為實(shí)際寫(xiě)入文件中的字罕個(gè)數(shù)(字節(jié)數(shù))。如果寫(xiě)錯(cuò)誤, 則返回一
個(gè)負(fù)數(shù), fputs()函數(shù)返回0時(shí)表明將string指針?biāo)傅淖址畬?xiě)入文件中的操作成功, 返回非0時(shí), 表明寫(xiě)操作失敗。fputc()函數(shù)
返回一個(gè)向文件所寫(xiě)字符的值, 此時(shí)寫(xiě)操作成功, 否則返回EOF(文件結(jié)束結(jié)束其值為-1, 在stdio.h中定義)表示寫(xiě)操作錯(cuò)誤。
fprintf( ) 函數(shù)中格式化的規(guī)定與printf( ) 函數(shù)相同, 所不同的只是fprintf()函數(shù)是向文件中寫(xiě)入。而printf()是向屏
幕輸出。
下面介紹一個(gè)例子, 運(yùn)行后產(chǎn)后一個(gè)test.dat的文件。
例11:
#include<stdio.h>
main()
{
char *s=("That''s good news"); /*定義字符串指針并初始化*/
int i=617; /*定義整型變量并初始化*/
FILE *fp; /*定義文件指針*/
fp=fopne("test.dat", "w"); /*建立一個(gè)文字文件只寫(xiě)*/
fputs("Your score of TOEFLis", fp);/*向所建文件寫(xiě)入一串字符*/
fputc('':'', fp); /*向所建文件寫(xiě)冒號(hào):*/
fprintf(fp, "%d\n", i); /*向所建文件寫(xiě)一整型數(shù)*/
fprintf(fp, "%s", s); /*向所建文件寫(xiě)一字符串*/
fclose(fp); /*關(guān)閉文件*/
}
用DOS的TYPE命令顯示TEST.DAT的內(nèi)容如下所示:
屏幕顯示
Your score of TOEFL is: 617
That''s good news
2. 文件的順序讀操作函數(shù)
fscanf()、fgets()和fgetc()函數(shù)
函數(shù)fscanf()、fgets()和fgetc()均為文件的順序讀操作函數(shù), 其調(diào)用格式如下:
int fscanf(FILE *stream, char *format,
char fgets(char *string, int n, FILE *steam);
int fgetc(FILE *steam);
fscanf()函數(shù)的用法與scanf()函數(shù)相似, 只是它是從文件中讀到信息。fscanf()函數(shù)的返回值為EOF(即-1), 表明讀錯(cuò)誤, 否
則讀數(shù)據(jù)成功。fgets()函數(shù)從文件中讀取至多n-1個(gè)字符(n用來(lái)指定字符數(shù)), 并把它們放入string指向的字符串中, 在讀入之后
自動(dòng)向字符串未尾加一個(gè)空字符, 讀成功返回string指針, 失敗返回一個(gè)空指針。fgetc()函數(shù)返回文件當(dāng)前位置的一個(gè)字符, 讀
錯(cuò)誤時(shí)返回EOF。
下面程序讀取例11產(chǎn)生的test.dat文件, 并將讀出的結(jié)果顯示在屏幕上。





