1 名前:デフォルトの名無しさん [2008/09/06(土) 22:45:12 ] エスケープシーケンスやWin32APIなどの環境依存なものでもOK。 ただしその場合、質問者は必ず環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.58【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1218023777/ 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm ◆ソースのインデントについて 半角やTABでのインデントはスレに貼ると無くなります。 そのため、アップローダーに上げるのが最も良いですが、 直接貼るのであれば、全角空白か に置換しておくことをお勧めします。
348 名前:346 mailto:sage [2008/09/18(木) 21:25:09 ] >>347 はい。全ての子クラスで1つのデバッグクラスを操作したいのです。 デバッグでそれぞれのクラスのデータを集計し、統計のようなものを出したいデバッグクラスなので、単一の方向でお願いします。
349 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 21:32:10 ] 基底クラスのインナークラスとしてデバッグクラスを記述して、 基底クラスがそのデバッグクラスを包含するのじゃ駄目なの?
350 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 22:39:51 ] デバッグクラスをグローバルにすればいいだけじゃないの? それかシングルトン
351 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 22:58:27 ] 俺もグローバルで良いと思うけど。 まぁグローバル変数が嫌なら、 デバッグクラスかそれへのポインタの staticなメンバ変数でも用意すれば良いんじゃね?
352 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 23:12:31 ] 流れが分からん デバッグクラスが派生クラスにかかわらず単一なのは分かった そのインスタンスは1個だけ? それとも各インスタンスにつき1個ずつ? いずれにしてもデバッグクラスを基底クラスの内部クラスとして定義して、 基底クラスの通常のメンバなり、静的メンバなりにそのデバッグクラスのインスタンスを持たせればいいと思うが
353 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 23:27:15 ] 親クラスにstaticで持たせるのが正解の気がする まだエスパー歴が浅いから間違ってるかもしれんが
354 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 00:36:34 ] 文字の上下4ビットを入れ替える関数(RevChr)を作成しなさい。 ただし、RevChr関数の命令は1行で書かなくてはいけません。←ここ重要! できた人から、提出するように。 って問題だされたんだけど。
355 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 00:43:55 ] >>354 強引にやってみた。アホだ、俺。 (char>>4 + char<<4)
356 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 01:42:15 ] 優先順位・・・
357 名前:デフォルトの名無しさん [2008/09/19(金) 02:28:18 ] 319だけど、wcharをcharに変換する速度は、 WideCharToMultiByte 250ms wcstombs 1720ms あらかじめ計算しておいた配列を使う 2170ms となって圧倒的にwinAPIが速かったです。 前にローケル設定しなくてwcstombsが速いとか間違えを書きました。
358 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 03:58:49 ] >>309 その後、実際につかう数字で計算してみたところ、3次の項までは必要となりました。 しかし、logで計算するより5倍は速いので助かりました。
359 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 09:39:44 ] for_each を使って、int型の配列 v の集計をしなさいという問題なので、 class sum { int total; public: sum() : total(0) { } void operator()(int i) { total += i; } int get() { return total; } }; sum s; s = for_each(v.begin(), v.end(), s); としたのですが、代入しなければならないことが気に入りません。 for_each<vector<int>::iterator, sum&> (v.begin(), v.end(), s) とすれば出来たのですが、やっぱり何か違う気がします。 何かいい表現方法は無いでしょうか?
360 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 10:23:41 ] std::for_each(v.begin(), v.end(), std::bind1st(std::mem_fun(&sum::operator ()), &s)); なんで代入したくないのか知らんが、↓のように書いたほうがシンプルでいいと思うけど。 sum s = for_each(v.begin(), v.end(), sum());
361 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 11:01:51 ] なんでsumを使うか知らないが、↓のように書いたほうがスンプルでいいと思うけど。 int sum = std::accumulate(v.begin(), v.end(), 0, std::plus<int>());
362 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 11:28:36 ] >for_each を使って、int型の配列 v の集計をしなさいという問題なので、
363 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 11:30:31 ] >>361 for_each を使って、集計をしなさい
364 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 11:37:37 ] そうですかごめんなさい早漏にて候
365 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 11:51:24 ] >>359 TR1を使えば以下のようにできる。 std::for_each(v.begin(), v.end(), std::tr1::ref(s) ) ; ただし、sumを次のように変更する必要がある。 class sum { public : typedef void result_type ;//ネストされたresult_typeという型で、関数オブジェクトの戻り値の型を表す //省略 } ; あるいは、unary_functionを継承すること。
366 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 12:02:09 ] VC2008でマリオもどきを作ろうとしてるんですが、↓のソース(関係無さそうなメソッドとかは省略してます)をコンパイルすると >v:\projects\mario\player.cpp(8) : error C2511: 'Player::Player(int,int,pleyer_type)' : オーバーロードされたメンバ関数が 'Player' にありません。 > v:\projects\mario\player.h(8) : 'Player' の宣言を確認してください。 となります。どこがおかしいのでしょうか?(見づらい質問でごめんなさい) //Player.h #include "Characters.h" class Player : public Characters{ private: enum player_type ptype; public: Player(void); Player(int x,int y,enum player_type type); }; //Player.cpp #include "Player.h" Player::Player(void){ this->x = 1; this->y = 1; this->ptype = PTYPE_NOM; } Player::Player(int x,int y,enum pleyer_type type){ this->x = x; this->y = y; this->ptype = type; } //Characters.h class Characters{ enum char_type ctype; public: Characters(void); Characters(int x,int y,enum char_type cp); };
367 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 12:12:44 ] >>366 × pleyer_type ○ player_type ってことだと思うよ
368 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 12:15:56 ] ……死にたいorz 宣言と定義が違うって事だったんですか、回答有り難うございました
369 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 12:33:35 ] >>359 int s = for_each(v.begin(),v.end(),sum()).get();
370 名前:359 mailto:sage [2008/09/19(金) 12:41:58 ] みなさん、ありがとうございました。 >>365 が いいと思い、(自分の処理系ではTR1が使えないので)boost::refでやってみたら、 > error C2064: 1 引数を取り込む関数には評価されません。 と出て、ダメでした。 TR1とboostはほとんど一緒と聞いていたのに残念でした。
371 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 13:01:28 ] >>370 TR1は、確かにBoostを念頭においているとはいえ、より考えられている。 というのも、Boostは単にreference_wrapperで包んでいるに過ぎないので、 このままでは関数オブジェクトとして、operator ()を適用できない。 そこで、TR1では、メタプログラミングを駆使して、単項か二項として呼べるようになっている。
372 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 13:22:41 ] この出力は0になります。STLの新規のresizeは常に初期化されますか? vector<int> r; r.push_back(1); r.push_back(2); r.resize(1); r.resize(2); cout<<r[1];
373 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 13:29:32 ] されます
374 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 13:47:28 ] dクスです
375 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 15:54:53 ] これでどんな環境でも、メモリは解放されますか? クラス側で解放処理をしなくても、STLを使っている範囲(newは使わない)では自動開放されますか? class A{ public:vector<char> x; A(){x.resize(10000000);}}; main(){ map<string,string> w; w["hage"].resize(10000000); cout<<"enterを押すとstringのメモリを解放します。 "; getchar(); w.erase("hage"); cout<<"メモリは解放されましたか。 "; getchar(); map<string,A> z; z["piza"].x[0]; cout<<"enterを押すとクラスのメモリを解放します。 "; getchar(); z.erase("piza"); cout<<"メモリは解放されましたか。 "; getchar(); }
376 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 16:01:47 ] STLのメモリ解放は変な点がありますから心配です。 というのも、vectorでclear();使っても全く解放できないからです。swapしかないので。
377 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 16:10:25 ] ブロックでくくれば抜けたとき解放されるだろ
378 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 16:11:03 ] 何も変な点なんてねぇよ。 clearやresizeでメモリを解放する必要などない。
379 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 16:13:50 ] MinGW3.4.5を使っているのですが、 list<vector<int> > l; vector<int> v(10,0); l.push_back(v); とすると、 stl_list.h:435: warning: '__p' might be used uninitialized in this function という警告が出ます。 l.insert(l.end(),v); とすれば警告は出ないのですが、何が問題となっているのでしょうか?
380 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 17:51:32 ] >>376 効率を上げるために、開放されないよ。 clearするってことは、次に直ぐ追加される可能性があるかもしれないってことで、バッファっは保持されるんだ。
381 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 18:39:19 ] AUX CON NUL PRN をファイル名に使うとバグりますか?
382 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 18:43:25 ] バグるかもしれないし、バグら無いかもしれない
383 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 18:45:05 ] DOSの予約デバイス名が入っていたときに処理がおかしくなる代表例を教えてください。 WindowsXP以上でAPIを使ったときバグりますか?
384 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 18:47:45 ] うちのパソコンだと、AUXを名前に含めても、エラーが出ずに エクスプローラーで書き換えられます。 問題出ますか?
385 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 19:04:12 ] 一意的な絶対パスに変換する方法教えてください。 下のpはパスとして正常なんですけど・・・ これを変換する関数は無いですか? char p[]="C:\\hoge_hoge\\..\\windows\\Notepad.exe"; system(p); //パスが有効か? char q[300]; GetLongPathName(p, q, 300); wcout<<p<<"\n->\n"; wcout<<q<<endl;
386 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 19:20:50 ] 自己解決しました char p[]="C:\\////\\hoge_hoge\\..\\windows\\Notepad.exe"; char q[300]; GetFullPathName(p, 300, q, NULL); printf("%s\n", q);
387 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 20:34:56 ] すみません。 wchar_t型配列に、世界各国語と英字の大文字・小文字が入っているとき 大文字を小文字に変換するにはどうしたら良いでしょうか?
388 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 20:47:41 ] towlower
389 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 21:00:05 ] すみません。このようにしたいんです。 中国語・・・ABCDF・・・中国語 →中国語・・・abcde・・・中国語 ロシア語・・・FUNCTION・・・ロシア語 →ロシア語・・・function・・・ロシア語
390 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 21:02:36 ] 何語でも出来ますか?? towlower() の動作は、現在のロケールの LC_CTYPE カテゴリに依存する。 この関数を Unicode 文字に対して使うのはあまり適切でない。なぜなら、 Unicode には大文字(upper case)・小文字(lower case)・タイトル文字(title case) という 3 つの "case" が含まれているからである。 manpages.ubuntu.com/manpages/feisty/ja/man3/towlower.html
391 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 21:36:50 ] こんな感じ? wchar_t us_tolower(wchar_t c) { if(c<='A' && c>='Z') { c=c-'A'+'a'; } return c; }
392 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 21:45:26 ] unicodeて、どのOS、コンパイラでもアルファベットはASCIIと同じですか?
393 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 21:47:34 ] 何?
394 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 21:48:44 ] >>391 なんか怪しいけど、せめてLを・・・
395 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 21:50:59 ] たまにはEBCDICも思い出してね
396 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 21:52:47 ] コンパイルした環境に依存しないで、たとえば日本のVC++でコンパイルして、 ロシアや中国でも小文字になりますか?
397 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 21:55:51 ] BCCでコンパイル中に任意のメッセージ書き出せるマクロみたいのってないよね?
398 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 21:59:15 ] GetUserDefaultLCID と LCMapString でやってみます。
399 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 02:19:19 ] intel c++はisostream入っていませんか?
400 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 02:38:34 ] 日本語体験版だと入ってないのかな? なんかヘッダが足らないみたいです インストールの失敗? 英語体験版をいれて日本語で上書きしたらいいかな?
401 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 02:50:42 ] わかりました。VC++2008との統合が失敗してたのですがそれが原因みたいです。 wikiより。 実行に必要なライブラリやリンカなどは付属していないため、他のコンパイラの環境に寄生した形で実行される。 WindowsではMicrosoft Visual Studioが、LinuxではGCCが必要である。
402 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 02:52:46 ] isostream?
403 名前:デフォルトの名無しさん [2008/09/20(土) 17:52:54 ] あるところからC++のソースコードをダウンロードして、 そのフォルダの中のsample.vcprojというのを実行すると、 VisualStadioが起動しました。 サンプルコードのはずなので、F5を押して実行すると、 「シンボル情報がありません:firefox.exeのデバッグ情報が見つからないか、 または一致しません。シンボルが読み込まれていません」 というウィンドウが表示されました。どうすればよいでしょうか?
404 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 17:57:33 ] あるところって、どこ?
405 名前:403 [2008/09/20(土) 18:10:55 ] 404さん www.cs.umd.edu/~mount/ANN/ からann_1.1.1.zipをダウンロードして、 MS_Win32→sample→sample.vcprojを実行しました。
406 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 18:29:16 ] プロジェクトの構成がReleaseになってるだけじゃないの? Ctrl+F5とかで実行したら?
407 名前:403 [2008/09/20(土) 18:36:34 ] 406さん プロジェクトの構成はDebugでした。 Ctrl+F5とすると、Firefoxが新しく起動しました。 プロジェクトの構成をReleaseにしてみて、 F5を押すと「デバッグセッションの実行可能ファイル」というウィンドウが出てきて、 「実行可能ファイル名」を選ばされました。 よく分からず、既定のWebブラウザを選んで実行しました。 それを過去にもやったため、Firefoxが動いているんだと思います。 「デバッグセッションの実行可能ファイル名」を何にすればよかったのでしょうか?
408 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 19:08:56 ] 1回かたの消しちまって、めんどくさくなった。 >>407 落としたけど、スタートアッププロジェクトがdllになってない? samleをスタートアッププロジェクトに設定しないと、VSからは起動できない。 あと、sampleをビルドして出来るのは、コマンドラインアプリだったので、 F5実行だと、DOS窓が一瞬出てすぐ消えた。 デバッグセッションの実行可能ファイル名で解決したいなら、 「展開したフォルダ\ann_1.1.1\MS_Win32\bin\ann_sample.exe」 じゃないかね
409 名前:403 [2008/09/20(土) 19:54:14 ] 408さん F5実行で、DOS窓が一瞬出てすぐ消えた、ところまではできました。 「引数無しで実行」したときはエラーになるようなので、 コマンド引数に「-df data.pts -qf query.pts」と設定して 実行してみました。すると「cannot open data file」と表示されました。 すこし前進したようです。 あとはどうやってファイルを開くのか試行錯誤しているところです。 query.ptsというのは点のデータだと思います。 Test dataフォルダには「data_pts」がありますがちょっと違う。 これを読めばいいのか、または別のところにデータがあるのか。。。
410 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 20:12:01 ] test1-data.pts,test1-query.pts,test2-data.pts,test2-query.pts ってのがあるみたいだけど
411 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 20:13:07 ] 俺が落としたヤツだと「ann_1.1.1\test\」の下に test1-data.ptsとtest1-query.ptsってのが転がってたんで、 それを「ann_1.1.1\MS_Win32\bin\」の下にコピってからDOS窓で ann_sample.exe -df test1-data.pts -qf test1-query.pts って打ったら動いたけど。 VCからだとカレントフォルダ分かりづらいから 別にDOS窓起動した方が良いんじゃない? 引数の設定にフルパスで書いても良いと思うけど。 まぁそろそろ飽きたんで引っ込む。
412 名前:403 [2008/09/20(土) 20:16:28 ] 411さん 長いことありがとうございました。 後は自分で進んでみます。
413 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 20:41:25 ] 逆アセンブラしてCのソースに貼り付けたら、動かせますか? コマンドラインの引数を、関数の引数に変換できますか
414 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 20:44:13 ] >逆アセンブラしてCのソースに貼り付けたら、動かせますか? そのまま貼り付けてコンパイルしたら動かないね いやそも逆アセンブラするってなんだよって話だが >コマンドラインの引数を、関数の引数に変換できますか main関数の引数になります
415 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 20:50:17 ] DOSプロンプトで動くツールで、ソースが無いものをパクリたいのですが・・ できないですか? test.exe ファイル名 > 出力名 というツールを char * test(char *ch){ アセンブラ } という関数に出来ませんか
416 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 20:57:14 ] 無理?
417 名前:デフォルトの名無しさん [2008/09/20(土) 20:59:24 ] 普通に通信して連携すれば?
418 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 21:00:36 ] 速度はひとつにした方が速いと思うんですが
419 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 22:12:24 ] >>415 関数が export されていて、インターフェイスが公開されているなら簡単にできるが、それ以外だと面倒 グローバル変数を使ってたりしたら「自作のほうが楽じゃね?」ってなるかもw
420 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 02:22:25 ] すみません こういうツールの作り方教えてください 圧縮ファイルをすべてのアプリに対してフォルダと認識させる方法です wINDOWSエクスプローラのみなら昔からできたのですが Zipファイルをマウントする?「Pismo File Mount Audit Package」 www.moongift.jp/2008/07/pismo_file_mount_audit_package/
421 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 03:16:01 ] #include <stdio.h> #include<math.h> double simpson(double, double, double, double); double func(double); int main(void){ /* 必要な変数の定義をする */ double h,xkisu,xguu,s0,s1,s2,ans,x1,x2,n,x0,i; scanf("%lf", &x1); scanf("%lf", &x2); printf("x1 = %f\n",x1); printf("x2 = %f\n",x2); /* 偶数の分割数を入力するまで繰り返す */ do{ scanf("%lf", &n); printf("n = %f\n",n); if ((n%2) != 0){ printf("!! Bunkatsu su ha gu-su- desu !!\n"); } else break; } while (n%2!=0);
422 名前:421 mailto:sage [2008/09/21(日) 03:17:12 ] すみません、みすって投稿してしましました。 上のは途中までのプログラムなのですが コンパイルすると 22: 浮動小数点の不正な使用(関数 main ) 25: 浮動小数点の不正な使用(関数 main ) とでます。 なぜでしょうか?
423 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 03:33:07 ] 小数を整数で割った余りって何なんだよ。 nはintとかにしとけ。
424 名前:デフォルトの名無しさん [2008/09/21(日) 04:52:19 ] Cでのメモリの取られ方についてご教授いただけませんでしょうか。 下記のようなコードを書いた場合、 static const char *teststr[6] = { "00000", "1111111111", "2", "3", "444", "555555" }; それぞれの文字列でピッタリ埋まるサイズでメモリが確保されて、 それらを指すポインタがteststrに格納されるのでしょうか? VCで試したところ、確かにteststrの各配列に指定した文字列が格納されていたのですが、 ポインタのみを確保して、その位置のデータを破壊して、指定文字列を格納しているということはないでしょうか? 組み込み(ARM)での開発に使用しようかと思っています。 よろしくお願いします。
425 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 05:02:09 ] そんなもの処理系によるとしか
426 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 05:12:15 ] Cで@や$や`記号が使われなかった理由ってあるんですか。
427 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 05:16:12 ] これ以上トリグラフ増やすのいやだったんじゃね
428 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 07:28:28 ] >>424 破壊はしない。
429 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 13:51:14 ] >>424 > それぞれの文字列でピッタリ埋まるサイズでメモリが確保されて、 > それらを指すポインタがteststrに格納されるのでしょうか? そのとおり。 文字列はROM、ポインタはRAMに置かれる。
430 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 15:26:49 ] >>429 ポインタが RAM にいっちゃうのは teststr に const が付いてないからだよね?
431 名前:デフォルトの名無しさん [2008/09/21(日) 15:27:21 ] Cから最近C++に移行しました。 関数を void foo(char* filename); と宣言して使うときに foo("data.dat"); とやると deprecated conversion string constant to char みたいな 警告が出ます。これは何が不味いのでしょうか?
432 名前:デフォルトの名無しさん [2008/09/21(日) 15:28:02 ] >>431 const 付けたらいいんじゃね?
433 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 15:28:17 ] >>431 文字列リテラルは書き換えできないから char const で受け取らないとあぶない。
434 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 15:34:55 ] マクロの中で " をあらわすにはどうしたらいいですか? エスケープを使うとエラーになり、そのまま使うと文字列リテラルとして解釈されてしまいます。。。
435 名前:デフォルトの名無しさん [2008/09/21(日) 15:35:43 ] つまり foo(const char* filename); と宣言すればよいということでしょうか?
436 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 15:35:48 ] >>434 状況が見えんな。エラーになるコードとエラーメッセージをどうぞ。
437 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 15:37:21 ] 現在二次元配列と2重ループを習っている超初心者です 質問なのですが列和と行和を求めるプログラムで、 列和も行和も同じループ内で処理できるのは何故なのでしょうか?
438 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 15:37:56 ] >>435 foo の中で filename の指す先を書き換えないんなら、それでいいはず。 っていうか、試せよ。
439 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 15:39:09 ] >>437 日本語でどうぞ
440 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 15:39:55 ] >>437 それだけ言われてもわかんねーよw 二次元配列を一次元配列にキャストしてるとか?
441 名前:437 mailto:sage [2008/09/21(日) 15:47:42 ] すみません・・・どう表現していいかわからず整理しないまま打ってしまいました 考察の一部なんですが、これ以外文章にしようがなくて困っています プログラムをあげたほうがいいでしょうか?
442 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 15:49:34 ] >>441 まだ相談したいならコード晒せ。あの文章じゃ無理だ。 コード晒せば答えが得られる保証はないけどな。
443 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 16:02:09 ] 簡単なことだ 二重ループは行列の全ての要素にアクセスするための手段でしかないから その扱いについては制限されない あとは各行和各列和を格納する配列を定義して要素に応じてそれぞれ適切に加算していくだけ
444 名前:441 mailto:sage [2008/09/21(日) 16:07:01 ] 初心者丸出しで長ったらしいプログラムなのでろだにあげてみました。 No.7729です。よろしくお願いします。
445 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 16:38:13 ] for(j=0;j<4;j++) for(i=0;i<3;i++) table[3][j]+=table[i][j]; これ行和しか求めてないよ。ソース中には列和を求める部分は見当たらなかったけど。
446 名前:444 mailto:sage [2008/09/21(日) 18:52:32 ] >>445 列和の計算を入れ忘れている事に気付きました。ありがとうございます この行和と列和を求めるプログラムの考察で、 列和も行和も同じループ内で処理できるのは何故かと言う問いなのですが 理由は>>443 でOKもらえますかね・・・?
447 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 19:11:38 ] >>446 >>443 は日本語がちょっとおかしいのでちゃんとした文章を自分で考えてくれろ 正解かどうかは知らないし
448 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 19:54:02 ] すいません質問なのですが、とあるクラスのprotectedメンバはその派生クラスの派生クラスからはアクセスできないんでしょうか?? MinGWで色々やっているのですが、間接継承の関係にあるクラスのprotectedメンバにアクセスしているプロググラムを実行すると、フリーズしてしまいます。 アドバイス頂けると幸いです。