0

我有一个字符数组names(10)*6。我正在循环 I = 1:10 并写入名称(I)的值。

问题是名称定期缺少值,如果特定名称(I)是这种情况,我想跳过它。

我试图做这样的事情。

   IF(names(I) .NE. 0) THEN 
        WRITE(4,202) names(I)   
    ENDIF

我收到一个错误,告诉我我将字符与 0 进行比较是愚蠢的。这是有道理的。我应该把它和什么比较?像这样的空地?在我为它声明空间后,如何检查它是否未定义或为空?

IF(mychar(I) .NE. '      ') THEN 
     WRITE(4,202) names(I)  
ENDIF

目标是仅在确实存在某些内容时才发出写入命令。:-)

编辑注意:我可能不会初始化这个数组。我想知道未定义的声明索引的默认值是什么,或者是否有一个函数可以检查字符数组索引是否为空。

4

1 回答 1

1

您可能对内在len_trim函数感兴趣。一如既往地阅读 Fortran 手册。

于 2014-06-25T16:23:44.127 回答