資源描述:
《Fortran格式輸入輸出》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、6.1輸入輸出概述第六章格式輸入輸出一般應(yīng)在輸入輸出語句中提供三方面的信息:(1)通過什么設(shè)備來進(jìn)行輸入輸出。(2)采用什么樣的格式來進(jìn)行輸入輸出。(3)輸入輸出的具體內(nèi)容。輸入:從外部設(shè)備將數(shù)據(jù)傳送到計(jì)算機(jī)內(nèi)存輸出:將計(jì)算機(jī)內(nèi)部的數(shù)據(jù)傳送到外部設(shè)備6.2格式輸入輸出語句一、格式輸出(3)格式語句(FORMAT)的語句標(biāo)號。例如:PRINT100,A,B,C100FORMAT(1X,F9.4,2F7.3)1.PRINT語句格式:PRINTf,輸出項(xiàng)f:格式說明符,有三種形式:(1)*,使用表控格式。(2)
2、‘(格式編輯符)’,例:PRINT'(1X,2F7.3)',X,Y輸出項(xiàng)可以是變量、常量、函數(shù)以及表達(dá)式。此外,輸出項(xiàng)還可以是隱含DO循環(huán)。2.WRITE語句格式:WRITE(u,f)輸出項(xiàng)U:設(shè)備號,用于指明使用的輸入輸出設(shè)備。可以是一個(gè)整型量,也可以是星號*,*指系統(tǒng)隱含指定的外部設(shè)備,一般為顯示器。f:格式說明符,用法與PRINT語句相同。二、格式輸入格式:READf,輸入項(xiàng)READ(u,f)輸入項(xiàng)U:設(shè)備號f:格式說明符輸入項(xiàng)可以是變量,也可以是隱含DO循環(huán)。6.3格式說明語句格式說明語句可以放在
3、程序單位語句(主程序語句PROGRAM,子程序語句FUNCTION或SUBROUTINE)之后,END語句之前的任何位置。格式:語句標(biāo)號FORMAT(格式編輯符)例如:10FORMAT(1X,I4,F5.1)格式說明語句是非執(zhí)行語句,它只是給輸入輸出語句提供數(shù)據(jù)的格式描述。6.4常用的編輯符一、可重復(fù)編輯描述符可重復(fù)編輯描述符與輸入輸出項(xiàng)相對應(yīng)。不同類型的輸入輸出項(xiàng)使用不同的編輯描述符。1.整型數(shù)據(jù)編輯描述符(I,B,O,Z)I編輯符用于十進(jìn)制整數(shù)的輸入輸出。r:重復(fù)系數(shù),為1時(shí)可以省略。w:字段寬度。格
4、式:rIw輸入:在輸入記錄中從左往右取w個(gè)字符存入對應(yīng)的輸入項(xiàng)。取得的w個(gè)字符必須是整數(shù),正負(fù)號也占一個(gè)字符位置,空格也占一個(gè)字符位置,但不起作用。例如:READ(*,10)I,J,K10FORMAT(I4,I5,I6)輸入71□4-346□-□1□2345則I,J,K的值分別為:714、-346和-123。輸出:數(shù)字在指定的w字段寬度中向右端靠齊,左補(bǔ)空格。當(dāng)w位數(shù)不足時(shí),將輸出w個(gè)“*”。例如:WRITE(*,10)K,L10FORMAT(1X,I5,I4)當(dāng)K=12,L=-7567時(shí),輸出結(jié)果為:□
5、□□12****(2)B,O,Z編輯符。這是FORTRAN90新增的編輯符。分別采用二進(jìn)制、八進(jìn)制和十六進(jìn)制形式描述整型量的輸入輸出。其基本用法與I編輯符相同。2.實(shí)型數(shù)據(jù)編輯描述符(F,E,EN,ES,G)(1)F編輯符用于實(shí)型量的小數(shù)形式輸入輸出。格式:rFw.dr:重復(fù)系數(shù)w:字段寬度d:輸入輸出的小數(shù)位數(shù)輸入:按w指定的字段寬度從輸入記錄中截取數(shù)據(jù),若截取的數(shù)據(jù)中不帶小數(shù)點(diǎn),則系統(tǒng)按d自動加上小數(shù)點(diǎn);若數(shù)據(jù)自帶小數(shù)點(diǎn),此時(shí)d不起作用,自帶小數(shù)點(diǎn)優(yōu)先。例如:READ(*,10)A,B輸入123456
6、□726.8910FORMAT(F7.2,F6.1)則A、B的值分別為1234.56和726.89輸出:w≥實(shí)際位數(shù)時(shí),左補(bǔ)空格w≤實(shí)際位數(shù)時(shí),輸出w個(gè)“*”實(shí)際位數(shù):整數(shù)位數(shù)+小數(shù)位數(shù)+小數(shù)點(diǎn)+負(fù)號實(shí)際小數(shù)位d,保留d位,對d+1位四舍五入例如:WRITE(*,10)A,B,C10FORMAT(1X,3F8.3)當(dāng)A、B、C的值分別是78.9、-0.00072、12345.678時(shí),輸出為:□□78.900□□□-.001********(2)E編輯符用于輸入輸出指數(shù)
7、形式的實(shí)數(shù)。格式:rEw.dd:數(shù)字部分小數(shù)位數(shù)輸出采取規(guī)格化的指數(shù)形式,即小數(shù)點(diǎn)在第一位為非零數(shù)字的前面。例如:WRITE(*,10)A,B10FORMAT(1X,E12.4,E13.2)當(dāng)A、B的值為128.433和-0.0008時(shí),輸出為:□□□.1284E+03□□□□□-.80E-03根據(jù)輸出數(shù)據(jù)的大小自動采用F或E格式(3)G編輯符3.復(fù)型數(shù)據(jù)編輯符對復(fù)型數(shù)據(jù)按實(shí)部和虛部分別輸入輸出。例如COMPLEXCMREAD(*,10)CMWRITE(*,20)CM10FORMAT(2F5.2)20FO
8、RMAT(1X,2F7.2)輸入1234567890,則輸出為:□123.45□678.90格式:rGw.d在輸入時(shí),輸入的數(shù)據(jù)可以是.TRUE.或.FALSE.,也可以是頭一個(gè)字母為T或F的任何字符串(T或F前面可以接“.”或空格,后面可以是任意字符)4.邏輯型數(shù)據(jù)編輯符L格式:rLw在輸出時(shí),邏輯值為真輸出T,邏輯值為假輸出F,且在左邊補(bǔ)w-1個(gè)空格。例如WRITE(*,10).FALSE.,'A'.LT.'B'.OR.1