- ベストアンサー
プログラムを解読して、楕円の内外を色で塗る
- このプログラムは、与えられた楕円の内部と外部を色で塗る処理を行います。
- プログラムの仕組みとしては、中心の座標と楕円の短径・長径を入力し、楕円の方程式を元にして座標ごとに色を塗っていきます。
- 生成された結果は、指定したファイル名で保存されます。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
・stdin: 標準入力のこと。標準入力とは何かを説明し始めると長いので省略。 ・fgets(fi,50,stdin): 標準入力から配列fiに1行分のデータを読み込む。最大50バイトまで。 ・atof(fi): 配列fiに入っている文字列からdouble型の数値データを得る。 ・MSから1を引く理由: C言語の配列の添え字は0から始まる。要素数200(MS)の配列の添え字は0~199(MS-1)だから。for(i=0;i<MS;i++)と書けば1を引かなくてもいい。 ・fopen(fi,"wb")): 配列fiの内容をファイル名として、ファイルをバイナリモードで書き込み用に開く。 ・fwrite(header,2,13,fp): 配列headerから2バイト長のデータを13個、fpで示されるファイルに書き込む。
その他の回答 (4)
- D-Matsu
- ベストアンサー率45% (1080/2394)
> unsigned short header[13]={0x4d42,54490,1,0,0,26,0,12,0,MS,MS,1,24}; これがコメント付きでないという時点でサンプル失格というのは他の方の回答と同じ意見として、これはビットマップファイルのヘッダ情報でしょうね。 標準入力については参考URLを読んだ上で、どこがわからないかを補足願います。 #大雑把な説明としてはこれで十分でしょう
補足
標準入力の意味は分かりました。 今分からないのはfgets(fi,50,stdin)とx0=atof(fi)です。 回答よろしくお願いします。
- kmee
- ベストアンサー率55% (1857/3366)
回答が付いているようなので。 > fgets関数の意味が分かりません。 > fgets(fi,50,stdin)とはどういう意味ですか? > atofって何ですか? > x0=atof(fi)とはどういう意味ですか? > if((fp=fopen(fi,"wb"))==NULL)のwbって何ですか? > fwrite(header,2,13,fp);とはどういう意味ですか? これらは全部マニュアルや参考書、解説サイトを読めば書いてあることです。 解説付きで例文が載ってるものもあります。 わからない関数があったらまずはマニュアルを読む、ネットで検索する。これくらいはやりましょう。 その上で、なおわからないことがあったら聞いてみる、くらいでないと上達しません。 まあ、このプログラムは「悪い見本」とも言えるものなので、多少わからなくても仕方無いと思いますが。 例えば > #define MS 200 画像サイズに使ってるけど、MSって名前はどんな意味? > unsigned short header[13]={0x4d42,54490,1,0,0,26,0,12,0,MS,MS,1,24}; 0x4d42とか訳のわかんない数値がコメントも無しにいきなり出てきてるし
補足
僕もunsigned short header[13]={0x4d42,54490,1,0,0,26,0,12,0,MS,MS,1,24};の0x4d42の意味が分かりません。
- kmee
- ベストアンサー率55% (1857/3366)
あなたがわかっている箇所を、私たちがダラダラ解説しても、お互いにとって無駄でしかありません。 わからない箇所を絞ってもらえませんか? あなたが、御自身の理解度を調べることにもなりますし、答える方にとっても楽なので
補足
fgets関数の意味が分かりません。 fgets(fi,50,stdin)とはどういう意味ですか? stdinって何ですか? atofって何ですか? x0=atof(fi)とはどういう意味ですか? printf("中心のy座標:"); for(i=0;i<=MS-1;i++)のMS-1って何ですか? なぜ、MSから1を引いたんですか? if((fp=fopen(fi,"wb"))==NULL)のwbって何ですか? fwrite(header,2,13,fp);とはどういう意味ですか?
- deltaforce_1
- ベストアンサー率34% (88/255)
どう解読するのでしょうか? >これは、楕円の内部と外部に色を塗るプログラムです。 と云う事は初歩的な解読が終わっているのだと思いますが…
補足
一文一文分かりやすく教えてほしいということです。
補足
標準入力の意味を教えてください。