1

Fortran で以下のように enum UNIT を定義し、数値ではなく文字列として値を出力したいと考えています。

public :: UNIT,E_TIME_STEP,E_DAY,E_WEEK,E_MONTH,E_YEAR
ENUM , BIND(C)
ENUMERATOR :: UNIT=0
ENUMERATOR :: E_TIME_STEP
ENUMERATOR :: E_DAY
ENUMERATOR :: E_WEEK
ENUMERATOR :: E_MONTH
ENUMERATOR :: E_YEAR
END ENUM

ファイルから文字列値 ("TIME_STEP"、"DAY" など) を読み取り、対応する列挙値 (E_TIME_STEP、E_DAY など) を返す関数があります。

これは、読み取り中に問題なく適切に機能します。ただし、読み取り中に文字列値をどこにも保存しません。読み取り後は、列挙型の値 (E_TIME_STEP、E_DAY など) しかありません。コンソールに出力するときに、数値ではなく文字列を出力する必要があります。ひもを最初の場所に保管せずに取得することはできますか?

入力文字列 ("TIME_STEP、"DAY など) を受け取り、列挙名 (UNIT) を返す 2 つの関数と、列挙名と列挙値 (UNIT、1 ~ 5) を受け取り、列挙型の文字列 ("TIME_STEP"、"DAY" など) は、列挙型の名前をローカル変数に再度格納しているため意味がありません。ローカルでも保存せずに文字列を取得することはできますか?

4

0 に答える 0