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を読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。 宗教的な話題は禁止します。
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厨はこれだから… ってどういうこと?
300 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:48:59 ] >>299 CodeWarriorってタダで使えるの? wikipediaで見たらかなりのプラットホームをサポートしてるみたいだから 使ってみたいのだが
301 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 00:16:57 ] >>300 コンシューマゲームの開発やってると、無料でダウンロードできる場合もある 俺が使ったのはこのパターン。 すまんが小売してるかどうかは知らん。 とりあえず使いにくいことは確か。
302 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 00:18:57 ] >>299 #pragma onceがおそらくVC発祥だからでしょ。 #ifdef _MSC_VER >= 1020で囲むコードを良く見かけるし、 まだまだVC限定のイメージが拭いきれていないと思う。
303 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 09:03:50 ] >>302 > #ifdef _MSC_VER >= 1020で囲むコードを良く見かけるし、 すまんが意味がわからない。 コンパイラによってifdefとpragma onceを切り替えるコードがあるって話?(なわけないか) VC限定のイメージとの関係は?
304 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 09:08:11 ] つーか、ifdefで比較演算ってなんだよw とは思った。 >>303 pragma onceは厳密には全く違う意味に解釈される可能性もあるから、 使えるコンパイラを限定することに意味はないわけでもない。
305 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 14:55:58 ] >>304 意味ないだろ それならifdefだけで十分なんだから。
306 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 15:26:48 ] >>305 古い MSC には #pragma once がなかったんじゃないの?そのための比較だと思うけど。
307 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 15:59:56 ] >>303 ごめん間違えた。正しくはこんな感じ。見ない? #if _MSC_VER >= 1020 #pragma once #endif
308 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 18:14:42 ] >>307 全く答えになってないんだがww
309 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 22:15:10 ] 素直にインクルードガードしとけってことだ!!
310 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 22:50:41 ] #ifndef _strcpy #define _strcpy int _strcpy(){return 0;} #endif
311 名前:赤西仁 [2009/02/13(金) 22:57:03 ] 1年間悩んでます。お力をお貸しください。 アークザラッドUというタイトルのゲームの、ゲーム画像(歩行画像など)を抽出したいのですが、 かれこれ1年ほど経ちますが、なかなかうまくいきません。 *もちろん抽出した画像は個人範囲内で利用するつもりです。 ◆試してダメだったこと ネット上からダウンロードできる、ありとあらゆる抽出系ツールを試した。 (ちなみに他のゲームはほとんど抽出可能) ◆教わったこと ・アークザラッドUは独自の画像形式を使っているから抽出できない。 ・PS上で表示されてるということは絶対に摘出はできるはず。 ◆抽出は不可能ではないということを知ったとき 2ちゃんねるで質問したところ、 ある方が実際にキャラクターの歩行画像を抽出して 私が立てたスレにアップしてくださいました。 スクリーンショットじゃ嫌なんです。どうか皆さん、お力をお貸しください。
312 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 23:44:15 ] マルチ失せろ。
313 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 00:00:30 ] >>306 コンパイラの種類/バージョンチェック云々以前の話なんだが、わかってるか? VCでifdefやifndefが使えないわけじゃあるまいし、 あえてpragma onceを混ぜる理由が無いだろ
314 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 00:05:42 ] 普通のインクルードガードと307みたいなVC限定でpragma onceを組み合わせて使うコードの存在が、 #pragma onceがあたかもVC限定かのように思わせるのではないかと言いたいんだけど
315 名前:313 mailto:sage [2009/02/14(土) 01:00:52 ] >>314 >>306 なの? 横レスで他人へのレスをされても噛み合わないレスしか返せないぞ
316 名前:306 mailto:sage [2009/02/14(土) 04:46:01 ] >>313 マクロによるインクルードガードでは2回目もファイルを開いて少なくともインクルードガードを 読む必要がある。 #pragma once なら2回目以降ファイルを開かずにスキップするような実装が 考えられる。 そのため、インクルードガードを置いて移植性を持たせつつ、特定のコンパイラでの コンパイル時間を短縮する目的で #pragma once を置くことが考えられる。 en.wikipedia.org/wiki/Pragma_once
317 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 12:32:24 ] おまいら ._,,,,,,。,,、 广'x、 ,,、._ 」'゙''i、 ,,,,,_.,,,,、广゚┐ .,,,v―冖"~゛ ゙'i、 .ト ,|,_ riゃ .} .,i´ '冖i、 .] ` f゙,l° ,i´ .゙l_ .y-┐ 'や'゙"゙’ _,,,vr" .゙ト.゙'x,,,,广 ィ・'''゙~ .._,,v・゚ヒ''''・x、 入、rУ ,iレ-v,,,、 .,r°."'''l゙ ,|√゙゚'i、 匸 ._ .y・'゙゚,,,v―-, .:゚ーa .√ ._,rll_ :} .,r''y|゛゙゙l..,i´ ,i"゙l, .゙ト ,r°,,, .., ._,,vぐ .`√ .,i´l广._,,,,,,,,i´ ,,i´ ,i´ ,「 .:| .~''''″ .r″ .|゙l、 “ .,i″.yi入-イ il∠i、.` .,メ| | 」'ト .,,i´ .,i´ ,, ̄ .[ .,i´.,,,,,,! .]_ .゙l_,i´,レ .'_,,,,レ ~''┐ .,r°.,i´.| .| ,l゙ :゙l、 ,,i´ ,i´ l゜.゚L__ .:―ヤ゚″_ :~''=、 .,r″.,x=,, .,i´ ,x'".,,x'″ .゙l、 ゙冖''″ .] | .,i´ .゙l, .~1 .゚L '゙〃 ,n, .,,} .,l彡'''″ .゙~"''''''''''"゜ .テ''~゛ .:゚'―---―・° ―″ .~''¬―'″ .:゚=_,r
318 名前:デフォルトの名無しさん [2009/02/16(月) 17:47:44 ] 皆様こんばんは。 VC++ ExpressEditionでのリーソスの事について質問させてくダサイ。 (Resource.h) #define GAZOU000 1000 #define GAZOU001 GAZOU000 + 1 : : : : #define GAZOU030 GAZOU001 + 030 (Resource.rc) GAZOU000 BITMAP "bmp000.bmp" : : : : GAZOU030 BITMAP "bmp030.bmp" これでビルドしようとしたら .\Resource.rc(5) : error RC2135 : file not foundみたいなのが ズラズラズラ〜〜〜っと出てきました。 仕方が無いのでResource.hの、 #define GAZOU030 GAZOU000 + 30みたいに記述しているのを 全部#define GAZOU030 1030のように書き直したらビルドできました。 なぜ最初の書き方でダメだったんですか
319 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 21:07:15 ] 最初の書き方だと、 GAZOU001 BITMAP "bmp001.bmp" のGAZOU001をマクロ展開すると、 1000 + 1 BITMAP "bmp000.bmp" になるだろ?リソースファイルはスペースを区切りと扱うので、正しく認識できなくなる。
320 名前:デフォルトの名無しさん [2009/02/16(月) 21:57:46 ] >>319 えー!そうなんですか〜 初歩的ミスだったのですね。お恥ずかしい・・・ でも、お蔭様で、またひとつ勉強になりました。 ありがとうございました。
321 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 22:04:41 ] >>316 大抵の場合、フルビルドを立て続けにやることはなく、プリコンパイルヘッダの効果で意味がないと思われ
322 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 22:37:19 ] google C++コーディングスタイルに、 cppファイルの無名名前空間の使用は推奨されてたのですが 理由はなぜでしょうか。cppファイルは別に何をやってもいいような。 cppファイルですらusing使うのは駄目なの?
323 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 23:46:37 ] >>322 ほかのcppファイルから見える必要のないものを隠すために使えという意図だと思う。 同じ目的で、名前空間上のstaticも使えるけど、 一般的に、この意味ではstaticより無名名前空間のほうが推奨されている。
324 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 23:57:52 ] static指定のかわりですか、なるほど。 名前空間上の関数定義だったら別だけど クラスのメンバ定義だけしか書かない分には 気にしなくてもいいのかな。 >staticより無名名前空間のほうが推奨されている。 これは等価だと理解してましたが、なぜでしょう。 どっちも他のファイルからは見えないのに?
325 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 00:39:05 ] >>324 もともとC/C++のstaticに静的記憶期間とファイル内って2つ意味があるのはややこしいから、 後者の意味を分離しようという動機で無名名前空間が導入されたという経緯がある。 だから大事に使ってあげてねと言うわけ。
326 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 03:30:11 ] >>324 C++ ではオーバーロードやテンプレートの関係で、クラス名などもグローバルな定義の 識別に使われるので、関数や変数以外に class, struct, enum も別々の .cpp で同じ 名前空間内に同じ名前のものを定義するとマズイ。これが無名名前空間で解消できる。
327 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 02:20:15 ] お題。 ISO/IEC 14882:2003とXLib、Win32APIの範囲内でスクラッチからエディタを作る。 Win32、XLibともに標準C++ライブラリとかぶる機能があるが、この場合 標準C++を優先して使う。 これは、少しでも移植性を高めるための努力と考えてほしい。 また、拡張性の担保ともなりうる。 これは時間かかるけど、やりがいあるよ?
328 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 02:56:40 ] なんだコピペだったのか。
329 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 03:02:01 ] まずISO/IEC 14882:2003がなんなのか調べるのめんどくせえから挫折 →XlibかWin32?どうせなら両立できるwxだろと意気込むがインストール失敗して挫折 →そもそも標準C++が分からなくて挫折 →努力なんかできなくて挫折 →わたるが死んじゃう!(自殺)
330 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 22:30:51 ] すいません CとC++を実践の中で学びたいのですが なにを作ればいいか、というよりなにをその言語で作れるのか漠然として・・・ JavaやC#のようなオブジェクト指向言語ならイメージ浮かびやすいんですけど コンソールだとコントロール等がないのでどうしても・・・
331 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 00:19:13 ] C++もオブジェクト指向言語なんだが・・・
332 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 09:37:07 ] つーか、好きにライブラリを選べばいいのがC/C++流。
333 名前:330 mailto:sage [2009/04/12(日) 10:24:27 ] そういやC++もオブジェクト指向言語でしたw まだイメージができないあたり、ライブラリの知識が不足しているようですね。
334 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 10:29:32 ] ライブラリの前にオブジェクト指向と言語仕様の知識も不足してる
335 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 11:54:22 ] それを言ったら情報工学の基礎から何から全部だろう ポトペタでさくさく作っている間は必要のない知識だ
336 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 12:45:19 ] なんだポトペタって。
337 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 19:33:18 ] 一覧からマウスで選択したコントロールをフォームに ポトっと落とすとペタっと張り付く機能やそれを備えたIDEのこと
338 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 00:50:39 ] Stringクラス的なものを参考すればいいんじゃね? まさにコントロールじゃない目に見えないクラスオブジェクト。
339 名前:トミー ◆xb8eIST5.k [2009/04/25(土) 20:19:22 ] >>182 ぼくもそれをダウンロードして使ってみました。 うまくいきそうです。 どうもありがとうございました!
340 名前:トミー ◆xb8eIST5.k [2009/04/25(土) 20:21:25 ] >>339 はこのスレの>>155 です。
341 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 22:02:48 ] ここはvc++は駄目かえ?
342 名前:デフォルトの名無しさん [2009/06/07(日) 16:31:54 ] 正の数であれば、小数点以下を四捨五入する場合、0.5を足して、intで切り捨てればいいのですが、 負の数も含めて、四捨五入をする場合、どのようなコードを書けばよいのでしょうか?
343 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 19:14:53 ] GUIアプリを作るのにC++を勉強しようと思っているのですが VC++EEとBCCどっちが作り易いですか? また言語自体はどちらも同じですか?
344 名前:デフォルトの名無しさん [2009/06/07(日) 19:20:10 ] GUIはスクリプトで出来る
345 名前:デフォルトの名無しさん [2009/06/07(日) 19:21:35 ] VC++EEとBCCで選ぶと結局は、VC++EEが簡単だろう。 ATL/WTLなどもあり対応しているライブラリも多い。
346 名前:デフォルトの名無しさん [2009/06/07(日) 19:22:57 ] rubyでGUI作れなければ、C++ではもっと無理。まずこれでやってみれば
347 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 22:30:11 ] >>342 x=(int)(x+.5-(x<0)); でよいか?
348 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 22:35:28 ] >>344-346 VC++使うことにします。 ありがとうございました。 >>346 C++は以前触ったことがあります。昔すぎて何も覚えてませんが…
349 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 22:41:43 ] >>342 abs関数はどうですか
350 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 10:46:27 ] >>342 >>347 なんで cast なんか四捨五入で使うの?round とか使わない? cast なんてそんなに無闇に振り回すものじゃないと思うけど。
351 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 11:31:01 ] >>350 round()なんて関数ないぞ
352 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 12:44:07 ] >>351 すまん。ちょっと説明不足だったかも。厳密にいえば round/lround/rint/lrint 等々は C99 の規格みたい(といっても今や 2009 だが)。 プラットフォームによってはいまだに使えないのかも。
353 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 18:55:43 ] castはそんなに振り回すもんじゃ無いのは同意だが このケースは真っ当な使い方だし問題ない が、>>350 みたいにそういう判断ができないなら使うべきではないな
354 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 22:18:13 ] 俺は cast 使わないでもサクッとできるなら使わない方を選ぶな。
355 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 22:28:06 ] 昔からあるやり方だから、一種の慣用句。 BASICでも同じようなことしてたと思うし。
356 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 23:45:37 ] >>353 「これは真っ当」というけど、intでoverflowの心配はしなくていいの? 別に一般にcastが良いか悪いかは別としてこの場合の素朴な疑問。
357 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 00:33:41 ] それも含めて分かって使ってるかということだろう。
358 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 00:35:52 ] >>357 それなら今回のケースは情報不足で > このケースは真っ当な使い方だし問題ない と言い切る根拠は無いように思うが。
359 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 02:53:47 ] 言い切る根拠ねぇ。。 根掘り葉掘り前提を聞かないと、うかつにコメントしちゃいけないのもどうかと思うが。
360 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 00:09:27 ] プログラミング言語C第2版には「A.6.3.整数と浮動小数点」の項に >浮動型の値を整数型に変換するときには、小数部分は無視される とあるんだけど、実数xの少数分 x-[x] なので、例えば-2.3の整数部分は-3となり、 (床関数:ja.wikipedia.org/wiki/%E5%BA%8A%E9%96%A2%E6%95%B0 ) 結局、int a = -2.3 の結果は -3であるべきかな?かなかな?
361 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 00:34:11 ] >>360 いや、それは-2になる。 ここで言う小数部分を無視というやり方は、数学的定義とは関係なく (絶対値が)0に近づく方向へ切り捨てるということ。 ここまで書いてから気付いたが、その記事の下の方にC言語の場合もきちんと書いてあるじゃないか。
362 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 00:41:50 ] きちんと >『独自研究』に基づいた記述 と書かれていますね。