在Fortran中读取未知宽度的整数

时间:2017-10-04 07:57:38

标签: fortran fortran2008

我试图读取这一行中的整数:

# 14 14 10

在Fortran 2008中。

我试图使用此代码:

read(21, "(A, I,I,I)") garbage, a, b, c

但这不符合标准。英特尔Fortran发出警告" Fortran 2008 does not allow this edit descriptor. [I]"和其他qeustions解释了这个问题:Nonnegative width required in format string Error: Nonnegative width required in format string at (1)

如何使用Fortran 2008正确读取未知宽度的整数?我不能简单地指定I2,因为我事先不知道整数的宽度。

1 个答案:

答案 0 :(得分:2)

正如我在评论中暗示的那样,您可以使用列表定向I / O轻松阅读此类内容。编译器然后自己识别哪些字符属于输入列表中的每个项目并解析它们。这些项目可以用空格,逗号或换行符分隔。

read(21,*) garbage, a, b, c

这是以交互方式阅读内容的最常用方法,但对于解析数据文件(CSV和类似文件)中的列表也很有用。

如果输入记录中没有数字(文本文件中的行),则读数将在下一条记录中继续。