アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは。
fortranのtxtファイル出力について質問させていただきます。
下記のようなコードでtxtファイルに計算結果を出力させています。(途中省略)

open(20, file ='outputx1.txt')
do ax1 = 1, m
do ax2 = 1, l
if (sum2(ax1, 1, ax2) == 1) then
write(20,*) ax1, ax2
endif
enddo
enddo
close(20)

ここでm=103,l=300です。
このコードで出力すると、結果は以下のようになります。

     9    293
     9    294
     9    295
     10     97
     10     98
     10     99

しかし、以下のようにtxtファイルを出力したいと考えています。

9 164
9 165
9 166
10 151
10 152
10 153

*の部分を色々といじってみたのですが、うまいやり方が見つかりません。
説明不足とは思いますが、アドバイスよろしくお願いします。

A 回答 (3件)

write(20,*) ax1, ax2


の書式を明示的に指定して例えば下記のようにすれば上手く行くかと思います。
write(20,'(i0,1x,i0)') ax1, ax2

以上ご参考になれば幸いです。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
karupyon様の方法で思った通りtxtファイルを出せるようになりました。
ありがとうございます!

お礼日時:2012/06/04 11:04

や~, 「今の出力でも動くようにあとのプログラムを修正する」方が簡単じゃないかなぁ.

    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
txtファイルの出力を変えることはできたのですが、その後C++で読み込むことが出来ない状態です。
ご指摘の通り、C++の方を修正してみたいと思います。

お礼日時:2012/06/04 11:06

なるほどー、fortranでテキストファイルを出力されてたんですね。

。。

参考URLの
18.13 CSVファイルを書き出す方法
が参考になると思います。

ただし、参考URLの手順の
1.カンマ区切りでバッファに出力
2.バッファ内の空白を削除
","(カンマ)を" "(空白)に変えただけでは上手くいきません。

1.カンマ区切りでバッファに出力
2.バッファ内の空白を削除
3.バッファ内の空白をカンマに置換する
という手順でできると思います。


でも、空白区切りよりカンマ区切りの方が、
後のプログラムでも扱いやすくなると思うんですけどね。

参考URL:http://www.nag-j.co.jp/fortran/FI_18.html#writeCSV
    • good
    • 0
この回答へのお礼

二つの質問にご回答いただきありがとうございます。
txtファイルの出力を変えることはできたのですが、C++の方で読み込めないようなので、しばらくはC++の方をいじってみたいと思います。
また質問させて頂くと思いますので、どうかよろしくお願いします。

お礼日時:2012/06/04 11:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています