1

Fortran で次の問題に遭遇しました。たとえば、fmt=* を使用してデータ ファイルから文字配列や実際の任意のリストを読み取る際に、引用符で囲まれていない空白とコンマの両方が要素の区切り文字としてネイティブに見なされます。配列/リストで。コンマが区切り記号として機能するという事実は、私にとって大きな問題です。

質問は次のとおりです。Fortran で、入力ファイルのコンマを区切り記号としてではなく文字として見なすことを許可するセマンティック オプションまたはコンパイル ディレクティブを知っていますか。区切り記号は空白のみです。具体的な例として、次のようなレコードを読むときにそれを望みます:

x,y,z

と:

read (7,*) adummy

adummy(スカラー文字変数) 値x,y,znotを取得しますx

どんな助けでも大歓迎です。

4

1 に答える 1

3

解決策は、データ レコードに一致するようにフォーマットを指定することです。つまり、フォーマットを指定するときに文字データ記述子を使用します。

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

十分な長さの変数であると仮定すると、adummyvalue を持つことになります。x,y,z

ただし、この方法では空白も区切り文字として扱われないため、コンマを文字列として読み取りたいが空白を区切り文字として使用する場合、これを実現する一般的な方法は、レコード全体を文字変数に読み込み、個別の変数に分割することです。その後。

于 2012-07-03T17:51:53.357 に答える