すべての良いFortranプログラムは、ラインimplicit none
が含ま
PROGRAM test
IMPLICIT NONE
この
PROGRAM test
IMPLICIT NONE
INTEGER, PARAMETER :: ascii = selected_char_KIND ("ascii")
INTEGER, PARAMETER :: ucs4 = selected_char_KIND ('ISO_10646')
INTEGER :: ix
CHARACTER(len=5,kind=ucs4) :: greeting = ucs4_"hello"
OPEN(10,FILE='test.txt')
DO ix=1,10
WRITE (10,'(A5,I4)') greeting, ix
END DO
CLOSE(10)
END PROGRAM test
...解説...試してみてください。その理由は101 Qsで説明されています。スタックオーバーフローについてはここで説明しますが、ここでは繰り返しません。
INTEGER, PARAMETER :: ascii = selected_char_KIND ("ascii")
INTEGER, PARAMETER :: ucs4 = selected_char_KIND ('ISO_10646')
最新のFortran規格では、コンパイラは、文字のこれら2つのkind
Sを提供する必要があります。私は正直なところ、iso_10646
がUTF-8と同じかどうかは分かりませんが、もしそうでなければあなたはおそらく運が悪いでしょう。ここでは、プログラムの後半で使用する文字種を識別するための2つのパラメータを定義します。あなたの目的のために、これらのパラメータの最初のものは不要ですが、それについても知っておくべきです。
あなたのコンパイラが他の文字種をサポートしていると思われる場合は、ドキュメントをお読みください。
(脇:。技術的には、3番目の文字種類名、default
これは、最も可能性の高い旧ascii
かiso_10646
のいずれかに、文字の種類を設定する可能性があるがあるが、これはあなたにとって重要であるならば、あなたのコンパイラのマニュアルを参照してください。私は、テキストhello
と種類ucs4
の持つ文字変数を定義したこれらの行の第二で)
INTEGER :: ix
CHARACTER(len=5,kind=ucs4) :: greeting = ucs4_"hello"
(あなたが上記を参照として、iso_10646
のローカルコードです、)。接頭辞ucs4_
がない場合、文字列hello
はdefault
の種類として解釈され、変数greeting
に格納されるとucs4
に変換されます。この場合、ascii
との文字の(表示)の間に1:1のマッピングがある場合、接頭辞は厳密には必要ありませんが、そうでない場合もあります。
OPEN(10,FILE='test.txt')
DO ix=1,10
WRITE (10,'(A5,I4)') greeting, ix
END DO
CLOSE(10)
ファイル内の特定のレコードで、直接アクセスと書き込みに関するすべてのguffを削除しました。あなたのすぐ必要と思われるものはすべて不要です。したがって、このループはgreeting
(つまりucs4ストリングhello
)とローインデックスをファイルtest.txt
に10回書き込みます。あなたは未フォーマット入力/出力用のファイルを開いているあなたのopen
声明で
END PROGRAM test
「それは動作しません」によるyoubmean何を?このフレーズを避けてください。それは有用ではなく、何も教えていません。具体的にする! –
はい、申し訳ありませんが、あなたが正しいです。つまり、ファイルを作成するのですが、geditなどで開くことができるようにフォーマットされた読み込み可能なファイルは作成されません。 – Dadep