版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第九章格式化輸入/輸出及文件操作第九章格式化輸入/輸出及文件操作
采用程序解決各類問題,需要有文件的輸入和輸出。格式化的文件輸入輸出操作可以有效的幫助我們理解問題。本章著重探討格式化輸入/輸出格式編輯符、輸入/輸出語句及操作,包括:
1PRINT語句
2格式編輯符
3READ語句
4WRITE語句
5內(nèi)部文件
6外部文件
7不換行的讀寫一、READ語句READ語句有兩種根本形式:READfmt[,list]READ([UNIT=]u,[FMT]=fmt)[,list]*fmt指明了輸入所用的格式,有以下3種形式:格式說明符為“*〞,表示按照表控格式;格式說明符為字符串。例如輸入語句:READ(*,'(I2,2I3)')I,J,K格式說明符是格式語句FORMAT的語句標號。READ(*,10)I,J,K10FORMAT(I2,2I3)*u是設(shè)備描述符,用于指明具體使用的輸入設(shè)備。u可以是一個無符號整型常量、整型變量或整型表達式。當設(shè)備描述符是“*〞時,表示從默認的設(shè)備〔一般是鍵盤〕輸入。*list是變量列表,指定了輸入的具體內(nèi)容。變量列表不允許是常量或者表達式,但可以是隱含DO循環(huán)。語句中允許變量列表為空,此時READ語句將等待用戶輸入,指導(dǎo)用戶鍵入回車鍵。第一節(jié)輸入輸出語句與格式語句二、PRINT語句(向計算機的默認輸出設(shè)備〔即屏幕〕上輸出數(shù)據(jù))PRINT語句的形式為:PRINTfmt[,list]*fmt指明了輸入所用的格式,有以下3種形式:格式說明符為“*〞,表示按照表控格式;格式說明符為字符串。例如:PRINT'(I2,2I3)',I,J,K格式說明符是格式語句FORMAT的語句標號〔1~99999〕。PRINT10,I,J,K10FORMAT(I2,2I3)*list是變量列表,指定了輸入的具體內(nèi)容。變量列表不允許是常量或者表達式,但可以是隱含DO循環(huán)。語句中允許變量列表為空,此時PRINT語句的作用是輸出一個空行。第一節(jié)輸入輸出語句與格式語句三、WRITE語句WRITE語句的根本形式為:WRITE([UNIT=]u,[FMT]=fmt)[,list]*u是設(shè)備描述符,用于指明具體使用的輸出設(shè)備。u可以是一個無符號整型常量,也可以是一個整型變量或者整型表達式。當設(shè)備描述符是“*〞時,表示從計算機預(yù)先設(shè)定的外部設(shè)備〔一般為顯示器〕輸出。*fmt指明了輸出所用的格式,用法與PRINT語句相同。*list是變量列表,指定了輸出的具體內(nèi)容。變量列表可以是變量、常量、函數(shù)以及表達式,還可以是隱含DO循環(huán)。第一節(jié)輸入輸出語句與格式語句四、FORMAT語句FORMAT語句即為格式語句,形式為:FORMAT〔format-list〕其中:format-list表示格式說明列表。例:FORMAT〔1X,F6.2,/,2(1X,I4):E14.7,’FORTRAN’〕“F6.2〞,“I4〞,“E14.7〞是數(shù)據(jù)格式編輯符;“1X〞,“/〞,“:〞是控制格式編輯符;“2(1X,I4)〞中的“2〞是重復(fù)系數(shù),用于編輯符的重置;而由單引號引用的字符串“FORTRAN〞將被直接輸出。四、FORMAT語句要使用FORMAT語句必須為其設(shè)置標號,以便在輸入輸出語句中進行引用。標號的大小與語句出現(xiàn)先后沒有關(guān)系??梢猿霈F(xiàn)在程序單元內(nèi)部的任何位置。例9-1MODULESTUMODTYPESTUCHARACTER(4)::NOREAL::CHINESE,MATH,ENGLISH,TOTALENDTYPEENDMODULEPROGRAMMAINUSESTUMODIMPLICITNONETYPE(STU)S(5),TEMP
INTEGERI,JDOI=1,5"
WRITE(*,'("請輸入第",I1,"位學(xué)生的學(xué)號以及語文、數(shù)學(xué),英語成績:")',I
READ(*,*)S(I)%NO,S(I)%CHINESE,S(I)%MATH,S(I)%ENGLISHS(I)%TOTAL=S(I)%CHINESE+S(I)%MATH+S(I)%ENGLISHENDDO例9-1續(xù)!按照總分排序
DOI=1,4DOJ=I+1,5IF(S(I)%TOTAL<S(J)%TOTAL)THEN TEMP=S(I) S(I)=S(J) S(J)=TEMP ENDIFENDDOENDDOPRINT1010FORMAT('學(xué)號',T12,'語文',T27,'數(shù)學(xué)',T42,'英語',T57,'總分'/&5('-'),T12,5('-'),T27,5('-'),T42,5('-'),T57,5('-'))PRINT20,(S(I)%NO,S(I)%CHINESE,S(I)%MATH,&S(I)%ENGLISH,S(I)%TOTAL,I=1,5)20FORMAT(A4,T12,F5.2,T27,F5.2,T42,F5.2,T57,F6.2)ENDPROGRAMMAINI編輯符一般形式為: Iw[.m]w表示以w個字符的寬度來輸出整數(shù),負數(shù)的負號也包含在字符寬度內(nèi)。如果輸出數(shù)據(jù)的實際寬度小于w,那么數(shù)據(jù)前面缺乏局部用空格填充;如果輸出數(shù)據(jù)實際寬度超過w,那么不輸出有效數(shù)據(jù),而在該字段范圍內(nèi)用星號“*〞填充。m表示至少需輸出m個字符寬度的數(shù)字。例如輸出語句:WRITE(*,'(I4)')100WRITE(*,'(I3)')-100WRITE(*,'(I5.4)')100執(zhí)行結(jié)果為:□100***□0100第二節(jié)格式編輯符F編輯符F編輯符用于輸入輸出小數(shù)形式的實數(shù),其一般形式為:Fw.dw表示以w個字符的寬度來輸出實數(shù),小數(shù)點和負數(shù)的負號也包含在字符寬度內(nèi)。如果輸出數(shù)據(jù)的實際寬度小于w,那么數(shù)據(jù)前面缺乏局部用空格填充;如果輸出數(shù)據(jù)實際寬度超過w,那么不輸出有效數(shù)據(jù),而在該字段范圍內(nèi)用星號“*〞填充。d表示要輸出數(shù)據(jù)的小數(shù)位數(shù)。如果輸出的實際數(shù)據(jù)的小數(shù)位數(shù)小于d,那么會在小數(shù)后缺乏的局部補充0;如果輸出的實際數(shù)據(jù)的小數(shù)位數(shù)大于d,那么會將多余的小數(shù)局部四舍五入處理。例如輸出語句:WRITE(*,'(F5.2)')3.14WRITE(*,'(F4.2)')-3.14WRITE(*,'(F8.6)')3.141592653執(zhí)行結(jié)果為:□3.14****3.141593三、E編輯符E編輯符用于輸入輸出指數(shù)形式的實數(shù),其一般形式為:Ew.d[Ee]w表示以w個字符的寬度來輸出實數(shù),包含指數(shù)局部所占的4個字符的寬度和負數(shù)的負號,如果輸出數(shù)據(jù)的實際寬度小于w,那么數(shù)據(jù)前面缺乏局部用空格填充;如果輸出數(shù)據(jù)實際寬度超過w,那么不輸出有效數(shù)據(jù),而在該字段范圍內(nèi)用星號“*〞填充。d表示要輸出數(shù)據(jù)的小數(shù)位數(shù),如果實際數(shù)據(jù)在指數(shù)形式下的小數(shù)位數(shù)小于d,那么會在小數(shù)后缺乏的局部補充0;如果實際數(shù)據(jù)在指數(shù)形式下的小數(shù)位數(shù)大于d,那么會將多余的小數(shù)局部四舍五入處理。e表示要輸出數(shù)據(jù)的指數(shù)局部數(shù)字的位數(shù),如果指數(shù)局部實際數(shù)字位數(shù)小于e,那么前面缺乏局部用0補充。例如輸出語句:WRITE(*,'(E14.7)')1234.56WRITE(*,'(E14.5)')1234.56WRITE(*,'(E14.7E3)')1234.56執(zhí)行結(jié)果為:□0.1234560E+03□□□0.12346E+030.1234560E+003四、A編輯符A編輯符用于字符型數(shù)據(jù)的輸出,其一般形式為:A[w]w指示以w個字符的寬度來輸出字符型數(shù)據(jù)。如果輸出字符型數(shù)據(jù)長度小于w,那么在數(shù)據(jù)的左端用空格填充;如果待輸出字符型數(shù)據(jù)長度大于w,那么只輸出最左端的w個字符。省略w時,按字符數(shù)據(jù)的實際長度輸出。例如輸出語句:CHARACTER(14)::STRINGSTRING='I''MASTUDENT.'WRITE(*,'(A16)')STRINGWRITE(*,'(A8)')STRINGWRITE(*,'(A)')STRING執(zhí)行結(jié)果為:□□I'MASTUDENT.I’MASTI'MASTUDENT.五、L編輯符L編輯符用于邏輯型數(shù)據(jù)的輸出,其一般形式為:Lww表示以w個字符寬度輸出邏輯型數(shù)據(jù)。由于邏輯型數(shù)據(jù)在輸出時只顯示一個字符,即.TRUE.打印為“T〞,.FALSE.打印為“F〞。因此w大于1時,字符左端用空格填充。例如輸出語句:LOGICAL::B=.TRUE.WRITE(*,'(L1)')BWRITE(*,'(L3)').FALSE.執(zhí)行結(jié)果為:T□□F一、制表位編輯符制表位編輯符用于控制輸出項的輸出位置,其一般形式為:TnTLnTRn其中n是非零正整數(shù)。Tn表示將制表位移到第n列;TRn表示將制表位從當前位置向右移動n列;TLn表示將制表位從當前位置向左移動n列(最多移動至第一列)。輸入語句:READ(*,'(I4,TL3,I4)')I,J當輸入數(shù)據(jù)12345678時,執(zhí)行該語句后I=1234,J=2345〔而不是5678〕。輸出語句:WRITE(*,'(T10,"POS=",I1,TL15,"POS=",I1,TR10,"POS=",I1)')1,2,3執(zhí)行結(jié)果為:POS=2□□□□POS=1□□□□□□□□□□POS=3第三節(jié)控制格式編輯符二、斜杠編輯符斜杠編輯符的作用是開始新的輸出行,其一般形式為:[r]/其中:r為重復(fù)系數(shù),用r個連續(xù)的斜杠,可以到達輸出r-1個空行的效果。例如輸出語句:WRITE(*,'("I=",I2,/,"J=",I2,2/,"K=",I2)')1,2,4執(zhí)行結(jié)果為:I=□1J=□2K=□4其中:斜杠編輯符之后的逗號可以省略。另外,在沒有重復(fù)系數(shù)的情況下,斜杠編輯符前的逗號也可以省略。三、冒號編輯符冒號編輯符的作用是當輸出列表中沒有更多的數(shù)據(jù)項時,使格式控制結(jié)束。例如輸出語句:
WRITE(*,'("I=",I2,"J=",I2,"K=",I2)')10,20 WRITE(*,'("I=",I2,:,"J=",I2,:,"K=",I2)')10,20執(zhí)行結(jié)果為:I=10□J=20□K=I=10□J=20□其中:冒號編輯符前后的逗號都可以省略四、X編輯符X編輯符的作用是產(chǎn)生空格,其一般形式為:nX其中:n為插入的空格數(shù)量。n不能省略,即使n為1,也要寫為1X。例如輸出語句:WRITE(*,'("I=",I2,1X,"J=",I2,2X,"K=",I2)')10,20,30執(zhí)行結(jié)果為:I=20□J=20□□K=30五、編輯符重置數(shù)據(jù)格式和控制格式編輯符中,有不少重復(fù)編輯符。重復(fù)系數(shù)可以應(yīng)用到括號包圍的一組編輯符,還可以嵌套使用。例如輸出語句: WRITE(*,'(3(1X,I2))')10,20,30執(zhí)行結(jié)果為: □10□20□30五、編輯符重置如果可重復(fù)編輯符的個數(shù)少于輸入輸出項的個數(shù),那么按順序用完最后一個可重復(fù)編輯符后,再重復(fù)使用格式說明,但產(chǎn)生一個新記錄。例如輸出語句: WRITE(*,'(I2,1X,I3)')12,123,34執(zhí)行結(jié)果為:12□12334同樣,例如輸入語句:READ10,I,J10FORMAT(I1)假設(shè)輸入兩行數(shù)據(jù):1234 I和J分別被讀為1和3。第四節(jié)文件操作一、文件與邏輯設(shè)備文件(File)一般指由假設(shè)干個邏輯記錄構(gòu)成的數(shù)據(jù)集合,在FORTRAN的輸入輸出系統(tǒng)里,所有的數(shù)據(jù)來源和數(shù)據(jù)發(fā)送目標都被認為是文件。文件是由一個個記錄組成的。所謂記錄是指數(shù)字或者字符的序列,一個記錄就是一系列數(shù)字或者字符的集合。在進行文件的存取操作時,根本的操作單位是記錄。一個記錄會被看作一個整體,其中的數(shù)字或者字符會被一次性的讀出或者寫入,而不管具體有幾個數(shù)字或者幾個字符。一、文件與邏輯設(shè)備在FORTRAN語言中對文件和外部設(shè)備的操作都要通過邏輯設(shè)備才能進行。在對文件和外部設(shè)備進行操作之前,都要把它們連接到相應(yīng)的邏輯設(shè)備上。邏輯設(shè)備通過設(shè)備描述符與相應(yīng)的文件或外部設(shè)備相關(guān)聯(lián)。邏輯設(shè)備符(通道號)與所關(guān)聯(lián)的文件是一一對應(yīng)的,即同一個設(shè)備描述符不能同時連接一個以上的文件,反之亦然。
二、內(nèi)部文件在FORTRAN語言中,把保存在內(nèi)存中的數(shù)據(jù)稱為內(nèi)部文件。內(nèi)部文件通過設(shè)備描述符與邏輯設(shè)備連接并進行輸入輸出操作。需要注意以下規(guī)那么:內(nèi)部文件只能以字符串或字符數(shù)組作為設(shè)備描述符。內(nèi)部文件只能使用READ和WRITE語句進行操作。常見的文件連接語句〔OPEN、CLOSE〕、文
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報參考:教材插圖智能設(shè)計美學(xué)的社會主義核心價值觀對齊研究
- 課題申報參考:建成環(huán)境對老年人公交及地鐵出行的時空動態(tài)影響及適老化建成環(huán)境優(yōu)化研究
- 二零二五版文化藝術(shù)用品采購合同模板3篇
- 二零二五年度房地產(chǎn)投資定金監(jiān)管協(xié)議4篇
- 二零二五年度煤炭運輸節(jié)能減排協(xié)議4篇
- 二零二五版爐渣清潔生產(chǎn)采購技術(shù)服務(wù)合同4篇
- 2025年度高壓供電線路維護服務(wù)協(xié)議范本3篇
- 2025版?zhèn)€人退股協(xié)議書:上市公司股份回購與股東退出協(xié)議4篇
- 深圳2025年度廠房租賃合同范本2篇
- 二零二五年度建筑安全評估師雇傭合同標準版3篇
- 化學(xué)-河南省TOP二十名校2025屆高三調(diào)研考試(三)試題和答案
- 智慧農(nóng)貿(mào)批發(fā)市場平臺規(guī)劃建設(shè)方案
- 林下野雞養(yǎng)殖建設(shè)項目可行性研究報告
- 2023年水利部黃河水利委員會招聘考試真題
- Python編程基礎(chǔ)(項目式微課版)教案22
- 01J925-1壓型鋼板、夾芯板屋面及墻體建筑構(gòu)造
- 欠電費合同范本
- 《學(xué)習(xí)教育重要論述》考試復(fù)習(xí)題庫(共250余題)
- 網(wǎng)易云音樂用戶情感畫像研究
- 小學(xué)四年級奧數(shù)題平均數(shù)問題習(xí)題及答案
- 工作違紀違規(guī)檢討書范文
評論
0/150
提交評論