1

我在 Fortran 中遇到了以下问题:例如,在从具有 fmt=* 的数据文件中读取字符数组或任何实际列表时,非引号间的空格和逗号本身都被视为元素的分隔符在数组/列表中。逗号充当分隔符这一事实对我来说是一个大问题。

所以问题是:您是否知道 Fortran 中的任何语义选项或编译指令允许将输入文件中的逗号视为字符而不是分隔符,唯一的分隔符是空格?作为一个具体示例,我希望在阅读以下记录时这样做:

x,y,z

和:

read (7,*) adummy

将导致adummy(标量字符变量)获得值x,y,znot x

任何帮助都将受到欢迎。

4

1 回答 1

3

解决方案是指定格式以匹配您的数据记录,即在指定格式时使用字符数据描述符:

read(7,fmt='(A)')adummy

将导致adummy具有 value x,y,z,假设它是一个足够长的变量。

但是这种方法也不会将空格视为分隔符,因此如果您想将逗号读取为字符串但将空格作为分隔符,实现此目的的常用方法是将整个记录读入字符变量并拆分为单独的变量然后。

于 2012-07-03T17:51:53.357 回答