プロが教える店舗&オフィスのセキュリティ対策術

C言語で特定列だけを抽出して配列に格納し、出力したいです。

読み込みファイル(read.txt)
0,0,0,1,0,0
0,0,1,0,0,0
0,0,2,7,0,0

0,0,179,1,0,0
1,0,0,5,0,0
1,0,1,2,0,0
1,0,2,7,0,0

379,0,179,1,0,0

から4列目だけを抽出したいです。

ファイルの1列目は0から379まで変化し、3列目は0から179まで変化します。
よって380×180=68400行あります。

抽出する際、配列[380][180]の対応する箇所に4行目を格納してから出力させたいです。

上の例より
配列[0][0]=1
配列[0][1]=0
配列[0][2]=7

配列[0][179]=1
配列[1][0]=5
配列[1][1]=2
配列[1][2]=7

配列[379][179]=1

となって出力結果は
1
0
7

1
5
2
7

1
とやりたいのですが上手く行きません。

どなたか教えていただけませんか?
C言語初心者なので詳しく教えていただけると幸いです。

A 回答 (4件)

そもそも「C を選ぶのが間違い」のような気がしてきた.



Perl なり Python なり Ruby なりといったスクリプト系の言語を使う方が, はるかに簡単だと思うのよ.
    • good
    • 1

1行読む


カンマ区切りで最初の数値を読み取り → x
カンマ区切りで次の数値を読み取り → 読み捨て
カンマ区切りで次の数値を読み取り → y
カンマ区切りで次の数値を読み取り → z
配列[x][y] = z
以上、EOF まで繰り返し

読み取りにはこの辺りがお勧め
https://linuxjm.osdn.jp/html/LDP_man-pages/man3/ …
    • good
    • 0

極論すれば


データを読み込んでしかるべきところに入れて吐き出す
だけなのだが, 具体的にはどこまでできていてどこで何に困っている?
    • good
    • 0

配列は[380][180]ですが、read.txtは、5個で1つの塊だと思いますので、


68400*5=342000あると思います。
これを仮にリード[342000]として、
更に分割[68400][5]とすると、
分割[i][0]=配列の先頭添え字番号
分割[i][1]=ダミー
分割[i][2]=配列の2番目の添え字番号
分割[i][3]=配列[分割[i][0]][分割[i][2]]の値
分割[i][4]=ダミー
ということになると思います。
いかがでしょうか。
    • good
    • 0

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

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


このQ&Aを見た人がよく見るQ&A