fprintf與fscanf語法應用
學過C語言的,對printf和scanf函式肯定不會陌生(如果不知道,那說明你就沒學過C語言),這兩個函式分別是格式化輸出和格式化輸入函式,按照指定的格式輸入資料或者在螢幕上輸出資料。
fprintf函式和fscanf函式和printf和scanf相比,就是多了個f字首,這個f當然就是指的file,也就是檔案了,後兩者是操作的物件是終端裝置,前者則是針對磁碟檔案的操作,因此fprintf函式和fscanf函式就是了C語言中檔案的格式化輸入輸出函式。
學C語言,老師就要佈置作業的吧,作業做什麼呢?一般都是做學生成績管理系統吧,那就要設計個數據結構儲存學生的資訊吧,姓名、學號、成績等等的,用什麼好呢,那當然是
{
char chName[20]; //姓名
int nID; //學號
float fScores[3]; //3門課的成績
};
上面就是一個比較簡單的用於儲存學生成績資訊的結構體型別了,其中包括學生的姓名、學號以及三門課的成績,下面知蟻就介紹如何使用fprintf函式和fscanf函式來讀寫這種型別的資料。
fprintf函式和fscanf函式呼叫方式
fprintf(檔案結構指標,格式字串,輸出表列);
fscanf(檔案結構指標,格式字串,輸出表列);
兩個函式的引數都一樣,怎麼寫到檔案中的就怎麼讀進來,還是比較方便的,用過printf函式的應該都知道上面的函式怎麼用的吧(不知道就趕緊找資料吧,(*^__^*) 嘻嘻……),唯一不同的是,這裡多了個檔案結構指標的引數,看過知蟻前面幾篇文章的,應該對這個比較熟悉了。
fprintf函式和fscanf函式示例程式
下面的示例程式包括fprintf寫入檔案、fscanf讀取檔案以及printf輸出到螢幕等操作。
C語言: 知蟻部落格 void main(){
FILE *pWrite,*pRead;
struct student tStu,tStu2;
char
pWrite=fopen(“stu_scores.txt”,“w”);
if(NULL == pWrite)
{
return;
}
//初始化結構體資訊,用於寫入檔案
memcpy(tStu.chName,pName,20);
tStu.nID = 1;
tStu.fScores[0] = 89.0;
tStu.fScores[1] = 87.0;
tStu.fScores[2] = 88.0;
//寫入資料到檔案中
fprintf(pWrite,“%d %s %f %f %f\n“,tStu.nID,tStu.chName,tStu.fScores[0],tStu.fScores[1],tStu.fScores[2]);
fclose(pWrite);
pRead=fopen(“stu_scores.txt”,“r”);
if(NULL == pRead)
{
return;
}
//從檔案中讀取資料(主要下面引數中的&)
fscanf(pRead,“%d %s %f %f %f\n“,&tStu2.nID,tStu2.chName,&tStu2.fScores[0],&tStu2.fScores[1],&tStu2.fScores[2]);
fclose(pRead);
//列印讀取的資料到螢幕上
printf(“%d %s %.1f %.1f %.1f\n“,tStu2.nID,tStu2.chName,tStu2.fScores[0],tStu2.fScores[1],tStu2.fScores[2]);
}