Fortran的基本輸入輸出

2018-12-12 14:24 更新

迄今為止,我們已經(jīng)看到,我們可以使用打印*語(yǔ)句讀取分別使用讀取*語(yǔ)句鍵盤和顯示輸出數(shù)據(jù)到屏幕上。輸入輸出的形式是自由格式的 I / O,它被稱為列表控制的輸入輸出。

自由格式簡(jiǎn)單的I / O的形式為:

read(*,*) item1, item2, item3...
print *, item1, item2, item3
write(*,*) item1, item2, item3...

然而,格式化I / O讓您的數(shù)據(jù)傳輸更多的靈活性。

格式化輸入輸出

格式化輸入輸出有語(yǔ)法如下:

read fmt, variable_list 
print fmt, variable_list 
write fmt, variable_list 

哪里,

  • FMT是格式規(guī)范

  • 可變列表被從鍵盤被讀或?qū)懺谄聊簧系淖兞康牧斜?/p>

格式規(guī)范定義,其中顯示格式化的數(shù)據(jù)的方式。它由一個(gè)字符串,包含編輯描述符的括號(hào)中的列表。

一個(gè)編輯描述符指定的精確格式,例如,寬度,其中顯示后小數(shù)點(diǎn)等,數(shù)字字符和數(shù)字。

例如:

Print "(f6.3)", pi

下表描述了描述:

描述符描述
一世這是用于整數(shù)輸出。此采用的形式為“rIw.m',其中的R,W和M的含義在下面的表中給出。整數(shù)值是在他們的視場(chǎng)科幻權(quán)JUSTI網(wǎng)絡(luò)版。如果場(chǎng)寬度不是大到足以容納一個(gè)整數(shù)那么場(chǎng)是網(wǎng)絡(luò)連接有星號(hào)LLED。 打印“(3i5)”,I,J,K
F 這是用于實(shí)數(shù)輸出。此采用的形式為“rFw.d',其中的R,W和D的含義在下面的表中給出。真正的價(jià)值在他們的網(wǎng)絡(luò)的視場(chǎng)右側(cè)JUSTI網(wǎng)絡(luò)版。如果場(chǎng)寬度不夠大以容納實(shí)數(shù)則場(chǎng)是音響LLED以星號(hào)。 打印“(f12.3)”,圓周率
?

這是用于指數(shù)符號(hào)實(shí)際產(chǎn)出。在'E'描述語(yǔ)句的形式為'rEw.d',其中的R,W和D的含義如下表所示。真正的價(jià)值在他們的網(wǎng)絡(luò)的視場(chǎng)右側(cè)JUSTI網(wǎng)絡(luò)版。如果場(chǎng)寬度不夠大以容納實(shí)數(shù)則場(chǎng)是音響LLED以星號(hào)。

請(qǐng)注意,打印出三位小數(shù),需要至少十的場(chǎng)寬度的實(shí)數(shù)。一個(gè)用于尾數(shù),兩個(gè)零,四項(xiàng)尾數(shù)和兩個(gè)用于指數(shù)本身的符號(hào)。一般來(lái)說(shuō),W≥D + 7。

