《数据的输入输出.ppt》由会员分享,可在线阅读,更多相关《数据的输入输出.ppt(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据的输入输出 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望2一、格式输出一、格式输出 Fortran规定用指定的规定用指定的“格式编辑符格式编辑符”来实现有格来实现有格式输入输出。式输入输出。1.I编辑符编辑符Iw或或Iw.m(w字宽,字宽,m最少字位)最少字位)write(*,100)100,-30,12100format(1x,i3,i5,i5.4)end format语句为非执行语句,可出现在程序单位语句语句为非执行语句,可出现在程序单位语句(progr
2、am,function)之后和之后和end语句之前的任何位置。语句之前的任何位置。(但为阅读方便,一般统一放在程序最后)(但为阅读方便,一般统一放在程序最后)输出输出 100-300012用于整型数据的输入输出,用于整型数据的输入输出,Integer3说明说明:(1 1)数字在指定区域内向右靠齐;)数字在指定区域内向右靠齐;(2 2)如果输出的列数超过字宽,字宽内充满)如果输出的列数超过字宽,字宽内充满“*”;(3 3)m m不包括负号所占列,输出列数超过不包括负号所占列,输出列数超过m m,按实际列输出。按实际列输出。要输出的数要输出的数要输出的数要输出的数编辑符编辑符编辑符编辑符输出结果输
3、出结果输出结果输出结果说明说明说明说明16401640I5I5 16401640左补空格左补空格左补空格左补空格736736I7.4I7.407360736输出输出输出输出4 4 4 4位数字位数字位数字位数字87368736I8.3I8.387368736按数据实际按数据实际按数据实际按数据实际位数输出位数输出位数输出位数输出-67896-67896I5I5*w w w w不够大不够大不够大不够大42.F编辑符编辑符Fw.d(w字宽,字宽,d小数位数)小数位数)write(*,100)7.42,-194.31,0.12100format(1x,f6.3,f10.2,f4.1)end输出输出
4、7.420-194.310.1用于实数编辑用于实数编辑,Fixed point number5说明说明:(1 1)小数点占一列,数字在指定区域内向右靠齐;)小数点占一列,数字在指定区域内向右靠齐;(2 2)数据的小数部分字宽若小于)数据的小数部分字宽若小于d d则右端补则右端补0 0,大于,大于d d则多则多出的下一位按出的下一位按“四舍五入四舍五入”处理;处理;(3 3)如果输出的列数超过字宽,字宽内充满)如果输出的列数超过字宽,字宽内充满“*”;(4 4)容易)容易“大数印错,小数印丢大数印错,小数印丢”。要输出的数要输出的数要输出的数要输出的数编辑符编辑符编辑符编辑符输出结果输出结果输出
5、结果输出结果说明说明说明说明18.518.5F6.2F6.2 18.5018.50第二位小数补第二位小数补第二位小数补第二位小数补0 0 0 01875.4781875.478F9.2F9.21875.481875.48多余小数四舍五入多余小数四舍五入多余小数四舍五入多余小数四舍五入-78567.83-78567.83F9.3F9.3*w w w w位数不够位数不够位数不够位数不够0.0006785760.000678576F10.4F10.40.00070.0007截去了有效数字截去了有效数字截去了有效数字截去了有效数字63.E编辑符编辑符Ew.d(w字宽,字宽,dE前数字部分小数位数)前数
6、字部分小数位数)write(*,100)7.42,-194.31,0.12100format(1x,e11.3,e10.2,e8.1)end输出输出.742e+01-.19e+03.1e+00用于实数编辑,以标准指数形式输出,用于实数编辑,以标准指数形式输出,Exponent7说明说明:(1 1)指数部分含)指数部分含e e占占4 4列,数字在指定区域内向右靠齐;列,数字在指定区域内向右靠齐;(2 2)小数点及前面的负号各占一列(有的系统还有)小数点及前面的负号各占一列(有的系统还有0 0););(3 3)小数部分字宽若小于)小数部分字宽若小于d d则右端补则右端补0 0,大于,大于d d则多
7、出的下则多出的下一位按一位按“四舍五入四舍五入”处理;处理;(4 4)如果输出的列数超过字宽,字宽内充满)如果输出的列数超过字宽,字宽内充满“*”;(5 5)要有足够字宽。)要有足够字宽。8要输出的数要输出的数要输出的数要输出的数编辑符编辑符编辑符编辑符输出结果输出结果输出结果输出结果说明说明说明说明123.45123.45E12.4E12.4.1235.1235e+03e+03第第第第5 5 5 5位小数四舍五入位小数四舍五入位小数四舍五入位小数四舍五入-0.005-0.005E11.3E11.3 -.500-.500e-02e-02小数右端补小数右端补小数右端补小数右端补0 0 0 087
8、6.53876.53E8.3E8.3*w w w w不够大不够大不够大不够大7621.27621.2E15.6E3E15.6E3.762120.762120e+004e+004指数为三位数指数为三位数指数为三位数指数为三位数 实数输出既可用实数输出既可用F编辑符,也可用编辑符,也可用E编辑符号,但整编辑符号,但整数输出只能用数输出只能用I编辑符。编辑符。复数格式输出需要两个实数编辑符。复数格式输出需要两个实数编辑符。write(*,100)(2.2,3.4),(0.0,-5.8)100format(1x,f6.3,f6.3,e10.2,e10.2)end输出输出 2.200 3.400.00e
9、+00-.58e+0194.G编辑符编辑符Gw.d(w字宽,字宽,d有效位数)有效位数)在在 用用F格式,格式,F格式后格式后4列留空。列留空。G编编辑辑符符虽虽然然可可以以避避免免F格格式式“大大数数印印错错、小小数数印印丢丢”和和E格格式式不不直直观观的的弊弊病病,但但其其输输出出时时无无法法事事先先获获知知F输输出出的的小小数数位位数数,输输出出样样式式也也零零乱乱无无规规律律,故故不不推推荐荐使用。使用。要输出的数要输出的数要输出的数要输出的数编辑符编辑符编辑符编辑符输出结果输出结果输出结果输出结果说明说明说明说明0.02340.0234G12.4G12.4.2340.2340e-01
10、e-010.11010d d3467.343467.34G12.4G12.43467.3467.1010d d346.734346.734G12.5G12.5346.73346.73100.10.1根据实数大小决定用根据实数大小决定用F型或型或E型格式输出型格式输出105.D编辑符编辑符Dw.d(w字宽,字宽,d小数位数)小数位数)write(*,100)1.378675893D+02,1784.5D-03100format(1x,d18.10,f11.7)end输出输出.1378675893d+031.7845000 双精度数编辑符,使用方法与双精度数编辑符,使用方法与E编辑符相仿。双编辑符
11、相仿。双精度数也可以用精度数也可以用F编辑符输出。编辑符输出。6.L编辑符编辑符Lw(w字宽)字宽)write(*,100).true.,.false.100format(1x,l4,l7)end输出输出 TF用于双精度数据的输出,用于双精度数据的输出,Double Precision用于逻辑型数据的输出,用于逻辑型数据的输出,Logical117.A编辑符编辑符Aw(w字宽,无字宽,无w按实际长度输出)按实际长度输出)write(*,100)China,NewYork,Fortran100format(1x,a6,a3,a)end输出输出 ChinaNewFortran8.撇号编辑符撇号编辑
12、符write(*,100)3,5.6,Limin100format(1x,x=,i3,y=,f6.3,a,student)end输出输出 x=3y=5.600Liminstudent用于字符型数据输出用于字符型数据输出用来插入所需的字符串用来插入所需的字符串129.H编辑符编辑符用来输出字符常量(不推荐使用)。用来输出字符常量(不推荐使用)。write(*,100)3,5.6,Liminwrite(*,200)100format(1x,2Hx=,i3,2Hy=,f6.3,a,8Hstudent)200format(1x,Hello,15HHappy New Year!)end输出输出 x=3y
13、=5.600Liminstudent Hello,HappyNewYear!nH(n字串长度,字串长度,n要准确无误)要准确无误)10.X编辑符编辑符用来在输出时产生空格。用来在输出时产生空格。nX(n空格个数)空格个数)write(*,100)3,5.6,-0.23100format(1x,i3,2x,f3.1,3x,f6.2)end输出输出 35.6-.231311.纵向走纸控制纵向走纸控制 Fortran规规定定将将输输出出的的第第一一个个字字符符作作为为纵纵向向走走纸纸标标记记,用用来来控控制制行行与与行行之之间间的的间间隔隔,打打印印从从第第二二个个字符开始。字符开始。控制符控制符控
14、制符控制符含义含义含义含义空格空格空格空格正常换行正常换行正常换行正常换行0 0 0 0一行隔一行一行隔一行一行隔一行一行隔一行1 1 1 1换页换页换页换页(隔隔隔隔64646464行行行行)+不换行(由本不换行(由本不换行(由本不换行(由本行开头叠打)行开头叠打)行开头叠打)行开头叠打)其它字符其它字符其它字符其它字符正常换行正常换行正常换行正常换行100100 FormatFormat语句语句语句语句输出结果输出结果输出结果输出结果说明说明说明说明format(1x,i3,i4)format(1x,i3,i4)24612342461234正常换行正常换行正常换行正常换行format(fo
15、rmat(i=,i3,i=,i3,j=,i4)j=,i4)i=246j=1234i=246j=1234正常换行正常换行正常换行正常换行format(i=,i3,format(i=,i3,j=,i4)j=,i4)=246=246j=1234j=1234i i被吃掉,换行被吃掉,换行被吃掉,换行被吃掉,换行format(i3,i4)format(i3,i4)4612344612342 2被吃掉,换行被吃掉,换行被吃掉,换行被吃掉,换行format(4x,i3,i4)format(4x,i3,i4)24612342461234第一个第一个第一个第一个 被吃掉,换行被吃掉,换行被吃掉,换行被吃掉,换行
16、format(0,i3,i4)format(0,i3,i4)24612342461234隔一行打印隔一行打印隔一行打印隔一行打印write(*,100)246,12341412.重复系数重复系数使用重复系数来规定重复使用的编辑符。使用重复系数来规定重复使用的编辑符。下面的下面的format语句等价:语句等价:format(1x,i3,i3,i3,f6.2,f6.2)format(1x,3i3,2f6.2)format(1x,i3,2x,f6.2,2x,i3,2x,f6.2,2x)format(1x,2(i3,2x,f6.2,2x)13.斜杠编辑符斜杠编辑符用于结束本行记录输出,开始下一行记录输
17、出。用于结束本行记录输出,开始下一行记录输出。write(*,100)5,4.2,6,7.8100format(1x,i3,f6.2/1x,i3,f6.2/)输出输出 54.20 67.80 (空一行)空一行)中间空一行需用中间空一行需用两个连续斜杠两个连续斜杠15二、二、write和和format语句的相互作用语句的相互作用1.如果输出项的个数少于输出量编辑符个数,多余的如果输出项的个数少于输出量编辑符个数,多余的 编辑符不起作用,但紧邻的非输出量编辑符除外,编辑符不起作用,但紧邻的非输出量编辑符除外,输出直到下一个输出量编辑符之前为止。输出直到下一个输出量编辑符之前为止。write(*,1
18、00)5,4.2100format(1x,i3,f6.2,2x,end,i3,f6.2)end输出输出 54.20end 2.如果输出项的个数多于输出量编辑符个数,重新使如果输出项的个数多于输出量编辑符个数,重新使 用格式说明,但用格式说明,但开始新记录开始新记录。write(*,100)5,4.2,2,7.8100format(1x,i3,f6.2)输出输出 54.20 27.80同同format(1x,i3,f6.2/1x,i3,f6.2),但不同但不同format(2(1x,i3,f6.2)163.如果在格式说明中含有重复编辑符组,当格式说明如果在格式说明中含有重复编辑符组,当格式说明
19、用完后,用完后,只有最后一个编辑符组(含重复系数)及只有最后一个编辑符组(含重复系数)及 其后面的编辑符被重复使用。其后面的编辑符被重复使用。write(*,100)5,6,4.2,7.8,2,9.3,9.2,3100format(1x,2(i2,2x),2(f4.1,2x),i3)end输出输出 564.27.82 9.39.2 34.如果有输出量,但在格如果有输出量,但在格 式说明中无相应编辑符,式说明中无相应编辑符,则输出永不停止。则输出永不停止。write(*,100)5100format(1x,i=)输出不停的输出不停的“I=”5.可以用可以用format()输出空行,输出空行,相应
20、相应write语句应无输出量。语句应无输出量。6.右边两对右边两对write和和 format作用相同。作用相同。write(*,100)i=,5write(*,200)5 100format(1x,a,i3)200format(1x,i=,i3)end17Tc(把输出的位置移动到本行的第把输出的位置移动到本行的第c个字节)个字节)write(*,”(T3,I3)”)100write(*,”(10X,T3,I3)”)100TLc(输出位置向左移动输出位置向左移动c个字节,不常使用)个字节,不常使用)write(*,”(1X,A10,TL3,I3)”)”CALL 119”,110TRc(输出位置
21、向右移动输出位置向右移动c个字节)个字节)Bw.m(把整数转换成二进制数输出,输出占把整数转换成二进制数输出,输出占w个字符宽,个字符宽,固定输出固定输出m个数字,个数字,m值可以不给定)值可以不给定)Fortran 90 新添加:新添加:write(*,”(1X,B6.5)”)318三、格式输入三、格式输入 Fortran用用read和和format语语句句的的联联合合来来实实现现格格式式输输入入。各各编编辑辑符符含含义义与与输输出出时时相相同同,但但输输入入时时不不必必考考虑虑纵向走纸控制。纵向走纸控制。1.整数的输入整数的输入read(*,100)i,j100format(i4,i5)输
22、入输入 34-56结果结果 i=34,j=-56注意:注意:在字段宽度内,在字段宽度内,空格按空格按0处理。处理。(错误!)(错误!)2.实数、复数和双实数、复数和双 精度数的输入精度数的输入read(*,100)x,y,z100format(2f4.2,e6.2)输入输入 1346-5.17843e3结果结果 x=13.46,y=-5.1,z=78430注意:注意:输入数据可带可不带输入数据可带可不带小数点,自带小数点优先,小数点,自带小数点优先,但输入数据小数点占列。但输入数据小数点占列。19complex xread(*,100)x100format(2f4.2)输入输入 134617.
23、4结果结果 x=(13.46,17.4)复数输入两实数复数输入两实数real*8 x,yread(*,100)x,y100format(f12.10,d12.10)输入输入 13.4617445d14.57d2 结果结果 x=134.617445,y=457D,E,F,G编辑符作用相同编辑符作用相同3.逻辑型数据的输入逻辑型数据的输入logical a,b,cread(*,100)a,b,c100format(l6,2l4)输入输入.true.ttfcftt 结果结果 a=.true.,b=.true.c=.false.注意注意数据可以是数据可以是.true.、.false.,也可以是也可以是
24、T、F开头的任开头的任何字符串。何字符串。204.字符型数据的输入字符型数据的输入(1)格式输入字符)格式输入字符不用带撇号,不用带撇号,字符串常量间字符串常量间没有分隔没有分隔 标记。标记。(2)输入字串与字符变量长度不同时。字串短时右补空)输入字串与字符变量长度不同时。字串短时右补空 格,字串长时格,字串长时向右看齐,左边截去。向右看齐,左边截去。(3)推荐使用不带长度说明的推荐使用不带长度说明的A编辑符,编辑符,此时变量根据此时变量根据 长度自动选值。长度自动选值。character*4 w,x,y,z*5read(*,100)w,x,y,z100format(a5,a3,2a)输入输入
25、 chinanewwanghello 结果结果hinaw,newx,wangy,hellz215.其他说明其他说明(1)X编辑符表示在读输入编辑符表示在读输入 记录时向右跳过若干列。记录时向右跳过若干列。(2)如果格式说明符已用完,)如果格式说明符已用完,但还有未输入变量,则重复但还有未输入变量,则重复 使用编辑符,但应重开一行使用编辑符,但应重开一行 记录。记录。(3)斜杠编辑符表示本记录)斜杠编辑符表示本记录 输入结束,并接着输入第二输入结束,并接着输入第二 个记录。个记录。read(*,100)i,j100format(1x,i3,2x,i3)输入 1234567890结果 i=234,
26、j=789read(*,100)i,jread(*,200)m,n100format(i3)200format(i3/i3)输入 1234567890 1234567890 1234567890 1234567890 结果 i=123,j=123 m=123,n=123(4)可以将)可以将format语句中括语句中括 号中的格式说明放在号中的格式说明放在write、print和和read语句中,但说语句中,但说 明内容不宜过长。明内容不宜过长。read(*,(2i3)i,j write(*,(1x,2i3)10,20 print(1x,2i3),10,2022上机目的:上机目的:1.掌握各种格式编辑符的作用;掌握各种格式编辑符的作用;2.熟悉格式语句与格式输入输出语句的相互作用。熟悉格式语句与格式输入输出语句的相互作用。上机内容:上机内容:1.调试课本中的所有程序;调试课本中的所有程序;2.习题第习题第6、10题。题。