相关疑难解决方法(0)

阅读免费格式,无需提前

在给定的文件记录中,我需要先读取前两个整数元素,然后读取其余的行(大量真实元素),因为赋值取决于前两个.假设前两个的格式整数元素并没有很好地定义.

解决问题的最佳方法可能是:

read(unitfile, "(I0,I0)", advance='no') ii, jj
read(unitfile,*) aa(ii,jj,:)
Run Code Online (Sandbox Code Playgroud)

但在我看来,gfortran中不允许使用"(I0)"规范.

基本上,在unitfile中读取的文件可能是这样的:

0   0    <floats>
0   10   <floats>
10   0    <floats>
100   0    <floats>
100   100    <floats>
Run Code Online (Sandbox Code Playgroud)

很难用任何类似Fortran的固定字段格式规范来阅读.

有没有其他方法来解决这个问题,显然是微不足道的问题?

io file-io fortran

7
推荐指数
1
解决办法
918
查看次数

输出格式:gfortran 中空格过多

使用 gfortran 4.6。这段代码:

PROGRAM f1
IMPLICIT NONE

INTEGER :: i=1, j=3

WRITE(*,*) "integer i is ", i, ", and j is ", j, "."
END PROGRAM f1
Run Code Online (Sandbox Code Playgroud)

产生这个控制台输出,其中有太多空格:

 integer i is            1 , and j is            3 .
Run Code Online (Sandbox Code Playgroud)

我是否可以设置一些设置,以便第一个标记(“整数”)之前没有空格,因此标记之间的空格只是一个空格?我知道一个解决方法是

WRITE(*,'(A,I1,A,I1,A)') "integer i is ", i, ", and j is ", j, "."
Run Code Online (Sandbox Code Playgroud)

但这似乎非常麻烦,每次我有一个 print 语句时都必须这样做 - 宁愿它更像 C++,在输出中显式写入任何空格。

formatting fortran gfortran output

3
推荐指数
1
解决办法
1990
查看次数

标签 统计

fortran ×2

file-io ×1

formatting ×1

gfortran ×1

io ×1

output ×1