打印“(e10.3)”,123456.0給出了'0.123e + 06'
ES 這是用于實(shí)際產(chǎn)出(科學(xué)記數(shù)法)。此采用的形式為“rESw.d',其中的R,W和D的含義在下面的表中給出。在“E”上面的描述符迪FF ERS稍微從傳統(tǒng)的著名“科學(xué)的C表示法”介紹??茖W(xué)的C表示法具有范圍1.0尾數(shù)?10.0不像其具有在0.1到1.0的尾數(shù)對(duì)E描述符。真正的價(jià)值在他們的網(wǎng)絡(luò)的視場(chǎng)右側(cè)JUSTI網(wǎng)絡(luò)版。如果場(chǎng)寬度不夠大以容納實(shí)數(shù)則場(chǎng)是音響LLED以星號(hào)。這里還,寬度場(chǎng)必須滿足表達(dá)Wˉˉ≥D + 7 打印“(es10.3)”,123456.0給出了'1.235e + 05'
一個(gè)這是用于字符輸出。這需要其中r和W的含義如下表中給出的形式“原始”。性格類型是在他們的網(wǎng)絡(luò)的視場(chǎng)右側(cè)JUSTI網(wǎng)絡(luò)版。如果場(chǎng)寬度不足夠大以容納字符串則場(chǎng)是音響與第一個(gè)“W”的字符串的字符LLED。 打印“(A10)”,STR
X 這是用于空間輸出。這種形式定義的NX“,其中”n“是所需空間的數(shù)量。 打印“(5倍,A10)”,STR
/ 斜線描述 - 用于插入空行。這需要的形式'/',并強(qiáng)制下一個(gè)數(shù)據(jù)輸出為一個(gè)新行。 打印“(/,5倍,A10)”,STR

以下符號(hào)用于與格式描述符:

符號(hào)描述
C 列號(hào)
e 中位數(shù)為實(shí)際輸入或輸出的小數(shù)位的權(quán)
要顯示的最小位數(shù)
? 空格數(shù)跳過(guò)
- [R 重復(fù)計(jì)數(shù) - 的次數(shù)要使用的描述符的描述符或一組
Wˉˉ 域?qū)挾?- 的字符數(shù)用于輸入或輸出

例1

program printPi

   pi = 3.141592653589793238 
   
   Print "(f6.3)", pi 
   Print "(f10.7)", pi
   Print "(f20.15)", pi 
   Print "(e16.4)", pi/100 
   
end program printPi

當(dāng)上述代碼被編譯和執(zhí)行時(shí),它產(chǎn)生了以下結(jié)果:

3.142
3.1415927
3.141592741012573
0.3142E-01

例2

program printName
implicit none

   character (len=15) :: first_name
   print *,' Enter your first name.' 
   print *,' Up to 20 characters, please'
   
   read *,first_name 
   print "(1x,a)",first_name
   
end program printName

當(dāng)上述代碼被編譯和執(zhí)行時(shí),它產(chǎn)生了以下結(jié)果:(假設(shè)用戶輸入的名稱扎拉)

Enter your first name.
Up to 20 characters, please
Zara 

例3

program formattedPrint
implicit none

   real :: c = 1.2786456e-9, d = 0.1234567e3 
   integer :: n = 300789, k = 45, i = 2
   character (len=15) :: str="Tutorials Point"
   
   print "(i6)", k 
   print "(i6.3)", k 
   print "(3i10)", n, k, i 
   print "(i10,i3,i5)", n, k, i 
   print "(a15)",str 
   print "(f12.3)", d
   print "(e12.4)", c 
   print '(/,3x,"n = ",i6, 3x, "d = ",f7.4)', n, d
   
end program formattedPrint

當(dāng)上述代碼被編譯和執(zhí)行時(shí),它產(chǎn)生了以下結(jié)果:

45
045
300789 45  2
300789 45  2
Tutorials Point
123.457
0.1279E-08

n = 300789 d = *******

該聲明的格式

格式語(yǔ)句允許您在一個(gè)聲明中混合和匹配字符,整數(shù)和實(shí)輸出。下面的例子說(shuō)明了這一點(diǎn):

program productDetails 
implicit none 

   character (len=15) :: name
   integer :: id 
   real :: weight
   name = 'Ardupilot'
   id = 1
   weight = 0.08
   
   print *,' The product details are' 
   
   print 100
   100 format (7x,'Name:', 7x, 'Id:', 1x, 'Weight:')
   
   print 200, name, id, weight 
   200 format(1x, a, 2x, i3, 2x, f5.2) 
   
end program productDetails

當(dāng)上述代碼被編譯和執(zhí)行時(shí),它產(chǎn)生了以下結(jié)果:

The product details are
Name:       Id:    Weight:
Ardupilot   1       0.08

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)