- 1 名前:デフォルトの名無しさん [2009/03/02(月) 00:36:19 ]
- スレを勃てるまでもない低俗な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/
- 541 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 20:50:45 ]
- >>538
間違ったプログラムであの世へ行くのはprintfに限らない 間違わなければいいだけ
- 542 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 20:51:43 ]
- >>541
君にはデスマーチとかアジャイルプラクティスとかを読む権利をあげますw
- 543 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 20:54:24 ]
- >>541みたいな人はC++使う価値ないんだって。
C++は厄介ごとはコンパイラにまかすという方針なんだから。 プログラマがすべてを制御できる自身があるなら Cの方がよっぽど単純で軽快だ。 C++を選択することが最初から間違っている。
- 544 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 21:03:05 ]
- Effective C++にも「FORTRANかよっ!」って書いてあるな。
自分はメイヤーズ先生やサッター先生の言うことに従うわ。 この板にそれ以上の能力の人間が来ているとはとても思えないから。
- 545 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 21:04:01 ]
- printfで出会った不具合といえば、
クラスが内部で規定してる構造体に型オーバーロードしたメソッド書いて、クラスの返り値としてその構造体をprintfに食わせたら、 オーバーロードが働かなくて構造体そのものを食いやがった事がある。アドレスぽいものが表示されんの。 表示系だから良かったけどいやなバグだった。 コンパイラはVC9EE。
- 546 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 21:09:15 ]
- VS2008のRelease Modeでは出力と入力の速度が逆転するな
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9000.txt
- 547 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 22:16:49 ]
- printf系関数はtypedefされた型には無力なのがダメだね
- 548 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 22:24:33 ]
- Boost.Spirit.Karma.formatを使おうぜ
- 549 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 06:38:13 ]
- 入出力先と書式化の癒着関係を美しく分離する術を思いつけなかった
可変長テンプレートマンセー君レベルが当時の最先端だったって事か
- 550 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 13:37:06 ]
- >>543
>>>541みたいな人はC++使う価値ないんだって。 間違いを犯す莫迦にこそ価値がないのでは? >C++は厄介ごとはコンパイラにまかすという方針なんだから。 いいえ。 コンパイラが余計なことをしないか、常に心配しながら コードを書き連ねることを プログラマに強いる方針です。
- 551 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 14:36:00 ]
- 間違ったプログラムを出来るだけコンパイルエラーにしようってのがC++の方向性なんじゃないの?
プログラムの知的能力に関わらず、タイプミス等の軽微なミスは起こりうるものだと思うけど。
- 552 名前:551 mailto:sage [2009/03/26(木) 14:37:29 ]
- プログラムの→プログラマーの
- 553 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 15:52:50 ]
- そうだよ。間違いを犯しやすい人ほど高級言語が必要になる。
コンピュータを完全にコントロールできる人間は高級言語に頼る必要はない。 高級言語は人間のミスを吸収するために余計なコードを山ほど作るからね。 C++はCよりも遅いしコードも大きいし規則も山ほどある。 その規則の多くはコードを早くしたり小さくしたりするためのものじゃない。 単に間違いをコンパイラが見つけやすくするため。 間違いを犯さないプログラマには無用のものばかり。
- 554 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 16:59:10 ]
- >>その規則の多くはコードを早くしたり小さくしたりするためのものじゃない。
>>単に間違いをコンパイラが見つけやすくするため。 そうか? コンパイラにとって正しいけど、プログラマの意図通りにならないことは C++の方が多いのでは?
- 555 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 17:06:14 ]
- えーと、どこから突っ込めばいいの?C++が目指したのは基本的に効率だよ。
それは速度とコーディング効率で、プログラマの能力と方針にあわせて、 どちら側を重視する事も出来る。充分に熟練していれば、他の言語よりも高い バランスで、両立する事も可能。それは全ての言語の、全てのメリットを上回る 意味では無いけどね。現実には機能を散漫に付けすぎて、高いバランスどころの 騒ぎじゃないけど、目標としてはそんなところ。 >>554 どうも設計者が平均的プログラマの能力等を、考慮に入れなかったのでは無いかと予想。 自分で設計しといて、ベテランしか使えねーとか言ってるしねぇ。
- 556 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 17:21:38 ]
- 「間違いを犯す莫迦にこそ価値がない」
という仮定が間違ってるんだよ。 なぜなら、間違いを犯す莫迦しかいないから。 間違いを犯さないプログラマなんて一人も存在しないから。
- 557 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 17:28:43 ]
- 「オレの嗜好通りにソースを書かないやつはクズ」
- 558 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 18:26:47 ]
- C++標準化委員会に名前を列ねている連中だってbugを出すんだから、
ましてや昼間に書き込んでるネラーなんてなあ?w
- 559 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 18:58:04 ]
- >>556
全員一律に同じレベルの莫迦だということにしないと 自分を保てないというのなら そういうことにしてもよい。
- 560 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 19:06:06 ]
- つまり、自分は間違いを犯さないプログラマであるといいたいわけね。
ちなみに、99点も0点もどちらも「間違いを犯す」ことに違いないよ。 100点満点だけが「間違いを犯さない」といえる。 さぁ、ベン図を描いて確認だ!w
- 561 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 19:09:56 ]
- >>559は「莫迦」の程度の話に摩り替えてるな
「間違いを犯すか否か」の話なんだが。 まぁいいか。論理的精密さを求めるような話でもない。 所詮は小さなプライドにしがみついた煽りあいだ。
- 562 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 19:10:19 ]
- 自分ひとりだけで完結する規模のものしかやらないのなら
将来メンテすることもないような使い捨てのものしか書かないならそれでいいじゃん
- 563 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 19:13:37 ]
- だな。それならいくら自分がバカで間違いだらけでも問題ない。
- 564 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 19:32:38 ]
- アンドリューハントによると、自分のプログラムにバグがないと思っているときには、バグは見つけられない。
言い換えれば、自分は間違いを犯さないと考えているプログラマは自分のプログラムからバグを見出せない。
- 565 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 19:42:27 ]
- このスレもム板化してきたな…技術の話しろよ、カスども。
- 566 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 19:53:58 ]
- >>565
ここはム版ですよ?w
- 567 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 20:05:29 ]
- >>565
一週間ぐらい我慢しろよカス
- 568 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 20:21:31 ]
- >>561
すりかえてなんかいねぇよ。 程度問題だろっつってんだよ。 >>556 の「間違いを犯す莫迦」の前に「ひとつでも」てのが付くなら、 そんな頭のおかしい「仮定」なんざ誰がしてるってんだ。
- 569 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 21:47:01 ]
- いや、頭がおかしいのはあなたですよ^^
- 570 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 22:00:27 ]
- いかに「あいまいな」仕様書が危険か、これでわかりましたね。
では、次の話題どうぞ。
- 571 名前:デフォルトの名無しさん [2009/03/27(金) 22:40:22 ]
- C++が危険なコーディングには警告を出すという方針なのだとしたら
printfを使ってもC++コンパイラは全く警告を出さないからprintfを使うことはC++的に全く問題ないということだよ。
- 572 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 22:44:15 ]
- >>571
その考え方はおかしい
- 573 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 22:57:20 ]
- 警告を出すかどうかはC++の仕様で定められてはいない。コンパイラの実装者の考え次第だ。
実際、Stroustrupはいろんなことについて「これに警告を出さないコンパイラが多いのはがっかりだ」とか言ってるな。 D&Eに書いてある。具体的な事例はあんまり覚えてないが。
- 574 名前:デフォルトの名無しさん [2009/03/27(金) 23:10:50 ]
- C言語は上から順番に処理されるんだよね。
そうすると、割り込むみたいなことは許されないんだよね? 例えばfor文のループ中にキーを押したらそのときのtimeを取れるみたいなのは無理? for( ) ・・・・・・・・・ if(getchar 見たいなのじゃなくて、for文でゲームみたいなの動かしたいんだけど、 その途中でどんな途中でもtimeが取れるみたいなことは出来ないですか?
- 575 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 23:18:42 ]
- >>574
_beginthreadex
- 576 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 23:23:46 ]
- つ _kbhit()
- 577 名前:574 mailto:sage [2009/03/27(金) 23:29:12 ]
- 初心者板ってあるんですね。行って来ますすいませんでした。
- 578 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 08:28:32 ]
- UWSCというフリーソフトに [CHKIMG]という関数があります。
画像ファイルと一致する画像を発見すると、その座標を変数に格納するというものです。 これと同じ機能をC言語で実装するにはどのような関数を使えば良いのでしょうか?
- 579 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 08:45:58 ]
- >>578
Win32API に画面をキャプチャするのがあるから それで画面を取り込んで指定画像と比較すればいいんじゃないかな
- 580 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 15:35:03 ]
- すまん質問させてくれ
今C++のtemplateで新しく設計・作成したクラスがあるんだが main.cpp temp.h temp.cpp のようにソースを分けたいと思ってる でも、templateだから.objにしてしまうとビルドエラーが発生 何とか分けたいのだが、良い方法ないでしょうか?
- 581 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 16:49:25 ]
- 蛇足だと思うが、Templateはコンパイル時に計算されてしまうのでobjになった時点で定数になっている。
exportっていう仕様があるにはあるけど、各社ともに実装できなくて放置状態だ。いや、一個だけあったかもしれんが。。。 VC6でやってた記憶があるけど、もう忘れちゃったなぁ。 VC9使ってるが、ヘッダにベタ書きしてる。
- 582 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 17:09:53 ]
- >Templateはコンパイル時に計算されてしまうのでobjになった時点で定数になっている。
さっぱりワケが解ってないらしい。 (なんだ「計算」だの「定数」だのって)
- 583 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 17:16:43 ]
- そりゃ君の経験不足
- 584 名前:581 mailto:sage [2009/03/30(月) 17:33:07 ]
- CTFE(だっけ)が何で高速っていわれるかしってんの?しらないの??魔法じゃないのよ。
多分>>580が望んでるのはジェネリックスのほうだと思う。
- 585 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 17:37:34 ]
- CTFEって何
- 586 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 17:38:49 ]
- en.wikipedia.org/wiki/Compile_time_function_execution
- 587 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 18:05:35 ]
- >>580
こういうのがあったが。 ttp://okwave.jp/qa270432.html これで解決かな??
- 588 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 19:13:56 ]
- >#include "TList.cpp"
…分ける意味ねぇな、とか思わないのが不思議。
- 589 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 19:39:23 ]
- >>581
俺もヘッダにべた書きしてた事あるんだが ヘッダに書くなんてありえないとか言われて、それ以来分けてる template classを使ったのは速度を犠牲にしてでも、汎用性+αの目的の為 >>587 ありがとう。これは知らなかったからまた新しく知識が増えた 只、ヘッダ以外をインクルード…まあヘッダにベタ書きしたと思えばいいかな… 暫くはこれを使ってみます レスくれた方々本当に有難うございました
- 590 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 19:46:47 ]
- >ヘッダに書くなんてありえないとか言われて、
「ありえねぇよな、STL」と言い返せ。
- 591 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 20:02:36 ]
- printfは素晴らしいよね。
coutより使いやすい
- 592 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 20:24:38 ]
- でもたとえば template<> hoge< int >( パラメータリスト )
みたいなテンプレート特化がしぽぽファイルに書き込まれていると これはテンプラータ関数ではなく一般の関数と同じ扱いだから 定義を頭ファイルに書き込めないのであって(淫乱は別として) 多重定義アラーがでるよって思うな。あっさらーむ。
- 593 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 20:30:49 ]
- あぁ、そうそう。ただテンプレート特化の注意点についてだけ言及しても
解決策はどうしたらいいのってことになるので、つまりそこはグーグルだよ。おにいさん。 以下の「-inl.hファイル」という項が参考になる。 www.textdrop.net/google-styleguide-ja/cppguide.xml 要するに、もう一個、てんぷらクラス/関数専用のサブのヘッダファイルを用意して そこにてんぷらの実装コードだけを分離しつつ、 ヘッダファイルでそのサブヘッダファイルをインクルードしたらどうなの?って話。 これなら本来実装を書き込むしびびんファイルをいんこるどするよりも気持ち的に安全。
- 594 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 21:18:29 ]
- >>592-593
酔っ払いすぎ。
- 595 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 21:24:22 ]
- 今の話題がよく分からないんだが。
特に理解出来ないのが#include "TList.cpp"とかやってるサンプルが出てきてからなのだが、 この会話はレベルが高い話なのか低い話なのか? (このレベルってのはハードウェアに近いかどうかって意味じゃなくてね。) >>580が悩んでるのはExplicit instantiationで解決する類の話じゃなくて?
- 596 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 21:28:39 ]
- ヘッダに置きたくない理由がわからんのにレベルもくそもあるかいな
- 597 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 21:29:06 ]
- そのエクストラボーキサイトイニシエーションとかいうのの詳細は
このスレのちょっと前の方に出てきているわけです。 d.hatena.ne.jp/aki-yam/20081129/1227982516 しかしこれはソースの分離というより、 あらかじめ分離してコンパイルしたオブジェクトファイルを用意しておく という感じでありますね。いいです。すごく。おおきい。
- 598 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 22:31:51 ]
- >>597
オヤジギャグかますなよ
- 599 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 22:51:34 ]
- かます。>゚))))))<
- 600 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 20:04:07 ]
- グローバル変数って他のファイルからexternで参照できるよね。
グローバル変数にstaticを付けると、 他のファイルからexternで参照できなくなるの?
- 601 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 20:13:14 ]
- ぐぐれかす
- 602 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 20:29:10 ]
- >>600
そうだよ。
- 603 名前:600 mailto:sage [2009/03/31(火) 20:58:08 ]
- >>601
とっっくにググってあるよ。 ググった結果、>>600のように解釈したんだ。 何の実りもないレスすんなカス。 >>602 納得できた。 ありがとう。
- 604 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 21:05:12 ]
- ちょっと試せば1分で判るような質問も、何の実りもないけどね
- 605 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 21:14:07 ]
- >>604
動いたかどうかじゃなくて正式な仕様として聞きたかったとか? だいたい2chで実りを求める方がおかしいよーな。 まあどうでも良いけど、これが火種になってスレが汚れないことを願う。
- 606 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 21:18:57 ]
- >>605
おまえが汚れだ。
- 607 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 21:28:20 ]
- >>606
2chに一生をかけてる人が「2chで実りを求める方がおかしい」発言にキレた構図。
- 608 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 21:34:15 ]
- >>607
バーカ
- 609 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 21:36:20 ]
- >>608
って言われてるのか。かわいそうだがお似合いなお方w
- 610 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 22:49:49 ]
- ,.、 .,r.、
,! ヽ ,:' ゙;. ! ゙, | } ゙; i_i ,/ ,r' `ヽ、 | ,.、 ,r.、 ,i" _, ._ ゙; うーん・・・・ | ,! ヽ,:' ゙;. !. ・ ・ ,! | ! ,! } ヽ、 x _,r'' 僕には何も言えない |二゙; i二二二(⌒ノ"''`''''''''''''"´`ヽ. | ,r' `ヽ、 ´ヾ、 l l ,i" _, _ ゙; ! i___| !. ・ ・,! | t,ノ |ゝ_ x _::' !、、、、、、、、、、! |,/"`''''''''''''''"´';, | | | (,;! !) | | | |゙''::r--、::--;r' |____|_____| |―゙'ー-‐゙ー-゙'―┐ (,,,__(,,,____)
- 611 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 23:14:21 ]
- >>600のせいでスレのレベルが落ちたな
- 612 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 23:16:48 ]
- >>611
もともと低かったろ。
- 613 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 07:46:43 ]
- 普通の頭であれば検索だけで理解できるからな
検索先が信じられずに2ちゃんのレスのほうを信じるのもどうかと思うし
- 614 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 08:14:01 ]
- ここは検索のスレではありません。
検索に関する会話はご遠慮下さい。
- 615 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 09:57:04 ]
- staticをつけると内部的な名前が変わる
- 616 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 13:13:50 ]
- かどうかは知ったこっちゃないわな。
- 617 名前:デフォルトの名無しさん [2009/04/01(水) 16:33:56 ]
- バイナリデータとテキストデータを結合してchar型配列に格納したいです。
例えば char STR[256] = {0}; unsigned long Value_A = 0x01234567; unsigned long Value_B = 0x89ABCDEF; char Str_A[] = "sample1"; char Str_B[] = "SAMPLE2"; というデータがあったとして、配列STRに以下のようにデータを格納するコードを教えて下さい。 < binary > < text > 0x01234567 0x89ABCDEF sample1|SAMPLE2 ちなみに、バイナリデータはテキストにはせず、BigEndianで格納したいです。 あとテキストには'|'文字を入れて区切りたいです。 よろしくお願いします。
- 618 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 17:24:58 ]
- #include <ctype.h>
#include <stdio.h> #define swap(ul) ((ul)<<24)|(((ul)&0xFF00)<<8)|(((ul)&0xFF0000)>>8)|((ul)>>24) void main() { unsigned char STR[256] = {0}; unsigned long Value_A = 0x01234567; unsigned long Value_B = 0x89ABCDEF; char Str_A[] = "sample1"; char Str_B[] = "SAMPLE2"; unsigned long ul; int i; ul = swap(Value_A); memcpy(STR, &ul, 4); ul = swap(Value_B); memcpy(STR + 4, &ul, 4); strcpy(STR + 8, Str_A); strcat(STR + 8, "|"); strcat(STR + 8, Str_B); for (i = 0; i < 8 || STR[i]; i++) { printf("%d:%02X[%c] ", i, STR[i], isprint(STR[i]) ? STR[i] : '.'); } } 0:01[.] 1:23[#] 2:45[E] 3:67[g] 4:89[.] 5:AB[.] 6:CD[.] 7:EF[.] 8:73[s] 9:61[a] 10:6D[m] 11:70[p] 12:6C[l] 13:65[e] 14:31[1] 15:7C[|] 16:53[S] 17:41[A] 18:4D[M] 19:50[P] 20:4C[L] 21:45[E] 22:32[2]
- 619 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 17:39:06 ]
- char * push_STR(char* d,char* e,char* s,int ln){
int i = 0; while(d < e && i < ln){*d++ = *s++; ++i} return d; } char *p = STR, *end = STR + sizeof(STR); if(p=push_STR(p,end,&Value_A,sizeof(Value_A)) >= e) abort(); if(p=push_STR(p,end,&Value_B,sizeof(Value_B)) >= e) abort(); if(p=push_STR(p,end,&Str_A,sizeof(Str_A)) >= e) abort(); if(p=push_STR(p,end,&Str_B,sizeof(Str_B)) >= e) abort();
- 620 名前:デフォルトの名無しさん [2009/04/01(水) 17:50:34 ]
- もしかしたら上の方のコードが途中かもしれませんが
よろしくおねがいします。 C言語の入門ページの動的配列などの部分を読んで mallocやreallocでメモリの再確保などができる事はわかりました。 しかし、結果的にははじめに変数に入力をうけてその結果にあわせて 配列の量を変更する事はできません。 例えば文字列の入力を受け付けるプログラムでたとえば書籍の タイトルを受け取る処理なのでせいぜいこのくらいだろうと見積もって 配列の大きさをとっていたとしてユーザーが予定以上の 非常に長いタイトルの書籍を入力したりしても残りの部分は切り捨てられるように なってしまうと思います。これを回避する方法は無いでしょうか?
- 621 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 17:57:18 ]
- ない、と言ってしまうのは簡単だが
もし上限がなかったらどうなるかを考えてみよう
- 622 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 18:02:15 ]
- 1文字ずつ受け取って、それらをリンクリストでつないでいくというのはどうだろう?
メモリが許す限りどんどん大きくできるぞ。しごいね!
- 623 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 18:02:34 ]
- Stringクラスを使う
- 624 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 18:04:42 ]
- cstringでぐぐったら紐なしエロパンツサイトがヒットした
- 625 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 18:05:29 ]
- キー入力を都度処理してグルグル回せば出来ない事はないけど
パイプ通しての洪水テキストや 例えばカナ漢字変換が驚くほど丈夫で数メガバイトの変換済文字列をイッキに送り込んでくるような状況 には対処しきれんよな
- 626 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 18:15:49 ]
- ありがとう御座います。
前もって入力を受け付けるときに文字数宣言が有る事を書いておきたいと思います。
- 627 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 18:24:43 ]
- そこでstream IOですよ
- 628 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 19:36:41 ]
- 結局メモリ+HDD(外部記憶装置)以上のデータは扱えないので扱えるデータには制限がある
- 629 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 19:39:55 ]
- ネットがあるじゃないか
- 630 名前:デフォルトの名無しさん [2009/04/01(水) 19:51:28 ]
- もうデバッグに一日以上費やしても理由がわからなかったので、ここで質問させてもらいます。
本当に理由が解明できなくてマジで困ってます…。 for (i=0; i < (Num_Points-1); i++) { distance_x = (gsd[i+1].x-cur_xpos) * (gsd[i+1].x-cur_xpos); distance_y = (gsd[i+1].y-cur_ypos) * (gsd[i+1].y-cur_ypos); distance = sqrt(distance_x + distance_y); } for (i=0; i < (Num_Points-1); i++) { a0 = atan2(cur_ypos-gsd[i].y, cur_xpos-gsd[i].x)-atan2(gsd[i+1].y-gsd[i].y, gsd[i+1].x-gsd[i].x); a1 = atan2(gsd[i+1].y-cur_ypos, gsd[i+1].x-cur_xpos)-atan2(gsd[i+1].y-gsd[i].y, gsd[i+1].x-gsd[i].x); } コンパイルエラーは出ないのですが、実行した際に途中で止まってしまいます。 何回か試したところ、上のループか下のループどちらか一方しか書いてない時は動きます。
- 631 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 19:58:34 ]
- 一日以上費やしたってデバッガ使った?
- 632 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 20:15:36 ]
- どっか別のところでスタック破壊してんじゃねーの?
- 633 名前:デフォルトの名無しさん [2009/04/01(水) 20:15:52 ]
- 使いましたが、デバッガではよくわかりませんでした。
どちらのループも単体でしかコードに存在しない時は動くので、 printfで結果表示した場合、ちゃんと計算結果が出ます。 しかし、両方ともコードに書くと、なぜか止まってしまうんです。
- 634 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 20:46:09 ]
- >>633
for文の中でiを表示したらどこまで進むの?
- 635 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 20:53:29 ]
- 本当に>>630の通りに書いてあるならループにする意味がねーよw
- 636 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 21:08:33 ]
- >>634
どちらかのループ単体のみの実行なら、Num_Points-2まで進んでいます。 なので、配列の範囲外から数を呼び出してるということはないみたいです。
- 637 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 21:15:24 ]
- >>635
エイプリル・フールは午前中までだってのにな
- 638 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 22:09:54 ]
- ソースアップすれば調べてもいいよ
- 639 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 22:51:04 ]
- >>635
distance, a0, a1 がクラスのインスタンスで、 = がオーバーロードされてるかもよ。
- 640 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 23:58:38 ]
- 本人かデバッガ使って解らないものを、他人が不定な変数の多い
部分的ソースだけ見せられて判るとは思えない。
- 641 名前:デフォルトの名無しさん [2009/04/02(木) 00:04:08 ]
- >>636
上のループで1からNum_Points-2まで進んで 下のループでも1からNum_Points-2まで進んだってこと? それなら処理終わってるよね? せっかく解決しようと聞いているんだから省略しないできっちり説明してほしいな。
|

|