其格式如下:
count=fprintf(fid, format,A,…)
這是一個很通用的輸出指令,其輸出之格式依照指定的format,後面是所要輸出之參數名稱。其中fid代表輸出的裝置,fid=1代表標準裝置,或為螢幕,所以可以印在指令窗內。若要輸出至某一個檔案,則必須先將該檔案打開,即open指令打開一個檔,然後訂一個共通的代號fid。
列印格式則由format制定。format係由一系列包括C語言轉換碼之文字。其轉換控制包括符號、對齊、有效位數、欄寬及其他輸出之控制格式。此字串可包括特定字母,可代表非文字之控制標如新行及定位等。
這些轉換格式均以%符號開頭,並可能包括下列之項目:
-
正負旗標
-
欄寬及位數
-
上下標
-
轉換文字
上述的項目中,轉換文字必須存在,其餘視情況作選擇。
正負旗標位於輸出數字之前,可用+,-,0作為控制數字符號之用,若使用負號(-),則表示採用左邊對齊,正號(+)代表要印出該數字之正負號,若用零(0)置於前,表示其前面滿0。其例如%-10.5d、%+10.5d、%010.5d等等。
欄位寬度及有效位數則由數值表示,小數點前之數字代表總位數,如%6f,表示要列印六位數;若小數點後面有數字,表示該數之小數位數,如%6.3f表示有三位數小數,但總欄寬(包括小數點)為六位數。
格式標則在標明印出數值之性質,常用的如d代表十進位,e代表指數表示法,相關資訊如表5.2:
表7.2 格式標代碼表
格式標代碼
|
說明
|
%c
|
單一文字
|
%d
|
十進位(有正負符號)
|
%e
|
指數格式(如小寫1.414e+01)
|
%E
|
指數格式(如大寫1.414E+01)
|
%f
|
固定位數
|
%g
|
較%f或%e更為簡潔的型式,使用小寫e
|
%G
|
同%g但使用大寫E
|
%i
|
十進位(有正負符號)
|
%o
|
八進位(無正負符號)
|
%s
|
一串文字
|
%u
|
十進位(無正負符號)
|
%x
|
十六進位(使用小寫文字a-f)
|
%X
|
十六進位(使用大寫文字A-F)
|
在format格式中,也常使用控制標以印出控制的動作,這些包括換行、換頁等等,其項目如表5.3:
表7.3 控制標代碼表
控制標
|
說明
|
\b
|
倒退一格
|
\f
|
進一頁
|
\n
|
跳一新行
|
\r
|
回行
|
\t
|
水平跳格
|
\\
|
反斜線符號
|
\''
|
單括號
|
%%
|
百分比%
|
下面為產生一串正弦值,然後將其存於一個名叫sinx.txt之文字檔案內。在新開一個檔時,通常要先用fopen開啟,等利用fprintf存完後,再用fclose令其關閉。才算存檔完成。
x=0:pi/10:pi; % %將pi分成十等分,置於x中
y=sin(x); %計算sin(x)值,置於y
% 打開一個名叫sinx.txt的文字檔,將其代碼設為fid,'w'代表要寫入
fid=fopen('sinx.txt','w');
%列印資料x,y於檔案中,格式x為%6.4f;y為%10.8f
fprintf(fid,'%6.4f %10.8f\n',x,y);
fclose(fid); %關閉檔案
type sinx.txt %將存檔內容印出
0.0000 0.31415927
0.6283 0.94247780
1.2566 1.57079633
1.8850 2.19911486
2.5133 2.82743339
3.1416 0.00000000
0.3090 0.58778525
0.8090 0.95105652
1.0000 0.95105652
0.8090 0.58778525
0.3090 0.00000000
在format格式中,亦可包括其他文字,使印出的報告容易閱讀。比如說:
>>height=178;
>>fprintf(1, '我的身高有 %4.0f cm,也就相當於 %4.2f ft.', height, height/30.48);
我的身高有 178 cm,也就相當於 5.84 ft.
這樣的文字讀起來也比較人性化一些。在此,fprintf括號內第一個參數1表示印在螢幕中,而中間即為格式之內容。其中除文字本身外,遇到%時表示是輸出變數的格式,而每遇到一個%的型式就需要有一個變數對應。故第一個%4.0f 對應變數height,第二個%4.2f對應height/30.48。
由於格式format 中,已經用掉撇號'、反斜線\及百分比號%,因此若要在文字中出現這些文字時,必須寫上兩次。例如:
>>fprintf(1,'My mother''s book is not 100%% complete yet.\n')
My mother's book is not 100% complete yet.
最後的\n表示跳到下一行列印。
相對於輸出之fprint指令,讀入資料可以利用fscan指令,其應用請待下回分解。