1 名前:デフォルトの名無しさん [2009/07/19(日) 22:32:32 ] スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。 過去ログ スレを勃てるまでもないC/C++の質問はここで pc11.2ch.net/test/read.cgi/tech/1167476845/ スレを勃てるまでもないC/C++の質問はここで 2 pc11.2ch.net/test/read.cgi/tech/1178503366/ スレを勃てるまでもないC/C++の質問はここで 3 pc11.2ch.net/test/read.cgi/tech/1187521676/ スレを勃てるまでもないC/C++の質問はここで 4 pc11.2ch.net/test/read.cgi/tech/1221633708/ スレを勃てるまでもないC/C++の質問はここで 5 pc11.2ch.net/test/read.cgi/tech/1230516307/ スレを勃てるまでもないC/C++の質問はここで 6 pc11.2ch.net/test/read.cgi/tech/1231564903/ スレを勃てるまでもないC/C++の質問はここで 7 pc11.2ch.net/test/read.cgi/tech/1232983248/ スレを勃てるまでもないC/C++の質問はここで 8 pc12.2ch.net/test/read.cgi/tech/1235921779/ スレを勃てるまでもないC/C++の質問はここで 9 pc12.2ch.net/test/read.cgi/tech/1240022781/ スレを勃てるまでもないC/C++の質問はここで 10 pc12.2ch.net/test/read.cgi/tech/1242300936/ スレを勃てるまでもないC/C++の質問はここで 11 pc12.2ch.net/test/read.cgi/tech/1245059383/
428 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 19:06:43 ] 良く売れてますよ。 でも、C言語の入門書でK&R第2版を超えるものはひとつもありません。 特にUNIXシステムインタフェースの章は重要で、 システム依存のコード(システムコールを用いるコード)とどのように折り合いをつけるか、 平易に説明してくれる入門書はこれくらいのものでしょう。 結局、C言語はアセンブラに近しいところで利用されるので このような低水準の話題は避けて通れないのです。 でも日本人が書いた入門書はそのへん全部無視しやがってアホか。
429 名前:デフォルトの名無しさん [2009/08/14(金) 19:17:12 ] >>428 ありがとうです。 K&Rの正式な書名をよかったら。書店で探してみます。
430 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 19:19:56 ] プログラミング言語C 第2版 ANSI規格準拠 B.W. カーニハン (著), D.M. リッチー (著), 石田 晴久 (翻訳)
431 名前:デフォルトの名無しさん [2009/08/14(金) 19:34:26 ] >>430 ありがとうです。 明日さっそく書店へ行きます。
432 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 19:54:38 ] >>416 入力した c ソースをコンパイルして、実行ファイルを指定して実行していますか? 意味がわからなければ、さわりでコンパイルの方法が書いてある書籍をさがすか、人にきいてみてください。
433 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 19:55:53 ] >>431 最初の最初に読む書籍ではないことに注意してください。ある程度の経験が必要です。
434 名前:デフォルトの名無しさん [2009/08/14(金) 20:13:44 ] 最初の最初に読むのにいい本があったら教えて、誰かエロい人!
435 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 20:18:29 ] 書籍スレへどうぞ。
436 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 20:18:39 ] もともとC言語を他の言語の経験なしに最初に学ぼうという時点で無謀だ。w せいぜいテキストファイルを読み込んで集計する程度のプログラムしか書かないなら C言語を使う理由など皆無に等しく、そんなものはBASICで十分だろう。 C言語は(BASICに比べれば)難解で保守しにくく、 それでもなおC言語を使うのはC言語には低水準固有のパワーが備わっているからだ。 そういうプログラムを書きたいと望むものが K&Rの内容も読めないなら、 実際にプログラムをしようとしたとき、 C言語よりも遥かに難解なハードやOSを前にして ただただ途方にくれるだけだろう。
437 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 20:19:09 ] 入門レベルならWebでいいんじゃねぇの
438 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 20:28:47 ] BASICってVisualBasic? Cより難解で複雑で混沌としてんじゃねーか
439 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 20:30:36 ] 最初にC習って特に問題なかった俺は天才ということだな
440 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 20:44:06 ] >>439 俺もだ、天才同志よ。
441 名前:デフォルトの名無しさん [2009/08/14(金) 20:45:19 ] C言語だとファイルの削除はremove(fileName)でできましたが、 C++だとどうやってファイルを削除しますか?
442 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 20:50:55 ] std::remove(fileName)
443 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 20:52:40 ] >>442 ありがとうございます。 チュ♥
444 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 21:13:13 ] STDMETHODってなんでしょうか?
445 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 21:23:40 ] COMで使われるマクロです
446 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 21:27:03 ] そんな用語はないよ?
447 名前:デフォルトの名無しさん [2009/08/14(金) 21:31:45 ] 俺も秀才なんで、Cから始めます。
448 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 22:12:18 ] 俺おくてだから、勇気を出してCから始めます。
449 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 22:20:34 ] vecterとかmapのデフォルトコンストラクタってメモリ確保しないよね?
450 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 22:58:41 ] 実装依存だから確実ではないけど、普通は確保しないよ。
451 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 00:08:57 ] stlportって何ですか? ググってみると良いことずくめに書いてあるんですが。
452 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 00:33:47 ] 演算子のオーバーロードを勉強中です。 コンパイルエラー出ます。本のサンプルプログラムなんですが。 a.c:17: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second: string.h:21: note: candidate 1: char& String::operator[](size_t) a.c:17: note: candidate 2: operator[](char*, int) <built-in> です。原因は何でしょうか?エラーメッセージがよくわかりません。 もし、ソースコードが必要なら乗せます。
453 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 00:34:37 ] >>438 が釣りなのかどうか判断つかん
454 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 08:02:56 ] >>452 必要に決まってるじゃん。 codepad ttp://codepad.org/ ここで。
455 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 14:37:26 ] C++のサンプルコードが載ってるデザインパターンの本で良書あります?
456 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 15:43:32 ] >>451 VC6のころは必須だった。 今は別になくてもいい。
457 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 17:39:41 ] ゲーム内に存在するユニット(プレイヤー、モンスター、障害物など)にユニークIDを付けたいんだけど アドレスをintにして返すだけの基底クラスを継承させれば問題ないかな?
458 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 17:48:24 ] アドレスをハッシュにするのはよくある手段だな ポインタ型のサイズが変わったときにちょっとハマるかもしれんから ハッシュ同士を==,!=で比較する以外の使い方をするときには注意が必要になるだろう できれば専用の型でラップして使うべきだろうな
459 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 17:56:05 ] intptr_tなりUINT_PTRなりをtypedefしてxxx_IDとして用いれば大丈夫だろうね。
460 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 18:26:48 ] >>455 独習C++デザインパターンかなぁ。この手の本は殆どがJavaで書かれてるからC++の本は少ないな。
461 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 19:14:22 ] 「Java謎+落とし穴」という書籍の中でC++はリフレクションが弱い、との記述があったのですがこれは事実でしょうか? かなり古い本なので最近のC++のリフレクション周りについて知りたいです。 できればJava、C++、C#辺りのリフレクションの違いについて教えて頂けると有り難いです。 よろしくお願いします。
462 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 20:03:39 ] >>461 弱いどころか無いに等しいよ。 リフレクションが必要ならインタプリタ言語にまかせよう。
463 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 20:06:02 ] C/C++で、 aa(), bb(), cc() とした場合、この式の評価順序は aa()が最初で次がbb()で次がcc() ということは仕様で保証されていますか? 関数の引数の評価順序は保証されていないということだそうで。
464 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 20:15:32 ] >>463 この場合はコンマ演算子だから、左から右へ評価されることは保障されており、かつ値は最後に評価したものですね。
465 名前:463 mailto:sage [2009/08/15(土) 20:53:28 ] >>464 ありがとうございます。 ではそれに依存してコーディングしていきたいと思います。
466 名前:461 mailto:sage [2009/08/15(土) 21:07:09 ] >>462 ありがとうございます。 クラスやメソッドを実行時に決定したい場合などは諦めるしかないのでしょうか? あるいはそういう需要があること自体、設計がおかしいという判断になるのかな
467 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 21:11:00 ] >>466 > クラスやメソッドを実行時に決定したい場合などは諦めるしかないのでしょうか? C++には継承と仮想関数がありますからそれをうまく使ってください。 > あるいはそういう需要があること自体、設計がおかしいという判断になるのかな if(flag) {hoge.foo();} else {hoge.bar();} こんなことは良くやりますけど。 あとはC++には関数ポインタもありますねぇ。
468 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 21:21:59 ] 場合分けはさすがに無いだろw まぁJavaでもClassクラスなんて使うのは最終手段だし設計を見直すのが吉だろうな
469 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 21:36:03 ] >>466 ポリモーフィズムがあるんだから利用しない手はないだろ。 実行時に型を決定したいなんて結構あるんじゃないか? それがあってるのかどうかは知らんが。
470 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 22:20:55 ] C++プログラミングの筋と定石 (新紀元社情報工学シリーズ) この本を読むのじゃ。 お前様のほしい情報が載っておるぞ。 あたら高度だけど。
471 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 22:33:03 ] 滅茶苦茶古い本だぞそれ
472 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 22:57:12 ] 古いけどナイスガイ
473 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 22:58:16 ] 宣伝は他でやれ
474 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 23:01:16 ] 宣伝だと思うなら無視すればいいじゃない。 宣伝しなくても名著だからみんな知ってるだろうし。 MoreEffective C++でも推薦されてたくらいの本だから もちろん、君も知ってるよね?
475 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 23:23:04 ] あぁ原書は有名だけど翻訳が糞過ぎて読む気無くなったなそれ
476 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 23:25:28 ] どう見ても宣伝だわw
477 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 19:02:57 ] Baseクラスと、Baseをpublic継承したDerivedクラスがあります。 Derived hoge; void foo(const Base&);//1 void foo(const Derived&);//2 となっている時、 foo()//1にhogeを渡したいのですが、どうすればよいでしょうか? foo(static_cast<Base>(hoge)); だと無駄なテンポラリオブジェクトができてしまいますか?
478 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 19:41:38 ] // 値型のキャストだとコピーになるが、参照型でキャストすればコピーは発生しない foo(static_cast<Base&>(hoge));
479 名前:477 mailto:sage [2009/08/16(日) 20:00:14 ] >>478 ありがとうございます。 ということは Derived hoge; が const Derived& hoge = ... であった場合は foo(static_cast< const Base& >(hoge)); であっていますか?
480 名前:デフォルトの名無しさん [2009/08/16(日) 20:01:39 ] C++でもassertって使うの?
481 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 20:15:06 ] #include <iostream> using namespace std; class Base{}; class Derived : public Base {}; void foo(const Base&){cout << "Base" << endl;} template<class T> void foo(const T&){cout << "T" << endl;} int main() { Derived hoge; foo(hoge); return 0; } これでTが表示されるのは、 基底クラスへキャストするよりもテンプレートの方が優先される ためだと思いますが、 この動作はC++の仕様でしょうか?
482 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 20:37:48 ] >>480 使うよ。用途はCと一緒でしょ。
483 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 21:28:27 ] C++です。 ヘッダファイルに書かれた関数テンプレートを どんなときにinline宣言すべきか分かりません。 明らかに短い時はinline宣言しますが、 どのあたりの長さからしない方がよくなるのでしょうか?
484 名前:デフォルトの名無しさん [2009/08/16(日) 21:35:07 ] ほっとけばinline
485 名前:483 mailto:sage [2009/08/16(日) 21:38:31 ] >>484 ええと、ヘッダファイルに書かれた関数テンプレートでも 明示的にinlineと書かない限り (コンパイラによる最適化以外では) inlineにはならないと思っているのですが。
486 名前:デフォルトの名無しさん [2009/08/16(日) 21:50:02 ] 異なるcppファイルに同じヘッダを読み込んで、各々のオブジェクトファイルで実体化されたら リンク時にカチ合うじゃないか。
487 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 21:51:34 ] >>485 Efficient C++(Effectiveじゃないよ)の9章と10章に載ってなる。 具体的には130ページに、行数(命令数か)と呼び出し頻度で決めなさいと書いてある。 あと、見た目のコード自体は短くても実際はそうでもないことがあるから注意な。 まあ、コンパイラの判断でインライン展開されるからinlineと書いたところで 必ずインラインになるとは限らんしな。
488 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 21:52:23 ] すみませんが構造体配列の初期化で全てを同じ値にしたいのですが上手くいきません どこが間違っているのでしょうか? struct Piece_t { int Kind; int State; }; struct Piece_t Piece[(MAX_MASS + 2) * (MAX_MASS + 2)]={3,0};
489 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 22:01:08 ] 初期値は必要な数だけ与えてやらんとだめ struct Piece_t Piece[5] = { {3,0}, {3,0}, {3,0}, {3,0}, {3,0}, };
490 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 22:09:04 ] では要素数が可変の場合にはそれを上回る数を あらかじめ用意するしかないのでしょうか?
491 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 22:14:24 ] forで回すなり、memsetするなりあるだろう。配列なら要素数も分かるだろ?
492 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 22:17:25 ] ああ…forで回せば良いのか… 疲れてたみたいです アドバイス有難うございました
493 名前:483 mailto:sage [2009/08/16(日) 22:50:53 ] >>486 普通の関数ではそうですが、 関数テンプレートの場合はその限りではないと 記憶しています。 >>487 ありがとうございます。 Efficient C++は読んだこと無いので、 今度探ってみます。
494 名前:デフォルトの名無しさん [2009/08/17(月) 00:31:52 ] いつもデバックなしで実行しているのですが、 リリースモードで実行するにはどうしたらいいですか?
495 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 00:35:43 ] まず、使っているコンパイラーを(ry
496 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 01:33:32 ] Intel C++コンパイラです。
497 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 10:20:38 ] >>496 使っているIDEのマニュアルでも読んでください。
498 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 11:07:11 ] if(flag_1) return val_1; else if(flag_2) return val_2; else if(flag_3) return val_3; これと if(flag_1) return val_1; if(flag_2) return val_2; if(flag_3) return val_3; これはどちらが速いのでしょうか?
499 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 12:04:51 ] >>498 return文を使って関数から抜け出しているので、前者も後者も比較回数は同じになる。 また、return文を使って関数から抜け出しているので、前の条件が偽であるときしか後の条件を判断されないことになる。 よってelseを使う必要はない。 よって後者でおk。 ただ、速さが変わるかどうかは俺にはわかんね。
500 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 12:15:09 ] 繰り返し文でその都度printfで結果を表示させたいのですが 古いほうから消えていきます。結果を全部残すにはどうすればいいですか
501 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 12:16:12 ] >>500 リダイレクトする。
502 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 12:28:15 ] >>498 少なくとも私は後者の方が速くタイプできました。
503 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 12:36:21 ] >>501 なるほど。それでググったら出来ました。ありがとうございます
504 名前:498 mailto:sage [2009/08/17(月) 12:45:18 ] >>499 ありがとうございます。 速さは・・・elseがない方がむしろ速いとか、 あった方が処理が分かりやすくて最適化しやすいとか 同一のasmに落ち着くから関係ないとか色々と考えられそうです。 ま、あまり気にしないのが正解なのでしょうか。 BoostやGCCの実装とかで同じような物があるかどうか探してみたいです。
505 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 13:32:44 ] >>504 こっちに似たような話があるから気になるなら参加したら? 【初心者歓迎】C/C++室 Ver.67【環境依存OK】 pc12.2ch.net/test/read.cgi/tech/1247937958/
506 名前:504 mailto:sage [2009/08/17(月) 14:21:07 ] >>505 みんな同じようなこと考えるんですね。 行ってみるかもしれません。 ありがとうございます。
507 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 14:43:09 ] えっ?
508 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 15:13:20 ] タイピングを楽にする為だけの#defineもtypedefにしたほうがいいのかな テンプレートっぽいことができるのと#undefがある分有利な気がするんだけど
509 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 15:56:43 ] >>508 typedefに代えていけるならお薦め。 > テンプレートっぽいことができるのと そりゃtypedefに代えていけないってことじゃん。 > #undefがある分有利な気がするんだけど どうして?むしろ不利だろ? typedefなら同名の物とかち合ったらコンパイルエラーになれる。
510 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 21:16:01 ] 非同期ファイル読み書きには Win32APIのCreateFileしか方法ないの?
511 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 21:20:56 ] スレッドを使ってみるとか
512 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 22:33:25 ] >>498 gccでコンパイルすると同じになったからどっちも同じ
513 名前:デフォルトの名無しさん [2009/08/19(水) 09:21:13 ] C++でCGIをはじめました。POSTで日本語を受け取った場合URIエンコードされますがデコードのやり方が分からず困っています。 例えば あ であれば %82%A0になりますが どのようにすれば元の文字に戻せるのか わかる方いましたらよろしくお願いします。 ソースを頂けたらなおありがたいです。
514 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 09:37:31 ] スレチな気もするが… www.kinet.or.jp/hiromin/cgi_introduction/appendix/url_encode.html
515 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 10:20:59 ] .lib+.hで提供されているライブラリをまとめて適当な名前空間に入れたいんですが なにかいい方法はないでしょうか
516 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 11:26:18 ] >>515 .libだと真っ当な方法では無理。 せいぜいがDLLに隔離して新しいインターフェースを丸ごと書き直すぐらいかと。
517 名前:デフォルトの名無しさん [2009/08/19(水) 12:10:07 ] 514さん 大変参考になりました。 私もスレチかと思いましたがそれでも 教えて頂けて本当に感謝しております。ありがとうございました。
518 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 14:18:30 ] インターフェースに宣言されているメンバ関数をコンストラクタのように連鎖的に呼び出したい場合 スコープ解決して普通に呼び出しを繰り返すすほかになにかやり方はありますか?
519 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 16:37:47 ] >>518 具体的にどういうコードで問題になってるのかわからん。 インタフェースって抽象クラスのことか?
520 名前:デフォルトの名無しさん [2009/08/19(水) 17:19:45 ] pthreadについて。 pthread_createで作成したスレッドを、スレッド外から終了させたいのだが。 名前的にはpthread_t指定してpthread_killぽいと思ったんだが、うまくいってないぽ... どうすればいいの\(^o^)/
521 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 17:25:29 ] signal(pthread_killの第二引数)は何を指定した? まさか0じゃないだろうな? int pthread_cancel(pthread_t)じゃ駄目?
522 名前:デフォルトの名無しさん [2009/08/19(水) 18:31:55 ] 0さーせんwwwwww cancelで終了した! さんくす
523 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 20:17:23 ] ofsream.flush()でファイル出力時に ディスクの容量オーバーの場合エラーにする事てできます? 例外がスローされずにフリーズしてしまいます…
524 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 20:22:21 ] >>523 OSなどの環境は?
525 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 21:40:41 ] >>524 すいません、linux + c++ + gcc です。 プログラムからシェルコマンドでディスク容量の結果とって調べる とかは可能です?
526 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 22:27:51 ] >>523 ofstreamの bad()/fail()/good()あたりのメンバ関数で判断できるんじゃないかな。
527 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 22:43:20 ] APIを探してくるしかなさそうだな。
528 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 23:56:33 ] >>523 C++のストリームクラスで例外が投げられるようにするには、 予めメンバ関数exceptionsで例外を投げるよう指定する必要があるよ。