1.寫字符串函數(fputs)
fputs函數的一般調用形式為:
fputs(字符串,fp);
其中,fp為待寫入文件的文件指針,字符串可以是字符串常量,也可以是指向字符串的指針或字符數組名。
fputs函數的功能是向指定的文件寫入一串字符。該函數對應於標準I/O函數puts,但兩者有區別。
寫入文件時將寫入字符串後的NULL字符丟掉(即NULL字符不寫到文件中去,而puts函數將把NULL字符換成換行字符輸出)。該函數的返回值是一個int類型的數據,當寫入成功時返值為0,不成功時返回非0值。
如fputs("China",fp);
2.讀字符串函數(fgets)
fgets函數調用的一般形式為:
fgets(字符串,n,fp);
如fgets(str,n,fp);
從fp指向的文件輸入n-1個字符,並把它們放到字符數組str中。如果在讀入n-1個字符結束之前遇到換行符或EOF,讀入即結束。字符串讀入後在最後加一個“\0”字符,fgets函數返回值為字符串的首地址。
該函數類似於標準I/O函數gets,兩者之間的區別在於gets遇到一個換行字符時將其轉換成NULL字符,而fgets函數不進行這種轉換,它把遇到的換行字符作為一普通字符來處理。輸入時,若遇到EOF、指定的字符個數已讀完或換行字符,fgets函數總是在讀入的字符串後自動加上一個NULL字符。
[例133]在已知test.txt文件中包含字符串“Cprogram”,利用fgets函數讀取該文本文件。
#include
#include
voidmain()
{FILE*fp;
charstr[50];
if((fp=fopen("d:\\test.txt","r"))==NULL)
{printf("cannotopenthe%s\n");
exit(1);
}
fgets(str,11,fp);
printf("\n%s",str);
fclose(fp);
}
此程序的功能是從文件讀取一行字符串,輸出到屏幕上。
下麵的兩個函數專門針對二進製數據塊進行操作。
1.數據塊的寫文件函數fwrite
fwrite函數的一般調用形式為:
fwrite(buffer,size,count,fp);
其中:
(1)buffer是一個指針,在fwrite函數中,它用來指出數據的輸出地址;
(2)size是指每次要寫的字節數;
(3)count是指要讀寫多少個size大小的數據項;
(4)fp是文件型指針。
注意:每次完成寫操作(fwrite)後必須關閉流(fclose)。
[例134]編寫程序,將數組中的數寫進文件test.txt中。
#include
voidmain()
{intx[5]={1,2,3,4,5},i;
FILE*fp;
fp=fopen("d:\\test.txt","wb");
for(i=0;i
voidmain()
{inty[5],i;
FILE*fp;
fp=fopen("d:\\test.txt","rb");
for(i=0;i