- ベストアンサー
ファイルの中身を分割するプログラムを作りたい
Microsoft Visual C++ 6.0を使用してプログラムを作っているのですがうまくいきません。 作成しようとしているプログラムは、三角形の各座標(x,y,z)が示してあるファイルを入力させ、 その三角形を四分割した座標値を示したものを違うファイルに出力させるというプログラムなのですが・・・ (イメージとしては三角形の各辺の中点を頂点にとってそれぞれをつなげて四つの三角形を作る感じです。) 説明不足ですが、分かる方がいられましたらぜひご教授をお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
fgetsで一行入力して sscanfなどで変数へ取り込めばいいように思います char sbuf[256] fgetg( sbuf, sizeof( sbuf ), fp ); sscanf( sbuf, "%lf %lf %lf", &x, &y, &z ); # テキストファイルからの入力ならほとんどのC言語の参考書に載っているかと
その他の回答 (1)
- redfox63
- ベストアンサー率71% (1325/1856)
どこまで出来ているのでしょう? 『すべて説明しろ』はちょっと無理ですよ プログラミングの形態 Win32APIとか MFCやSTLなど どれを使っているとか ファイルの読み込み部分は出来ているとか 出力形態はこのようにするなど 元データと、新規データの出力位置関係など 具体的に不明な部分を絞りましょう 中点自体は2頂点からなる線分のX成分(またはy成分)の半分を始点座標にベクトル(方向)を考慮して加算すれば算出できます
お礼
回答ありがとうございます。 説明不十分で申し訳ありません。 プログラミングの形態?というのははかりかねますが 入力ファイルはstlのデータを簡略したもので 三角形の数・各三角形の座標が示してあるファイルです。 進捗状況としては大方骨組みは出来ていると思うのですが… 不明な点としては、出力ファイルを新規ファイルで作るには どうしたらいいか? あと、根本的なのですが入力ファイルの中の各座標の値を 変数に割り当てたいのですがやり方がわかりません。 こんなファイル↓ -2.170831 -1.577194 1.341639 -2.683278 0.000000 -1.341639 -0.829180 -2.551945 -1.341639 の値ををそれぞれ、例えばx,y,zに割り当てたいのですが…
お礼
回答ありがとうございます。 テキストファイルを読み直して 無事プログラムを作ることが出来ました。 このような質問に丁寧に回答していただき 本当にありがとうございました。