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でのインデントはスレに貼ると無くなります。 そのため、アップローダーに上げるのが最も良いですが、 直接貼るのであれば、全角空白か に置換しておくことをお勧めします。
314 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 03:42:10 ] あるていど近づきました。 aとxが逆になっていました。 #include <math.h> #include <stdio.h> #include <stdlib.h> #include <time.h> #define N 200000 main(){ int n, *a=new int[N]; float *x=new float[N]; for(n=0;n<N;n++){ a[n]=rand(); x[n]=(float)(a[n]&255)/1024;} double kei=0; for(n=0;n<N;n++) kei+=a[n]; double s=1; int cl=clock(); for(n=0;n<N;n++)s*=pow(1.0+x[n],a[n]/kei); cl=clock()-cl; printf("%g %d\n",s,cl); s=0; cl=clock(); for(n=0;n<N;n++)s+=a[n]*log(1+x[n]); s/=kei; s=exp(s); cl=clock()-cl; printf("%g %d\n",s,cl); s=0; cl=clock(); for(n=0;n<N;n++) s+=a[n]*x[n]; s=1 + s/kei; cl=clock()-cl; printf("%g %d\n",s,cl); }
315 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 03:47:04 ] しかし、おかしい点があります。 教えてもらった式は、小さい項を無視しているので 値が小さくなるはずですが、計算結果が他より大きいです。 あと、(1+A) (1+B) (1+C) ・・・のS乗根は、なぜ上のような式になりますか? Aの値は1より大きいかも知れないですが・・・すると高次の項のほうが大きいかもしれません。 (Aはaxなどです。)
316 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 03:48:25 ] というか、100項目程度の話じゃなかったのか? N=200000でやったら、そりゃ誤差でかくなるの当たり前
317 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 03:51:31 ] 要するに求めるのは(1+a)^(x/S)(1+b)^(y/S)...≒(1+ax/S)(1+by/S)...≒1+ax/S+by/S+... a,b,...<<1なんだから、ax/S,by/,...S<<1だよな
318 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 03:54:25 ] トンクス そういうことですか わかりました
319 名前:デフォルトの名無しさん [2008/09/18(木) 13:14:45 ] 質問です。 1バイト文字列とwchar_t文字列 (特にwchar_t型文字で可)はどのように 変換できますか? 自作できますか?
320 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 13:18:48 ] >>319 wchar_tの文字コードは処理系依存であって、変換はcharの文字コードとwchar_tの文字コードを明確に示してくれないと答えようがない。 とりあえず使ってるコンパイラから書くってのはどう?
321 名前:デフォルトの名無しさん [2008/09/18(木) 13:20:55 ] VC++2008、BCC2009でおねがいします。
322 名前:デフォルトの名無しさん [2008/09/18(木) 13:26:38 ] すみません。なるべく速く変換したかったのですが、いい方法が自分で判りました。 すべての一語を標準関数で求めておいて、配列にいれておくという方法です。
323 名前:デフォルトの名無しさん [2008/09/18(木) 13:29:33 ] >>320 文字列を記録している文字コードにも依存しますか? SJIS、EUCなど、それぞれで変換関数は変わりますか?
324 名前:デフォルトの名無しさん [2008/09/18(木) 13:31:57 ] コンパイラのフォルダを検索しましたが、wcstombsのコードはみつかりませんでした。 本体はlibになっているとおもいます。
325 名前:デフォルトの名無しさん [2008/09/18(木) 13:38:18 ] かなり簡単であるとおもいました。 wchar_t → charはこれでいいみたいです。 wctomb(char *s, wchar_t wc) { *s = (char)wc; } libc.blog47.fc2.com/blog-entry-71.html
326 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 13:42:17 ] またまたご冗談を
327 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 13:58:54 ] 下記のようなプログラムで、どのように記述すれば、正常に動作するのでしょうか? やりたいことは、gushtUpdataAreaが配列であり、gulngUpdataAddressの示すアドレスに対してオフセットしたアドレスにgushtUpdataAreaの中身をコピーするというものです。 volatile static u_short *pushtWrAdr; volatile static u_short *pushtRdAdr; volatile static u_long ulngAdr; u_long ulngI; ulngAdr = (gulngUpdataAddress & 0x0fffffff) + 0x0c800000; pushtRdAdr = gushtUpdataArea; pushtWrAdr = (u_long *)ulngAdr; for(ulngI = 0; ulngI < gulngUpdataDataCount; ulngI++ ){ *pushtWrAdr++ = *pushtRdAdr++; } pushtWrAdr = (u_long *)ulngAdr;の部分の記述が悪いと思うのですが、どうすればいいでしょうか?
328 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 14:10:06 ] >>327 コンパイルできてる? gulngUpdataAddressの型が気になる。
329 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 14:13:42 ] memcpy(reinterpret_cast<char*>(gulngUpdataAddress) + オフセット量, gushtUpdataArea, sizeof(gushtUpdataArea));
330 名前:デフォルトの名無しさん [2008/09/18(木) 14:14:37 ] 結果が変です。こうでます。 なぜですか? a[] no size = 3 65 130 160 b[] no size = 3 65 130 160 #include <stdio.h> #include <stdlib.h> #include <string.h> main(){ unsigned char a[]="Aあ"; wchar_t b[10]; printf("a[] no size = %d\n",strlen(a)); for(int n=0;b[n]!=0;n++) printf("%d ",a[n]); mbstowcs(b,a,strlen(a)+1); printf("\n\nb[] no size = %d\n",wcslen(b)); for(int n=0;b[n]!=0;n++) printf("%d ",b[n]); }
331 名前:デフォルトの名無しさん [2008/09/18(木) 14:18:48 ] mbstowcsという関数のバグと思います。 これはなんの変換もしていないみたいです。 BCC2009です。
332 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 14:19:29 ] ロケール設定してないからだろ
333 名前:デフォルトの名無しさん [2008/09/18(木) 14:28:55 ] いい状態になりました #include <iostream> #include <locale.h> using namespace std; main(){ setlocale(LC_ALL, "japanese"); unsigned char a[]="Aあ"; wchar_t b[10]; printf("a[] no size = %d\n",strlen(a)); for(int n=0;a[n]!=0;n++) printf("%d ",a[n]); mbstowcs(b,a,strlen(a)+1); printf("\n\nb[] no size = %d\n",wcslen(b)); for(int n=0;b[n]!=0;n++) printf("%d ",b[n]); }
334 名前:デフォルトの名無しさん [2008/09/18(木) 16:43:57 ] while(true) { for(int i=0; i < 10; i++) ; } 上のやつってwhileが回っている間int型の変数分のメモリをどんどん食っていく? 開放せん?
335 名前:デフォルトの名無しさん [2008/09/18(木) 16:46:52 ] ローカル変数は有効範囲をすぎると無くなります
336 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 16:48:58 ] ファイルを指定すると更新日を表示するプログラム。 VCで動いてたコードをBCCに持ってきたら動かない現象が発生しました。 _fstatで0が返ってくるのに中身がちゃんと入ってないみたいです。 up01.ayame.jp/up/download/1221723883.c あれこれ弄ってみたけどうまくいかないorz
337 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 17:45:00 ] >>336 先頭にアンダーラインが付いてる関数は基本的に移植性がない。 BCCではPOSIX準拠の fstat() を代わりに提供している。 www.linux.or.jp/JM/html/LDP_man-pages/man2/stat.2.html
338 名前:デフォルトの名無しさん [2008/09/18(木) 17:50:16 ] コンパイラ限定の命令は使わないようにしよう WinならAPIでいいだろう 無理なら、boostとかから探すとか
339 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 17:55:29 ] BCC って SEH の __try と __finary を実装しているのだろうか? まず表面化することないだろうけどね Win32例外
340 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 18:03:06 ] >>339 __tryは実装していない。__finallyのみ実装しているが これは__tryに対応するものではない。
341 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 18:07:07 ] >>340 ありがとー WinAPI だからといって必ずしも全て利用可能ではない ってことか ま、SEHはかなり特殊だから仕方ない部分ではあるな
342 名前:336 mailto:sage [2008/09/18(木) 18:22:33 ] >>337 ,338 stract _stat → stract stat _fstat() → fstat() に変更したらBCCでも問題なく動きました。ありがとうございます。 本業はマイコン/ラダー屋なのもあって、こういった部分はあまり気にする機会がなく勉強になりました。 Boost覗いてみました。 C++はBCBでも殆どC記述で組むような状態でオブジェクト指向が身についてないので サンプルを見ながら少しずつ導入していこうと思います。
343 名前:デフォルトの名無しさん [2008/09/18(木) 19:12:50 ] インクルードについて教えてください。 あるサンプルソースコードを入手して、 ~~.slnを実行して、デバッグしたら動きました。 ファイル入出力をしようと思って、 メイン関数が書いてある.cファイルで#include <iostream>とすると、 1>c:\program files\microsoft visual studio 8\vc\include\cstdio(35) : error C2059: 構文エラー : ':' 1>c:\program files\microsoft visual studio 8\vc\include\cstdio(36) : error C2143: 構文エラー : '{' が ':' の前にありません。 が大量に出てきてしまいました。 インクルードしただけです。 何がいけなかったのでしょうか?
344 名前:デフォルトの名無しさん [2008/09/18(木) 19:16:53 ] cppにする
345 名前:345 [2008/09/18(木) 19:32:12 ] 344さん、ありがとうございます。解決しました。
346 名前:デフォルトの名無しさん [2008/09/18(木) 20:55:40 ] 親クラス ┣親クラス及び全ての子クラスで使うデバッグ用クラス ┣子クラス ┣子クラス ・ ・以下略 ・ ┗子クラス ┗子クラス という構成なんですが、子クラスがデバッグクラスにアクセスする、定石のような方法ってどういうのがありますか? 今自分がやっているやり方は、子クラスをnewで作成した後に、デバッグクラスのポインタをchildcls->SetDebugCls( cls )みたいな感じで渡しています。 しかしそれだと、全ての子クラスにセットしなくてはならず、非常に手間がかかっています。 実際はデバッグクラス以外にも、全ての子クラスで使いたいクラスが数個あります。 良い方法があったら教えてください
347 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 21:13:31 ] 単一のデバッグクラスのインスタンスを子クラスで共有するの?
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関数の引数になります