プロが教えるわが家の防犯対策術!

列数の分からないcsvファイルを想定して、配列を用いて読み込むプログラムを作成しようと考えています。

試しに十分に大きい1次元配列を用いてデータを読みこむプログラムを作成したところ
1行目読み込み時に行をまたいでデータを読み込んでしまいました。

なんとか、各行のデータだけを読み取る方法はないでしょうか?

よろしくお願いします。

ちなみにプログラムの内容、入力データ、出力結果は次の通りです。

・プログラム
implicit none
integer a(5),i
open(10,file='a.csv',status='old')
read(10,*)(a(i),i=1,5)
write(*,*)(a(i),i=1,5)
close(10)

・入力データ
    1,2,3,4
    5,6,7,8
    9,1,2,3

・出力結果
    1 2 3 4 5

A 回答 (2件)

ちょっと強引かもしれないけど、



implicit none
integer a(5),i
character(80) line
open(10,file='a.csv',status='old')
read(10,'(a)') line
read(line,*,end=1)(a(i),i=1,5)
1 write(*,*)(a(i),i=1,5)
close(10)
end
    • good
    • 1
この回答へのお礼

できました!ありがとうございます。

お礼日時:2011/09/29 11:20

あの、単純に「5つ読め」って命令しちゃってるんじゃないかと?



integer a(4),i

read(10,*)(a(i),i=1,4)
write(*,*)(a(i),i=1,4)
    • good
    • 1
この回答へのお礼

回答ありがとうございます。

何列あるかどうか分からないデータを取り扱いので、
あえてデータの列数以上の読み込みをするように命令しました

お礼日時:2011/09/28 17:19

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

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