• ベストアンサー

fortranで

変数の中身を文字定数に入れるにはどうしたらいいのですか? たとえばintegerでa = 5 という変数があって、characterでbが文字定数として宣言しているとします。 bにaの中身の5という文字を入れるということです。

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

手元の Intel Fortran で試しましたが, write(b, *) a ではダメでした. フォーマットも指定しないといけないようです. ちなみに write(b, '(I1)') a では OK. なお, write を使わずに配列で逃げる手もありますが....

zoci
質問者

お礼

その方法でできました!ありがとうございます。 case文を使うよりも結構短くできてうれしいです♪

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

write の装置番号のところに文字列変数を与えればよかったと思う. write(b, *) a でどう?

zoci
質問者

補足

jwe0131i-e line 10 The end of the character variable in an internal file I/O sta tement was detected. error occurs at MAIN__ line 10 loc 00010644 offset 0000002c MAIN__ at loc 00010618 called from o.s. taken to (standard) corrective action, execution continuing. error summary (Fortran) error number error level error count jwe0131i e 1 total error count = 1 というエラーがでます。 変数aが1から9まで代入されて、それからbにその値を文字として代入したいんですが、やはりIF文かCASE文を使ってやるしかないのでしょうか? その方法では一応対処できるんですが、プログラムが長くなるのでできれば省略したいんです。

関連するQ&A

専門家に質問してみよう