Fortran格式输入输出.ppt
《Fortran格式输入输出.ppt》由会员分享,可在线阅读,更多相关《Fortran格式输入输出.ppt(19页珍藏版)》请在冰豆网上搜索。
6.1输入输出概述输入输出概述第六章第六章格式输入输出格式输入输出一般应在输入输出语句中提供三方面的信息:
一般应在输入输出语句中提供三方面的信息:
(1)通过什么设备来进行输入输出。
通过什么设备来进行输入输出。
(2)采用什么样的格式来进行输入输出。
采用什么样的格式来进行输入输出。
(3)输入输出的具体内容。
输入输出的具体内容。
输入:
从外部设备将数据传送到计算机内存输入:
从外部设备将数据传送到计算机内存输出:
将计算机内部的数据传送到外部设备输出:
将计算机内部的数据传送到外部设备6.26.2格式输入输出语句格式输入输出语句一、格式输出一、格式输出(3)(3)格式语句格式语句(FORMAT)(FORMAT)的的语句标号语句标号。
例如:
。
例如:
PRINTPRINT100100,A,B,C,A,B,C100100FORMAT(1X,F9.4,2F7.3)FORMAT(1X,F9.4,2F7.3)1PRINT语句语句格式:
格式:
PRINTf,输出项输出项f:
格式说明符:
格式说明符,有三种形式:
,有三种形式:
(1)
(1)*,使用表控格式。
,使用表控格式。
(2)
(2)(格式编辑符格式编辑符),例:
例:
PRINTPRINT(1X,2F7.3)(1X,2F7.3),X,Y,X,Y输出项可以是变量、常量、函数以及表达式。
输出项可以是变量、常量、函数以及表达式。
此外,输出项还可以是隐含此外,输出项还可以是隐含DODO循环。
循环。
2.WRITE语句语句格式:
格式:
WRITE(u,f)输出项输出项UU:
设备号:
设备号,用于指明使用的输入输出设备。
,用于指明使用的输入输出设备。
可以是一个整型量,也可以是星号可以是一个整型量,也可以是星号*,*指系统隐含指指系统隐含指定的外部设备,一般为显示器。
定的外部设备,一般为显示器。
ff:
格式说明符:
格式说明符,用法与,用法与PRINTPRINT语句相同。
语句相同。
二、格式输入二、格式输入格式:
格式:
READf,输入项输入项READ(u,f)输入项输入项U:
设备号:
设备号f:
格式说明符:
格式说明符输入项可以是变输入项可以是变量,也可以是隐量,也可以是隐含含DODO循环。
循环。
6.36.3格式说明语句格式说明语句格式说明语句可以放在程序单位语句格式说明语句可以放在程序单位语句(主程序主程序语句语句PROGRAM,子程序语句子程序语句FUNCTION或或SUBROUTINE)之后,之后,END语句之前的任何位置。
语句之前的任何位置。
格式:
格式:
语句标号语句标号FORMAT(格式编辑符格式编辑符)例如:
例如:
10FORMAT(1X,I4,F5.1)10FORMAT(1X,I4,F5.1)格式说明语句是非执行语句,它只是给输入格式说明语句是非执行语句,它只是给输入输出语句提供数据的格式描述。
输出语句提供数据的格式描述。
6.46.4常用的编辑符常用的编辑符一、一、可重复编辑描述符可重复编辑描述符可重复编辑描述符与输入输出项相对应。
不可重复编辑描述符与输入输出项相对应。
不同类型的输入输出项使用不同的编辑描述符。
同类型的输入输出项使用不同的编辑描述符。
1.1.整型数据编辑描述符整型数据编辑描述符(I,B,O,ZI,B,O,Z)
(1)I编辑符编辑符
(2)用于十进制整数的输入输出。
用于十进制整数的输入输出。
rr:
重复系数,为:
重复系数,为11时可以省略。
时可以省略。
ww:
字段宽度。
:
字段宽度。
格式:
格式:
rIw输输入入:
在在输输入入记记录录中中从从左左往往右右取取ww个个字字符符存存入入对对应应的的输输入入项项。
取取得得的的ww个个字字符符必必须须是是整整数数,正正负负号号也也占占一一个个字字符符位位置置,空空格格也也占占一个字符位置,但不起作用。
一个字符位置,但不起作用。
例如:
例如:
READ(*,10)I,J,K10FORMAT(I4,I5,I6)输入输入714-346-12345则则I,J,K的值分别为:
的值分别为:
714、-346和和-123。
输输出出:
数数字字在在指指定定的的ww字字段段宽宽度度中中向向右右端端靠靠齐齐,左左补补空空格格。
当当ww位数不足时,将输出位数不足时,将输出ww个个“*”“*”。
例如:
例如:
WRITE(*,10)K,L10FORMAT(1X,I5,I4)当当K=12,L=-7567时,输出结果为:
时,输出结果为:
12*
(2)B,O,Z编编辑辑符符。
这这是是FORTRANFORTRAN9090新新增增的的编编辑辑符符。
分分别别采采用用二二进进制制、八八进进制制和和十十六六进进制制形形式式描描述述整整型型量量的的输输入入输输出出。
其基本用法与其基本用法与II编辑符相同。
编辑符相同。
2.2.实型数据编辑描述符(实型数据编辑描述符(F,E,EN,ES,GF,E,EN,ES,G)
(1)F编辑符编辑符用于实型量的小数形式输入输出。
用于实型量的小数形式输入输出。
格式:
格式:
rFw.dr:
重复系数:
重复系数w:
字段宽度:
字段宽度d:
输入输出的小数位数:
输入输出的小数位数输输入入:
按按ww指指定定的的字字段段宽宽度度从从输输入入记记录录中中截截取取数数据据,若若截截取取的的数数据据中中不不带带小小数数点点,则则系系统统按按dd自自动动加加上上小小数数点点;若若数数据据自自带带小小数数点点,此此时时dd不不起起作作用用,自自带带小小数点优先数点优先。
例如:
例如:
READ(*,10)A,B输入输入123456726.8910FORMAT(F7.2,F6.1)则则A、B的值分别为的值分别为1234.56和和726.89输出输出:
ww实际位数位数时,左补空格左补空格ww实际位数时,输出实际位数时,输出ww个个“*”实际位数:
整数位数实际位数:
整数位数+小数位数小数位数+小数点小数点+负号负号实际小数位实际小数位dd,保留,保留dd位,对位,对dd11位四舍五入位四舍五入例如:
例如:
WRITE(*,10)A,B,C10FORMAT(1X,3F8.3)当当A、B、C的值分别是的值分别是78.9、-0.00072、12345.678时,时,输出为:
输出为:
78.900-.001*
(2)E编辑符编辑符用于输入输出指数形式的实数。
用于输入输出指数形式的实数。
格式:
格式:
rEw.dd:
数字部分小数位数:
数字部分小数位数输出采取规格化的指数形式,即小数点在第一位为非输出采取规格化的指数形式,即小数点在第一位为非零数字的前面。
零数字的前面。
例如:
例如:
WRITE(*,10)A,B10FORMAT(1X,E12.4,E13.2)当当A、B的值为的值为128.433和和-0.0008时,输出为:
时,输出为:
.1284E+03-.80E-03根据输出数据的大小自动采用根据输出数据的大小自动采用FF或或EE格式格式(3)G编辑符符3.3.复型数据编辑符复型数据编辑符对复型数据按实部和虚部分别输入输出。
例如对复型数据按实部和虚部分别输入输出。
例如COMPLEXCMREAD(*,10)CMWRITE(*,20)CM10FORMAT(2F5.2)20FORMAT(1X,2F7.2)输入输入1234567890,则输出为:
,则输出为:
123.45678.90格式:
格式:
rGw.d在在输输入入时时,输输入入的的数数据据可可以以是是.TRUE.TRUE.或或.FALSE.FALSE.,也也可可以以是是头头一一个个字字母母为为TT或或FF的的任任何何字字符符串串(TT或或FF前前面面可可以以接接“.”.”或或空空格格,后后面面可可以以是是任任意意字字符符)4.4.逻辑型数据编辑符逻辑型数据编辑符LL格式:
格式:
rLw在输出时,逻辑值为真输出在输出时,逻辑值为真输出TT,逻辑值为假输出,逻辑值为假输出FF,且在左边补且在左边补w-1w-1个空格。
例如个空格。
例如WRITE(*,10).FALSE.,A.LT.B.OR.1.GT.210FORMAT(1X,L3,L4)输出为:
输出为:
FT5.5.字符型数据编辑符字符型数据编辑符AA用于字符型数据的输入输出用于字符型数据的输入输出格式:
格式:
rAw首先从输入记录中读取首先从输入记录中读取ww个字符,再根据输入项的长个字符,再根据输入项的长度度LL,决定输入变量的内容:
,决定输入变量的内容:
当当w=w=LL时,时,ww个字符全部送给输入项。
个字符全部送给输入项。
当当wLwL时,取右边时,取右边LL个字符送给对应的输入项。
个字符送给对应的输入项。
当当wLwL时,字符靠右对齐,左补时,字符靠右对齐,左补w-L个空格个空格当当wL时,输出左边时,输出左边w个字符个字符例如:
例如:
CHARACTER*5C1,C2,C3CHARACTER*5C1,C2,C3READ(*,10)C1,C2,C3READ(*,10)C1,C2,C310FORMAT(A5,A2,A7)10FORMAT(A5,A2,A7)输入输入abcdefghijklmn,则,则C1、C2、C3的值分别为:
的值分别为:
abcde、fg、jklmn例如:
例如:
WRITE(*,10)China,China,China10FORMAT(1X,A7,A,A3)输出为:
输出为:
ChinaChinaChi二、非重复编辑描述符二、非重复编辑描述符非重复编辑描述符直接向当前输出记录传递信息,非重复编辑描述符直接向当前输出记录传递信息,因此不需要输入输出项与其对应。
因此不需要输入输出项与其对应。
1.X编辑符编辑符用于在输入输出的常数之间插入用于在输入输出的常数之间插入n个空格个空格格式:
格式:
nXn:
正数,从当前位置向右跳过:
正数,从当前位置向右跳过n个字符位置。
个字符位置。
例:
例:
I=146;A=124.32;B=1247.32WRITE(*,10)I,A,B10FORMAT(1X,I3,2X,F6.2,2X,E11.5)输出:
输出:
146124.32.12473E+04例如:
例如:
READ(*,10)K,J,A10FORMAT(2I3,3X),E5.2)输入:
输入:
876-42193671E4则:
则:
K=876,J=-42,A=67100.0其中非重复编辑符其中非重复编辑符3X,跳过,跳过193这三个字符。
这三个字符。
格式:
格式:
nHn:
正整数:
正整数2.H编辑符编辑符用于输出字符串用于输出字符串例:
例:
format(1X,2HL=,I3,2HJ=,I4)3.撇号编辑符撇号编辑符用于输出字符串用于输出字符串例:
例:
I=123;J=2347WRITE(*,10)I,J10FORMAT(1X,I=,I3,2X,J=,I4)输出:
输出:
I=123J=2347将输出记录中的第一个字符作为纵向走纸控制符,这个将输出记录中的第一个字符作为纵向走纸控制符,这个字符不输出,而从输出记录的第二个字符开始输出。
字符不输出,而从输出记录的第二个字符开始输出。
4.纵向走纸控制符纵向走纸控制符常用的控制字符:
常用的控制字符:
空格空格(走纸一行,换行走纸一行,换行)、00(走纸二行,空走纸二行,空一行一行)、11(换页)、换页)、(不走纸,回到本行重迭打印不走纸,回到本行重迭打印)例如:
例如:
WRITE(*,10)I,J10FORMAT(1X,I=,I3,2X,J=,I4)应输出:
应输出:
I=123J=2347实际输出:
实际输出:
I=123J=2347如果:
如果:
10FORMAT(I=,I3,2X,J=,I4)输出:
输出:
=123J=23475.斜扛编辑符斜扛编辑符结束当前正在输入或输出的记录,开始下一个记结束当前正在输入或输出的记录,开始下一个记录的输入输出。
录的输入输出。
例如:
例如:
I=246;A=12.36;J=35;B=173.5WRITE(*,10)I,A,J,B10FORMAT(1X,I3,F6