1 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 06:18:18 ] プログラミング言語C/C++についての、小心者向けスレです。質問・要望・雑談などどうぞ。 関連スレやURLは>>2 以降。 ■質問する人へ 質問する前に次の3つをすること。ここで回答を待つよりそのほうが早い。 ・ぐぐる ・マニュアルで探す ・FAQを読む 例えば www.bohyoh.com/CandCPP/FAQ/index.html 質問には以下を書くこと。へたくそな質問は再提出を要求される。 ・詳しい内容(「動きません」「うまくできません」では回答しようがない) ・エラーメッセージ(なるべくそのままで) ・実行環境(OS名、コンパイラ名) ・最終的にやりたいこと(もっとよい方法がある場合が多いので) 回答してくれた人には「ありがとう」のひとことをいってあげて。 ■回答する人へ 相手は小心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。 それができないならこないこと(だって小心者スレだもん)。 ・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。 宗教的な話題は禁止します。
199 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 02:49:46 ] >>198 str.trim('\"')でできそう!
200 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 09:01:45 ] >>185 メルセンヌツイスターのソースを使えば良いジャマイカ
201 名前:デフォルトの名無しさん [2008/10/17(金) 14:06:39 ] 簡単にコピペできるのはXORシフト ライセンスとかあんまりなさそうだし 商用に組み込んだとしても問題にならないのでは
202 名前:デフォルトの名無しさん [2008/11/04(火) 18:46:54 ] 文字列を入力して、それを配列に1文字ずつ入れていきたいのですが、どのようにすればよいですか。 具体的にソースを挙げて教えてください。 よろしくお願いします。
203 名前:デフォルトの名無しさん mailto:sage [2008/11/04(火) 18:58:54 ] >>202 char buf[適当な長さ]; fgets(buf, sizeof(buf), stdin);
204 名前:デフォルトの名無しさん [2008/11/04(火) 19:18:29 ] >>203 返信ありがとうございます。
205 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 14:47:28 ] typedef unsigned char bBuffer[128]; typedef DWORD wBuffer[32]; bBuffer A; wBuffer B; AからBにキャストするにはどうすればよいのでしょうか? でるぴだと B:= wBuffer(A); なんですけど
206 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 15:24:37 ] キャストに配列を指定してはいけない。つまり、foo = (Foo [])bar;こういうのはできないのよ。 代入したいのならmemcpy()でも使う。 それにしてもObjectPascalは、型が緩いんだろうか。
207 名前:205 mailto:sage [2008/11/05(水) 16:37:40 ] >>206 ありがとうございます。 memcpy()で期待通りに出来ました。 delphiだとなぜか使えるんです。
208 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 16:14:41 ] wiiリモコンのライブラリってどこにあるんですか ttp://www.thinkit.co.jp/cert/article/0711/2/5/2.htm に載ってるところ探しても無いんですが
209 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 23:43:09 ] あるじゃん
210 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 01:32:35 ] あ、あった ここですね ttp://wiiyourself.gl.tter.org/ どうもです
211 名前:デフォルトの名無しさん [2008/11/08(土) 02:14:04 ] ここで聞いていいのかわからんけど一応きいてみる スレチならごめん 今、ユーグリット云々つかって最大公約数を求めるプログラム作ってて kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7968.txt ってとこまではできたんです。2つはできるんですけど 問題は3つ以上の数を調べるときなんです。普通に文字数を増やして計算させるだけじゃできないようで、 いろいろしたんですけど詰まってしまいまして どこをどう変更すれば、3つ以上の数の最大公約数をしらべるプログラムになるのでしょうか
212 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 02:15:22 ] gcd(gcd(x, y), z);
213 名前:デフォルトの名無しさん [2008/11/10(月) 19:33:43 ] ¥nで文字数があわなくて1日中悩んでいたが ¥r¥nかよ! ゲイツのバカヤロー!
214 名前:デフォルトの名無しさん mailto:sage [2008/11/10(月) 19:58:35 ] >>213 何をいまさら。 UNIX原理主義者は始末に終えんな。 それは、デジタルリサーチのCP/M-80(CP/M-86)との互換性を保つために そうなっている。 文句があるなら、墓の下で眠るゲイリーキルドールに 言え。 ちなみに、OS-9の行末コードは'\r'のみだ。
215 名前:デフォルトの名無しさん mailto:sage [2008/11/10(月) 20:31:53 ] タイプライターに文句いえ
216 名前:デフォルトの名無しさん [2008/11/11(火) 07:09:03 ] 初歩的な質問なのですが、 staticはどう言った変数や関数に付ければ良いのでしょう。 staticの働き事態はわかるのですが・・・
217 名前:デフォルトの名無しさん mailto:sage [2008/11/11(火) 08:44:01 ] >>216 ・関数 外部に公開しない全ての関数につける。 単一ソースファイルでプログラムを作るのなら、staticをつけないのはmain()だけでいい。 ・変数 自動変数で事が足りない場合。 関数外部で宣言したい場合で、外部に公開する必要がない場合。
218 名前:デフォルトの名無しさん [2008/11/11(火) 12:09:23 ] C++でビットマップを表示するのに、("ファイル名")ではなく(variable)を使用するにはどうしたらいいでしょうか? 例: String^ variable = "C:ファイル名"; Bitmap^b = gcnew Bitmap(variable); // エラー
219 名前:デフォルトの名無しさん mailto:sage [2008/11/11(火) 13:04:54 ] C++/CLIは別スレへ
220 名前:デフォルトの名無しさん [2008/11/11(火) 15:47:57 ] コンパイルをすると _declspec(align('16'))の仮引数は配置されません とエラーが出てしまいました。vectorのせいだと思うのですが、このエラーは どういったときに出るのでしょうか・・・
221 名前:デフォルトの名無しさん mailto:sage [2008/11/11(火) 17:35:36 ] Ubuntu 8.10 で手持ちの ANSI C プログラムをコンパイルしようとしたら、 usleep が無いと言われたのですが、usleep は unistd.h に入ってるはずですよね? ちなみに Darwin の cc でコンパイルしたときはうまくいきました /usr/include/unistd.h をみてみると #if defined(__USE_BSD) || #defined (__USE_XOPEN_EXTENDED) ... #endif で囲まれてました。そこで cc に -D__USE_BSD オプションをわたしてみたものの やっぱり定義されてないと言われます。 ubuntu の cc で usleep を使うときはなにかしらやり方があるのでしょうか?
222 名前:デフォルトの名無しさん mailto:sage [2008/11/11(火) 17:49:13 ] www.linux.or.jp/JM/html/LDP_man-pages/man3/usleep.3.html > POSIX.1-2001 では、この関数は過去のものと宣言されている。代わりに nanosleep(2) を使うこと。 > POSIX.1-2008 では、 usleep() の規定が削除されている。 とか書いてあるので、代わりに nanosleep を使ってみたらどうだろう
223 名前:デフォルトの名無しさん mailto:sage [2008/11/11(火) 18:07:14 ] >>221 ansi cにusleep()などない!
224 名前:デフォルトの名無しさん mailto:sage [2008/11/11(火) 23:26:53 ] >>218 まさかとは思うが、"C:\\ファイル名"とかいうオチじゃないだろうなw
225 名前:221 mailto:sage [2008/11/12(水) 09:58:31 ] >>222 情報どうもです。 とりあえず #ifndef __USE_BSD # define __USE_BSD # include <unistd.h> # undef __USE_BSD #else # include <unistd.h> #endif としてその場をしのいだんですが、そのうち nanosleep を使うように書き直したいと思います
226 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 03:21:41 ] メモリリークを調べるため_CrtSetDbgFlag関数を使おうとして 以下のように書いたのですがリンクエラーが出ます #include <crtdbg.h> ・ ・ int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { // メモリリーク検出 _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF); ・ ・ ・ } エラー内容 GameT error LNK2019: 未解決の外部シンボル __CrtSetDbgFlag が関数 _WinMain@16 で参照されました。 他にも何かインクルードする必要がありますか 開発環境はVS2003で、OSはWinXP_SP3です
227 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 08:05:07 ] ゲ製板からの出張乙 リンクエラーと自分で書いてるだろ するべきことはインクルードではない
228 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 12:54:30 ] リリースビルドだったりしてな。
229 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 20:37:24 ] 2003にあったっけ?
230 名前:226 mailto:sage [2008/11/14(金) 23:40:50 ] >>227 なぜゲ製板とわかるのでしょうか >>228 DebugかReleaseのとこですよね Debugにしています よくわからないので新規プロジェクトで試したらできました これに少しづつ作ったものを貼り付けていって原因を探してみる
231 名前:デフォルトの名無しさん [2008/11/15(土) 23:28:04 ] 不特定多数のデータを受け取る際に、スペースで区切りながらそれらを配列に格納するにはどうすればよいのでしょうか。 例として、 「2 3 5 6」 「2 3 1 3 4 5 2」 というスペースで区切られた数があり、これらをそれぞれ別の配列に格納したいのです。 入力は 2 3 5 6(ここでエンター) 2 3 1 3 4 5 2 となります。 コードと一緒に解説してくださるとありがたいです。
232 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 00:16:28 ] つ[strtol()]
233 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 00:52:12 ] すいません。 C++で、コンパイラのように構文解析をする処理などを勉強できる書籍はないでしょうか? プログラム板に初めてくるので、このスレでいいのか判断に迷いますが、、、 よろしくお願いします。
234 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 01:03:27 ] コンパイラの教科書の最初の方に載ってるよ
235 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 01:12:08 ] アサーションをインラインで宣言して、どこの行でエラーが起こったか知りたいです。 以下の様に書いてみましたが、インライン関数MUSTOKの行数でエラーが起こった、もしくは、assert関数がある行が 表示されてしまいます。できればこの関数MUSTOK(0==1);がある行が知りたいのですが、どうしたらよいでしょうか? 実行環境 gcc バージョン 4.2.4 (Ubuntu 4.2.4-1ubuntu3) ubuntu8.4 ソースコード == #include <cassert> #include <iostream> inline void MUSTOK(bool cond) { if(!cond) { std::cout<<"file=:"<<__FILE__<<"\tlie=:"<<__LINE__<<std::endl; } assert(cond); } int main(int argc,char *argv[]) { MUSTOK(0==1); return 0; } == 実行結果 file=:assert_test.cpp lie=:7 assert_test: assert_test.cpp:9: void MUSTOK(bool): Assertion `cond' failed. Aborted
236 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 01:21:33 ] >>235 MUSTOKをマクロで実装するしか。
237 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 01:23:50 ] >>235 backtrace,backtrace_symbolsってのを使うとどこから呼び出されてるか表示出きるみたいだよ。
238 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 10:42:04 ] >>234 さん 233です。ありがとうございました。 書泉に行ったときに探してみます。
239 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 12:33:25 ] Cのプログラムで、他のプログラムhogeをコマンドラインパラメータ付きで実行し、 その実行の終了を待って、hogeのmain関数が返した値を取得したいのですが、 どうすればよいでしょうか?標準のC関数だけでできますか?
240 名前:デフォルトの名無しさん [2008/11/16(日) 12:40:35 ] できません。winAPIでやってください
241 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 12:50:22 ] Cで、引数で指定されたファイルを、system関数を使って、 メモ帳で開くにはどうすればよいでしょうか? ご教授お願いします。
242 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 12:58:13 ] system("メモ帳の場所 引数で指定されたファイル") あとは www.google.co.jp/search?q=C%8C%BE%8C%EA+system から探しなー
243 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 13:06:03 ] >>240 馬鹿も休み休み言ってください。 >>239 一般的に、アプリはsystem()で起動すればmain()の戻り値を回収できる。 但し、GUIアプリなどで動いているにも拘らずすぐに戻ってきてしまう場合は、 コマンドインタプリタ(command.comとかbashとか)の支援が必要になる。 コマンドインタプリタを介在させたくなければ、そこでやっと>240の言うようなAPIの出番となる。 >>241 system("notepad any.txt")でいいとして、そのテキストファイル名を可変にしたいなら 文字列を組み立てればいい。
244 名前:デフォルトの名無しさん [2008/11/16(日) 13:36:09 ] リソースから拾ってきた文字に対して置換ってどうやってる? たとえば 「File %1 is too long.」 ⇒ 「File "C:\hogehoge.foo" is too long.」 みたいな。 変換先文字列分拡張して memmove で必死に頑張ってもいいんだけど、 ATL/WTL 使ってるのでそれらのライブラリで便利なのがあればいいなぁと 思って… 教えてエロい人><
245 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 13:39:01 ] >>244 %1を適当に変換してから、sprintf()
246 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 13:40:18 ] 置き換えしたいところを%sとかにして、sprintf使うとか。
247 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 13:40:47 ] boost::format使えば楽じゃね。
248 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 13:48:57 ] >>245 、246 そうか、%1 じゃなくて別にいいんだもんね。 「File %s is too long. (sizeof: %s. current: %s)」 とかにして順番に sprintf の引数に積めばいいのか! >>247 STLワカンネ・・・orz でもせっかくなので勉強してくるYO! 即レスthx!!! みんな優しいね。大好き。
249 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 21:02:14 ] FormatMessage の立場がねーな、おい。
250 名前:デフォルトの名無しさん [2008/12/17(水) 02:15:02 ] 入力によって処理を変えるプログラムを作っていて、予期せぬ入力があった時メッセージを表示して、もう一度入力させるプログラムを作っているのですが、2度同じ表示が出てしまいます。 for(;;) { scanf("%c",&input); if(input == 'S' || input == 's') { printf("GAME START!¥n); } else if(input == 'Q' || input == 'q') { printf("GAME QUIT¥n"); return 0; } else { printf("input failed¥nPlease input again¥n"); } } どこを変更すれば、2度表示されなくなるでしょうか。 よろしくお願いします。
251 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 02:35:15 ] たぶん改行('\n')が残っているんだと思うよ。 scanf()の後に、 if ( input != '\n' ) { while ( (c = getchar()) != '\n' ) { ; /* 意図した空文 */ } } こういうの追加しておくとか。 scanf()で文字ではなく文字列受け取って、最初の要素だけ利用するとか。 fgets(,,stdin)で、上記と同じようにするとか。 ゲーム作っているみたいだから、がんばってとしか言えないけど。
252 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 07:48:35 ] const で変数宣言する必要性を教えて下さい
253 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 23:46:16 ] >252 ・誤って内容を変更するコードを書いた場合エラーになる。 ・(条件が揃えば)定数として使える。
254 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 08:59:45 ] >>251 弄っていたら、 scanf("%c",hoge); を scanf("%s",hoge); にしたら出来ました。 ありがとうございました。
255 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 08:36:18 ] 質問です。 後処理さえすれば、コンストラクタで例外を投げても良いと聞いたんですが、 自分自身(this)がリークすることはないんでしょうか?
256 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 11:35:37 ] ないよ。
257 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 11:55:39 ] ありがとうございます。 これで安心して例外投げれます。
258 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 12:10:50 ] >>255 これだね。 www.kijineko.co.jp/tech/superstitions/memory-leak-at-dynamic-creation-fail.html
259 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 15:58:08 ] 大変参考になるリンクどうもです。 スッキリしました^^
260 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 16:07:06 ] 専用メソッド作ってた自分がバカみたいでした……
261 名前:250 [2008/12/19(金) 17:56:15 ] 入力した数*数の二次配列に、任意の文字を入れて、それを.txtとして出力するプログラムを作っているのですが、 scanfで各配列に入れた文字を書き込むにはよいのですが、a[i][j] = '*';という入れ方で書き込むとtxtファイルが開けなくなってしまいます。 何が問題なのでしょうか。 よろしくお願いします。
262 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 02:21:57 ] >>261 ソースと結果を示してください。 fopen() を使っているなら perror() してみるとか。
263 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 02:40:07 ] >>261 たぶんfprintf(fp, "%s", a[i]);とかやって、ナル文字('\0')が見付からなくてメモリの適当なところまでファイルに書き込んだためにメモ帳などでテキストファイルとして開けない。 とエスパーしてみる。書き込みがSJISっぽいから、Windowsと仮定するけど。 最初から、バイナリで書き込んでバイナリで読み込むといいかも知れない、ゲーム作ってんだろ。 fwrite(a, sizeof(a[0][0]), sizeof(a), fp); foo型配列a fread(a, sizeof(a[0][0]), sizeof(a), fp); foo型配列a その代わりメモ帳では開くなよ。開いてもなんとかなるかもしれないけど。
264 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 18:50:18 ] バイナリエディターで覗くというのも手だな。 ファイルサイズが想定以上なら263で正解だと思う。
265 名前:250 [2008/12/20(土) 19:20:53 ] >>262 すみません。改行が多すぎるそうで、書き込みができませんでした。 >>263 ありがとうございます。 バイナリで開いて書き込んだら、できました。 >>264 そのような確認の仕方もあるのですね。 勉強になりました。ありがとうございました。
266 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 09:35:35 ] ちょっと質問したいんだが コンストラクタで例外投げるのってどういう時に使うんだ? 分岐にでも使うのか?
267 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 14:08:45 ] >>266 エラー通知に決まってるだろ。コンストラクタでも普通の関数でも同じ。
268 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 21:19:49 ] コンストラクタだとエラーを返せないから例外を使う。
269 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 18:39:30 ] ttp://gimpo.2ch.net/test/read.cgi/bobby/1233164250/l50 168 名前:よしよし ◆2U93Cmvv1o [sage] 投稿日:2009/02/10(火) 07:02:42 ID:??? おいハゲどもポインタの質問だ ------ p は指し示す先のアドレス &p はポインタ変数pそのもののアドレス *p は指し示す先の値 ------ だよな?なのにポインタ配列の解説のところで ------ data+i がそのもののアドレス data[i] が指し示す先の値 *(data+i) が指し示す先のアドレス ------ ってことになってんだよ 俺は本の書き間違えだと思って実際にプログラム打ち込んで コンパイル、実行してみたらあってるんだよ どういうことだ説明しろ 「*」はポインタが指し示す先の値を出力するんじゃねーのかよ
270 名前:デフォルトの名無しさん [2009/02/10(火) 18:43:21 ] 169 :おいら名無しさんヽ(´ー`)ノ:2009/02/10(火) 09:02:32 ID:??? 3番目の"*(data+i)が指し示す先のアドレス"は間違ってるな。 ハゲの理解が正しい。どこの糞入門書だ。さらせ。 171 :よしよし ◆2U93Cmvv1o :2009/02/10(火) 11:50:38 ID:??? >>169 ありがとう。ハゲじゃないが言ったようにコンパイルすると 結果は入門書どおりになるんだよ。俺が何か間違っているはず。 #include <stdio.h> int main (void){ char* data[4]={"par","birdie","eagle","albatross"}; int i; printf("data[i] 値 アドレス :ポイント先の値\n"); for(i=0;i<4;i++){ printf("data[%d] %10d %10d %10s\n",i,*(data+i),data+i,data[i]); } return 0; } ------------------------------------- C:\Source>point.exe data[i] 値 アドレス :ポイント先の値 data[0] 4235576 1245052 par data[1] 4235580 1245056 birdie data[2] 4235587 1245060 eagle data[3] 4235593 1245064 albatross -------------------------------------
271 名前:デフォルトの名無しさん [2009/02/10(火) 18:44:48 ] ttp://gimpo.2ch.net/test/read.cgi/bobby/1233164250/ 177 名前:よしよし ◆2U93Cmvv1o [sage] 投稿日:2009/02/10(火) 14:48:08 ID:??? 要するに int i=5; int *p; とかと char* data[4]はそもそも違うっちゅーことだな? *pってのは「指し示す先の値」のことだけど、 * data[4] ってのは「指し示す先のポインタ」のことなんだな? * data[4]様はポインタ様*(data + i )やdata[i]のさらに違う場所 (メモリの)にいる奴なんだな? メモ----------- *(data + i )とdata[i]はまだポインタなの。 「ポインタの配列」→「ポインタ」→「指し示す先の値」 * data[4]→ *(data + i )とdata[i]→ *(*(data+i))または*data[i] char* data[4]= --------------
272 名前:デフォルトの名無しさん [2009/02/11(水) 08:43:54 ] 小心者スレということなので投下してみます。 VC++ Expressでウインドウアプリを作っています。 (ファイル A.h) class A{ public: A(); vertial ~A(); }; (ファイル B.h) #include ゙A.h゙ class B:public A{ public: B(); ~B(); }; (ファイル C.h) #include ゙A.h゙ class C:public A{ public: C(); ~C(); }; この時、Aが再宣言されたとか、Aが未定義だとかでコンパイラに怒られます。なぜ
273 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 08:56:55 ] vertial ~A();
274 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 09:47:54 ] if文をやっと覚えたところでニコニコ動画のビットレート計算 というのがあったのでこれを参考に簡単なプログラムを作っていたのですが コンパイルエラーはでないのですが、最後の部分を入力するとエラーで落ちます 何がいけないのでしょうか? Source PW:c www1.axfc.net/uploader/He/so/193956
275 名前:274 mailto:sage [2009/02/11(水) 10:01:04 ] 最後のif文で演算子が抜けていますが ここは >= にしていました
276 名前:274 mailto:sage [2009/02/11(水) 10:02:21 ] 補足 >最後の部分を入力 プログラムを実行して順番に進んでいって最後の部分を入力
277 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 10:41:14 ] >>274 scanf("%d", movieb);
278 名前:デフォルトの名無しさん [2009/02/11(水) 13:03:11 ] >>273 virtual A();の間違うぃ スマネm(_ _)m
279 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 13:25:47 ] そういうくだらない間違いをする奴がレスに何を書こうとも、 実際のコードをきちんと再現できているとはとても思えない。 従って、再現するソースとエラーメッセージを貼るか、帰れ。
280 名前:デフォルトの名無しさん [2009/02/11(水) 13:41:40 ] 何を偉そうに そっから推測できる間違いが指摘できねーんならそれこそカエレだ
281 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 13:48:51 ] >>280 別にあなたが指摘なさっても宜しくってよ。それとも、あなたご自身が指摘もできないで書いてらっしゃるとでも仰るのかしら?
282 名前:デフォルトの名無しさん [2009/02/11(水) 14:15:15 ] はいそうです
283 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 14:17:36 ] 知らレス
284 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 14:40:16 ] >>272 こうじゃね? #ifndef _A_ #define _A_ class A{ public: A(); virtual ~A(); }; #endif
285 名前:デフォルトの名無しさん [2009/02/11(水) 15:15:46 ] >>284 神! 正直、#include ゙A.h゙してれば逝けるとおもてました。 (BCCでは#includeしてれば逝けてたから) ありがとうございますた。
286 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 16:30:16 ] インクルードガードぐらい常識として知っておけ
287 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 18:54:22 ] >>284 予約識別子死ね。
288 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 20:22:41 ] >>277 scanf("%d", movieb); という箇所が間違っているということでしょうか? または、ある部分を上のように書き直せということでしょうか?
289 名前:288 mailto:sage [2009/02/11(水) 20:28:46 ] 解決しました &が抜けているということですね スレ汚しすみませんでした また、回答ありがとうございました
290 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 20:31:43 ] >>287 _A_ はプリプロセッサの識別子。C/C++の予約識別子には該当しないよ
291 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 20:40:50 ] >>290 ライブラリの実装に _A_ 使ってるところがあったらぶっ壊れるだろうが。
292 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 20:45:53 ] あたま悪いの?
293 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 20:54:32 ] >>290 何を根拠にそんなことを言うのかね。 ISO C (draft n1336) 7.1.3 Reserved identifiers p2 にはマクロ定義についても明示的に禁止されてる。 > If the program declares or defines an identifier in a > context in which it is reserved (other than as allowed by 7.1.4), or defines a reserved > identifier as a macro name, the behavior is undefined. ISO C++ にはマクロ定義について明示的な記述は無いようだけど、 >291 があるから やっぱりダメだろう。
294 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:11:00 ] どうせ、VCかgccしかつかわないもん。
295 名前:デフォルトの名無しさん [2009/02/12(木) 05:49:25 ] #ifndef _A_ #define _A_ : #endifと、 #pragma onceは同じ意味じゃないの?
296 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 05:55:30 ] いいえ、後者は一部の処理系でしか使えません。
297 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 05:57:16 ] >>295 VC厨はこれだから・・・
298 名前:デフォルトの名無しさん [2009/02/12(木) 07:53:33 ] VC厨扱いしていただけるなんて光栄でごぜえます。
299 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 09:08:54 ] >>297 gccでもCodeWarriorでも使えるし PC向けのメジャーなコンパイル環境で使えないのはbccくらいなんだが ポータビリティ意識して書くのは当然としても、 >VC厨はこれだから… ってどういうこと?