1 名前:ぬ ◆NUNUK382Dk mailto:sage [2007/12/27(木) 20:32:47 ] エスケープシーケンスやWin32APIなどの環境依存なものでもOK。 ただしその場合、質問者は必ず環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.45【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1197090562/ 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
116 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 11:25:11 ] それにしても混同しそうになる
117 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 15:45:29 ] サーバソケットでTCPの10〜100バイトの可変長データを受信する際、 そのデータのレングスが先頭2バイトにある識別子で判断できる場合って ・まず先頭2バイトをrecvする。 ・識別子を判断して残りのバイト数をrecvする というのが一般的なのでしょうか? recvの第3引数に1500バイトくらいの十分余裕な値を指定すると 勝手に1データの終わりを検出してリターンしてくれるものなのでしょうか? 要は連続してデータが飛んでくる場合に 1データの区切りをrecv1回で済むのか、2回に分けないといけないのかが 知りたいです。
118 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 15:54:11 ] >>117 こっちのがいいと思う ネットワークプログラミング相談室 Port20 pc11.2ch.net/test/read.cgi/tech/1186418855/
119 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 15:58:50 ] >>118 サンクスです。逝って来ます。
120 名前:デフォルトの名無しさん [2007/12/31(月) 16:49:41 ] char bun[] ="すごく長い文章が入っている"; FILE 構造体へのポインタしか受け取ってくれない関数に, この文字列があたかもファイルに入っているかのように 思わせて処理させることはできないものでしょうか? C++ ならいつも std::string と std::istringstream で ストリームとして抽象的に処理しているのですが, どうしても C のライブラリを使う必要があって, 勝手が違って悩んでいます.
121 名前:120 [2007/12/31(月) 16:57:40 ] 標準的な方法ではできないようですね. 使いたいライブラリのソースが手に入って, 手を突っ込んでいいとのことなので素直にそうします. いやぁ,ストリームなんて変な演算子オーバーロードで やだなぁ,とか思っていたのにいつの間にかストリーム べったりの人間になってました.慣れって怖い.
122 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 17:04:49 ] >>120 テンポラリファイル作るとか? ファイルマッピング使って、バッファーの不一致が起きないようにファイルをクローズしてフラッシュするまでタイミングを取るとか?
123 名前:デフォルトの名無しさん [2007/12/31(月) 17:22:09 ] 質問です、VC2005で、多重継承のクラスを作ってるのですが ランタイムエラーが出てしまいました。 (0xC0000005: 場所0x00000010を読み込み中にアクセス違反が発生しました) デバッガの自動変数の欄にはthisポインタのみ載っていて(値は0とかではなく、 ちゃんとしたアドレスっぽい)、thisポインタの「+」をクリックして展開すると 「CXX0030: エラーです: 式を評価できません」 となっています。 hoge0---hoge1---hoge2---hoge3---hoge4 ---hoge5 ---hoge6---hoge7 ---hoge8 ↑のような感じで継承して(全てvirtualをつけて継承してます)、 最後に2,4,5,7,8を多重継承してhogerableクラスを定義して、 そのインスタンスを生成して使っています。 2や4578で実装されている仮想関数(f())をhogerableクラスでも実装し、 そのときの条件によって return hoge5::f(); とかやろうとしたのですが、 hoge5::()f に飛んだときは正常に動くものが、hoge7::f() に飛ぶとランタイムエラーが 起こりました。 hoge7::f()の中は if (!hoge2::f()) return false; if (!p) // ここでエラー。pはhoge3にあるメンバ return false; となっています。 こういうときは何を疑えばいいのでしょうか? よろしくお願いします。
124 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 17:25:53 ] hoge3のインスタンスがたくさんできてる予感
125 名前:123 mailto:sage [2007/12/31(月) 17:51:13 ] すみません、言われてから一番下のクラスを見直したら速攻で解決しました、 最後の多重継承にvirtualをつけてませんでした(汗 けどどういう条件でvirtualをつけるべきなのかよくわからない・・・ ともあれありがとうございました。
126 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 18:28:52 ] そもそもそこまでの多重継承になるなら設計がおかしいのでは。
127 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 18:52:38 ] >>126 そだね。多重継承も使いすぎると良くないね。 俺も、多重継承やテンプレートを使いまくって複雑怪奇なオブジェクトを作っていた頃がありました。しかし、だんだんとこんな複雑な構造は不要だって解ってくるんだな。 C++をはじめて誰もが一度は通る道かな。
128 名前:デフォルトの名無しさん [2007/12/31(月) 19:47:15 ] >>101 もうちょっと具体的に書くと、 if(Char_Trans[0]!=0){ SetDrawBlendMode( DX_BLENDMODE_ALPHA , Char_Trans[0] ) ; if(LoadCharName_BC[0]!='\x00'){DrawGraph(Draw_X+160,Draw_Y,CHAR_BC_Handle,TRUE);}//キャラを立たせる。奥中央 } このランダム部分を変える方法はありますかね? 年末に何やってるんだ俺はorz
129 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 19:54:40 ] >>128 生きろ
130 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 20:40:17 ] >>128 どの辺がランダムなのか教えてくれ。
131 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 20:44:54 ] >>128 エスパーするとDraw_XとDraw_Yを直接数字に置き換えるとか
132 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 20:46:00 ] #define Draw_X (rand()/800) #define Draw_Y (rand()/600)
133 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 22:41:31 ] >>110 仮引数はどうあっても int 。
134 名前:デフォルトの名無しさん [2008/01/01(火) 21:05:24 ] C++を勉強したいのですが 初心者向けで分かりやすい本があったら 教えて下さい。 Cはある程度は把握してます 何かお勧めの本はありますかね?
135 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 21:18:23 ] >>134 ロベールでいいんじゃね。
136 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 21:55:51 ] Accelerated C++とか。
137 名前:デフォルトの名無しさん [2008/01/01(火) 23:08:21 ] やさしいC++ とかって 分かりやすいんですかね?
138 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 23:10:37 ] >>137 基礎過ぎて C と被る所が多過ぎる。
139 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 23:13:44 ] >>134 CとC++はかなり違う言語だから、なめてかからないほうがいいよ。 STLやらBoostやら、C++は変態すぎる。
140 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 23:16:00 ] かなり違う言語だけど、慣れれば簡単なもんだ。 いい本を選べよ。
141 名前:デフォルトの名無しさん [2008/01/01(火) 23:40:20 ] 分かりやすい本とかお勧めの本は やっぱりそれぞれ違いますよね? ロベールかぁ.. 本屋でいろいろ立ち読みしてみて 読みやすい本を選ぶのがいいんですかね?
142 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 23:45:23 ] >>139 C++がCより使いやすい要素はあるんですかね。
143 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 23:48:51 ] 「使いやすい」の定義によるんじゃない? 初心者に勉強させるって意味なら混乱する要素満載でとても使いやすいとは思えないけど
144 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 23:54:42 ] >>142 クラス。 iostreamなんかは窓から投げ捨てていい。
145 名前:デフォルトの名無しさん [2008/01/01(火) 23:58:01 ] STL
146 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 00:00:19 ] >>142 C++は使いやすいというよりも、強力な言語だと思う。強力であるが故に使いこなすのが難しい面が多々ある。 例えば文字列クラスを作ると、最初から言語仕様に組み込まれていたかのように文字列を扱えるなんて、強力というか自由度高すぎ。
147 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 00:05:47 ] >>140 MPLとかも簡単と思う?
148 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 00:07:56 ] 例外処理も地味に便利だよなあ
149 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 00:19:19 ] 演算子オーバーロードとか例外とか最近の言語なら珍しくないって。
150 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 00:24:45 ] STL と参照があるだけで C より随分楽になるわ。
151 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 00:25:30 ] >>147 使わんし。
152 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 01:15:12 ] >>149 C++で成功したから、最近の言語で実装されるようになったんだろ。
153 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 01:30:02 ] 例外はJavaが早くね?他にもあるかもしれんが・・・
154 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 03:30:17 ] >>151 MPLを使わないのにC++に慣れてるとか大きく出たね それでC++が簡単と言うのは違うんじゃないかい? あんたにとっては簡単かもしれんけど、一般論ではないわな
155 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 03:38:48 ] >>151 何私は最先端ですみたいになってんの? あんなもんライブラリでも作る必要がなければ使わない。 使えない。可読性が低くなる。
156 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 03:50:28 ] ライブラリ作らないでプログラムしてるのはすごいな MPLより"やばい"type_traitsがtr1に入ってるぞ 可読性が低い==俺は勉強してないので読めない
157 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 04:03:21 ] mplってboost?
158 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 09:45:53 ] 水掛け論したいなら他でやれ。
159 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 11:51:00 ] pc11.2ch.net/test/read.cgi/tech/1197132472/659 このプログラムが先日まで実行できたのですが、 probably corrupted stack segmentation fault と出て実行不可になりました。こちらの環境が原因でしょうか?
160 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 12:19:23 ] プログラムがおかしい。
161 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 12:54:26 ] >>156 type_traitsのどこがやばいの?traitsの考え方は難しくないし コンパイル時の型の判定は便利だからboost使っている。 今でもiterator_traitsやchar_traitsはある。 >可読性が低い==俺は勉強してないので読めない 就職したら正論が通用しない場合があることがわかるよ。
162 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 12:54:58 ] >>159 とりあえず、 ,とか?とか使うのやめて読みやすく書き直して味噌
163 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 12:57:50 ] >>159 負数または INT_MAX を超える値を入力してない?
164 名前:159 mailto:sage [2008/01/02(水) 13:05:17 ] 実行時のコマンドが誤ってました。お騒がせしてサーセン
165 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 13:05:56 ] >>159 宿題丸投げした挙句デバッグも人任せ?お前の肩の上についている物体は飾りか
166 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 13:22:34 ] >>165 なんでそんなムキになるん?
167 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 13:23:46 ] ムキっていうかうざくなるのは当然 こんなんみりゃ誰だってうざくなるわ
168 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 13:24:12 ] >>165 肩の上って… 首を傾げてるってことかあぁぁ!!!!!!111
169 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 13:24:51 ] こういうのは真性だからねぇ、わざわざ言わずにスルーだな
170 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 13:24:52 ] まあ根っこからこういう奴っているんだよな、治らないよ、小さい時の教育の問題だろう
171 名前:165 mailto:sage [2008/01/02(水) 13:29:09 ] ゴメン言い過ぎた。 今度から気をつけるよ。
172 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 13:31:29 ] こういうのを見て毎回思うことは、 宿題スレと質問スレの住人、絶対かぶってるよな
173 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 13:45:12 ] うん
174 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 14:26:46 ] 誰も>>159 のプログラムが間違ってることは指摘してやらないんだなw
175 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 14:36:16 ] strcatのcatって何の略ですか?
176 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 14:38:05 ] >>175 ja.wikipedia.org/wiki/Strcat
177 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 14:41:47 ] GoogleでもYahooでもどこでもいいから、検索して最初の10ページくらいは見て欲しいな そもそも検索したかどうか知らないけど
178 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 14:45:36 ] どうでもいいが、>>176 のバッファオーバーラン対策コードはsを初期化しているかが曖昧だから不完全だ。strlen(s)がsizeof(s)を超える場合がある。 と思った。
179 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 17:07:02 ] 初期化されてなかったら、それはバッファオーバーランとは別問題だろ strcpyとかならまだしも、catは連結なんだから初期化前提
180 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 17:10:55 ] 中途半端に"〜.ex"とかになった場合に誤動作しそうで怖いな また別の問題だけど
181 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 20:10:17 ] C++でなにか簡単に動くプログラムはないだろうか。
182 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 20:12:22 ] はろーわーるど
183 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 20:50:40 ] マージャン、囲碁、将棋、チェス、好きなのを選べ。
184 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 20:51:46 ] はっきり言ってboostより分かりやすいC++はないんだろうか。
185 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 21:45:24 ] boost分からなければ無理に使うことは無い
186 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 21:53:09 ] boostってそんなにわかり易かったかな? lambdaとか。
187 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 21:57:51 ] lambda はともかく、半分以上は分かりやすいと思うが。
188 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 21:59:41 ] boost::spiritは必見
189 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 22:35:49 ] とりあえず使い方を覚えて便利さを享受すること にしてる。中身は天才達が作ってるだろうから。 for_eachでのlambdaは秀逸だと思う。bindも 凄く使いやすい。
190 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 23:06:23 ] 便利だけど特別分かりやすいとは思わなかったな
191 名前:デフォルトの名無しさん [2008/01/03(木) 02:28:18 ] #include <fstream> using namespace std; int main() { ofstream fout("mydata.mid", ios::binary); fout.write("4D 54 68 64 00 00 00 06 00 01 00 01 00 60 4D 54 72 6B 00 00 00 1C 00 90 3C 64 4B 80 3C 64 15 90 3E 64 4B 80 3E 64 15 90 40 64 4B 80 40 64 15 FF 2F 00", 74); fout.close(); return 0; } fout.write の引数のバイナリ(SMF)をそのままファイルに出力したいのですが、 出力されたsample.midを再生しようとすると「プレーヤーがそのファイルの種類をサポートしていないか、そのファイルの圧縮に使用したコーデックをサポートしていない可能性があります。」 というエラーが出てしまいます。そのファイルをバイナリエディタで見てみると、34 44 20 ... というように、バイナリが変わってしまっていました。何がいけないのでしょうか??
192 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 02:33:16 ] 16進の文字列から数値に変換→書き込み でおk
193 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 02:45:32 ] >>191 static const char data[] = {0x4D, 0x54, 0x68, /*中略*/, 0x00, }; fout.write( data, sizeof(data) );
194 名前:デフォルトの名無しさん [2008/01/03(木) 02:58:56 ] これからは開発文字コード体系を UTF−16ベースにしないと プログラマーから嫌われそうだ
195 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 03:18:40 ] >>192 >>193 なるほど。こうすればよかったんですね。ありがとうございますm(_ _)m ・・なんか、いきなりあれですが。 今まで他の質問サイトでよく質問してたんですが、ここの方が返信早いし、 しかもここの人たちはポイントもらうためとかではなく無償で教えてくれるんですよね。。 なんかしんみり嬉しくなりました。また行き詰ったらご教授願いたいのでよろしくお願いしますm(_ _)m
196 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 07:12:59 ] www.google.co.jp/search?q=%E3%81%94%E6%95%99%E6%8E%88
197 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 14:59:39 ] >>193 なんで、staticなんですか?
198 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 15:04:30 ] >>197 よそから使う必要がなければ、見えなくするためじゃないか。
199 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 15:09:46 ] >>197 定数にするためじゃない?
200 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 15:16:31 ] >>198 いえ、なんてーか、グローバル変数でstaticなら、それも理解できるんですが…… これ、関数内の話ですよね? >>199 それって、constじゃないんですか?
201 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 15:35:24 ] >>200 constだけだと関数内では「書き換え不能」って意味だけじゃないかな? staticがついて定数になったと思うけど。 組み込みなんかだと値をROMに収めるためにはstatic constを指定してやらないと駄目だったような・・・ C++が使える組み込みなんて少ないかもしれないけど
202 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 15:36:40 ] んーとねstaticはスタック上に領域確保するのを防ぐ狙いがあったよーな 確保した領域に値をコピーする手間が省けるのでメモリと処理時間の節約になるっぽい スコープが関数内に限られた外部変数って考えるといいっしょ でもmain関数内の変数ってコンパイラにもよると思うけど実質staticじゃなかったっけ?
203 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 16:07:50 ] 私の理解が間違っているかもしれませんが……一応確認 int main() { ofstream fout("mydata.mid", ios::binary); const char data[] = {0x4D, 0x54, 0x68, /*中略*/, 0x00, }; fout.write( data, sizeof(data) ); fout.close(); otherFunction(); return 0; } みたいな形で書いたとしたら、当然、otherFunctionから、dataにアクセスすることは出来なくなるわけですから、外部から使う必要云々の話ってのは成立しませんよね。 なので、>>201 さんの言う事(前半)が理由なら、staticはいらないのではないでしょうか? >>201 (後半)と>>202 の理由については初めて知りました。 よろしければ、参考文献などを教えていただけないでしょうか? お願いいたします。
204 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 16:23:42 ] >>203 書き換え不能の「変数」と「定数」の違いがある気がすると思って書いたんだけど。 そこまで詳しくないから間違ってるかも。 Googleで「c++ const 定数」あたりでぐぐれば?
205 名前:193 mailto:sage [2008/01/03(木) 16:27:08 ] 組み込み屋なので、こういう場合static const にしちゃうんだよな。 >>201 と>>202 (最後の1行はよく知らないが)の言うとおりだよ。 非static 非const →書き換え可能でスタックに配置。関数に入るたびに、ROMからスタックへのコピーが発生する。 非static const →書き換え不能でスタックに配置。関数に入るたびに、ROMからスタックへのコピーが発生する。(処理系により異なるかも?) static 非const→書き換え可能な静的領域に配置。プログラム開始時に一度だけ、ROMから静的領域へのコピーが発生する。 static const →書き換え不能でROMに配置。コピーは発生しない。
206 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 16:27:11 ] >>203 staticが外部からアクセスできないんは文法上の話 メモリ上に変数の領域が確保されてるんやからアドレス渡せばアクセスできるんよ
207 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 16:40:08 ] >>204-206 なるほど……色々と教えてくださってありがとうございます。 どうも、組み込み系の話が必要になってきそうですね。 そこら辺の文献でも読んでみます。ありがとうございました。
208 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 16:56:44 ] このスレには滅多に書き込まないけど、ずっと読んでる。 ホントためになる話が多いよな。各人の知識経験に感嘆するぜ。
209 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 17:24:02 ] 初心者向けのCの本を一冊読み終わり、問題もだいたい解けるようになりました。 次に難し目の問題集を買って、それをクリアーしたらC++に移ろうと思います。 しかし、本を読んで理解して・・・の繰り返しでモチベーションが萎えて来ました。 僕は独学でパズル感覚でプログラミングの勉強をしているので CあるいはC++を使ったら何が出来るのかということが、ちょっと想像がつきません。 そこで ■ この言語で何(どういうモノ)が作れて、 現実にはどういう場で役に立っているのかというのを教えていただきたいと思います。 よろしくお願いします。
210 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 17:35:47 ] C/C++は汎用性高すぎて組み込みからサーバ、GUIアプリケーションまで色々としか‥‥ とりあえず「こんなソフト欲しい」って思ったら自作してみるといいお
211 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 17:37:29 ] >>209 何ができるのかというと、何でもできるということになる。 目標がC/C++の勉強だけだと気力も萎えるだろう。そういう時は、何でも良いからアプリを作るのが一番。
212 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 17:41:50 ] ここで言ってる組み込みって www.sophia-it.com/content/%E7%B5%84%E3%81%BF%E8%BE%BC%E3%81%BF%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0 ここに書かれているような意味でですか? 汎用性高いとのことですが家電製品とかのシステムもC/C++で書かれていたりするんですか?
213 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 17:43:39 ] 釣りな感じもするけどまぁいいか。 実用的なプログラミング言語だと、言語によってできることできないことにはほとんど差がない。 どちらかというと環境の差だったり環境が用意されているかの違いの方が大きい。 なので、コンピュータ上でできることはほぼ何でもできる、と言ってよい。 でも、これだとあまりうれしくない返答だよな。 どれだけ低レベルな処理が可能かというのについては多少差があるけど、C / C++ はその方面では強い。 具体的には、オペレーティングシステム(Windows とかね)や、組み込み系(電子機器の制御、マイコン等)の プログラミングに使われたりもする。 逆に言うと C / C++ そのままだと基礎的すぎて、ライブラリとか使わないと凝ったこと、派手なことはさせにくかったりする。 ということで、提案としては、 ・OpenGL, DirectX とか使って、ゲームとか 3D CG 系で遊んでみる。 ・(英語があまり苦にならなければ) online-judge.uva.es/problemset/ で問題を解いてみる。 (ACM国際大学対抗プログラミングコンテストの問題集でオンラインで判定もしてくれる) あたりかなぁ。あるいは宿題スレの回答者になってみてもいいかもしれないよ?
214 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 17:44:18 ] >>209 本を読んで理解することは非常に重要だが、実際に組んで動かしてみるのはもっと重要。 理解を深める意味でも、モチベーションの意味でもな。 あと、言語だけでなく、データ構造とアルゴリズムの勉強は欠かさないように。 パズル感覚なら楽しめるはず。実践の題材を見つけることもできると思う。 題材はGUIアプリで見た目にこだわるより、 CUIでいいから、内部動作にこだわると良い。
215 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 17:47:48 ] >>212 C++が使える環境ではC++で書きたいな。(あくまで希望)
216 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 17:48:10 ] 言語を覚えたからどうこうというのがそもそもおかしい 何か目的があって言語を覚えたんじゃないのか