fcode 发表于 2018-1-27 16:55 好的,非常感谢,又学到了知识 |
注意,你可以拿 a 这个二维数组来计算。但是你不能拿 cStr 这个字符串来直接计算。 |
关于格式输出,你可以看彭国伦书,第四章第四节。 以下为范例,希望你弄清楚含义,理解,而不是照抄。 [Fortran] 纯文本查看 复制代码 Program fcode_cn Implicit None Integer , parameter :: NFROM = 9425 , NTO = 9459 , NCOL=13 !//用常数定义可以减少以后的修改量 Integer , parameter :: N = NTO-NFROM+1 Integer :: a(N,NCOL) , i Open(10,File="D:\pre2011-5.txt") Do i = 1 , NFROM-1 !//先跳过(空读)前 NFROM-1 行 read(10,*) End Do Do i = 1 , N !//读取N行 read(10,*) a(i,:) write(*,'(i5,1x,i4,1x,i5,1x,i7,1x,i4,1x,i3,1x,i2,1x,3(i5,1x),3(i1,1x))') a(i,:) End Do End Program fcode_cn 读成字符串的话,就非常简单了,都不需要指定有多少列。甚至都不需要数组。 [Fortran] 纯文本查看 复制代码 Program fcode_cn Implicit None Integer , parameter :: NFROM = 9425 , NTO = 9459 !//用常数定义可以减少以后的修改量 Integer , parameter :: N = NTO-NFROM+1 Integer :: i Character(len=512) :: cStr Open(10,File="D:\pre2011-5.txt") Do i = 1 , NFROM-1 !//先跳过(空读)前 NFROM-1 行 read(10,*) End Do Do i = 1 , N !//读取N行 read(10,'(a512)') cStr write(*,*) trim(cStr) End Do End Program fcode_cn |
fcode 发表于 2018-1-27 12:17 补充求助,怎样读写成字符串以保留原来格式,恕我是菜鸟实在不知,前面都定义整型了,蒙圈了 |
fcode 发表于 2018-1-27 12:17 是的,我也知道是这个格式的问题,可是就是不能设置好,我设置的都是最后都是一行输出了,您能不能在帮忙看看如何才能输出数组格式的,不甚感激啊,实在是搞不定,先谢谢哈 |
读到内存里就没有格式了。内存里是二进制(无格式的) 你只有在输出的时候,再重新指定格式。 或者你就直接读成字符串,这样就可以保留原有格式了。 知识补充:有格式的数字,是给人看的,但是计算机不能计算(比如加减乘除)。计算机只能计算无格式的二进制。 |
[Fortran] 纯文本查看 复制代码 Program fcode_cn Implicit None Integer , parameter :: NFROM = 9425 , NTO = 9459 , NCOL=13 !//用常数定义可以减少以后的修改量 Integer , parameter :: N = NTO-NFROM+1 Integer :: a(N,NCOL) , i Open(10,File="D:\pre2011-5.txt") Do i = 1 , NFROM-1 !//先跳过(空读)前 NFROM-1 行 read(10,*) End Do Do i = 1 , N !//读取N行 read(10,*) a(i,:) End Do End Program fcode_cn |
捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )
GMT+8, 2024-11-24 02:02