- 1 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 11:02:46 ]
- スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。
スレを勃てるまでもないC/C++の質問はここで pc11.2ch.net/test/read.cgi/tech/1167476845/
- 403 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 12:04:58 ]
- 自分でも、埋め合わせに 0; を思いついた時にこんな馬鹿な話が・・・って思いましたw
でもそんないじわるされるとは予想外でしたwwっうぇw と・・・こんな風にかく人少ないと思うので 誰かに指摘されるまでは0;やNULL;って書きます いろいろありがとうございました
- 404 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 14:49:10 ]
- だから、阿呆だって指摘されているだろう。これ以上何を指摘されたいんだ?
- 405 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 15:59:22 ]
- ほうっておこうや
時に暖かく見守る事もしつよう(←なぜかry)な事なんだ
- 406 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 19:45:15 ]
- 389みたいなやつを見ると、コーディング規約で3項演算子の使用を禁止したくなる気持ちが、よく分かる。
- 407 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 20:17:06 ]
- ふっふっふぅ、漏れの策定したコーディングガイドでは三項演算子の「代入用途以外の使用」を禁止している。
- 408 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 20:22:17 ]
- それよりも条件演算子の重ねがけを禁止すべき
こんなコードを書かれたらたまらん x = p1 ? p2a ? at : af : p2b ? bt : bf;
- 409 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 21:20:16 ]
- きちんとインデントで整理できてれば見やすくないか?
x = p1 ? p2a ? at : af : p2b ? bt : bf;
- 410 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 21:46:34 ]
- でも条件とそれに対応する処理を列挙していくような書き方って
関数型プログラミング言語っぽくて面白い気がする
- 411 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 22:22:31 ]
- >A ? TRUEの処理 : FALSEの処理;
こう書いている時点で勘違いしているとおもう。 式1 ? 式2 : 式3 式1を評価して0以外なら式2の評価した値が、0なら式3を評価した値が 全体の評価結果になる。 >何もしないっていう処理は適当に当てはめたんですが > 0; で良いんでしょうか? こういう発想が出る時点で三項演算子を使うべきではない。
- 412 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 22:52:05 ]
- >>410
if文でいいじゃないか。
- 413 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 23:27:28 ]
- >>409
そこまでするくらいならif文でいい希ガス。
- 414 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 09:59:27 ]
- 常にif文でいいじゃないかと言われる運命だなw
マクロで使用して、何をするかがマクロ名で明確にわかるときに使うかなあ。
- 415 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 19:56:25 ]
- クラスがなかなか覚えられません(´・ω・`)
「はじめてのC++」でもかなりのページしめてるけど、やっぱりそれぐらい大切ってこと?
- 416 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 20:22:14 ]
- クラス使わないなら C でも使っとけ、って言われるくらい。
- 417 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 21:09:18 ]
- >>415
「覚える」という言葉を使う時点で、間違っているのですよ。 「覚える」というのは、 セックスで例えるなら、ハウツー本を読み漁るだけの童貞君。 プログラミング言語は使いこなしてナンボ。 セックスで例えるなら、百人切りで鍛え上げたテクニック。
- 418 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 21:26:31 ]
- 百人と浅い付き合いをするくらいなら、一人と深く付き合った方がより使いこなせると思うのだが。
- 419 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 21:40:31 ]
- C++でSTLを使うのは非常に上手だが、STLを使うことしかできない
そういう人みたいな感じになるぞ。
- 420 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 22:14:33 ]
- 一人と深く付き合った事がある加藤鷹が理想
他の女に乗り換える時に楽
- 421 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 22:18:34 ]
- ちんこが持たねぇっす
- 422 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 22:43:11 ]
- C++でSTLとboostを非常に上手く使える人間だったら十分問題ないと思うけど
- 423 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 22:47:03 ]
- STLを使う/使える案件しかやらないのなら、いいんだよ。
- 424 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 00:24:37 ]
- ありがとう。やっぱりクラスは大切なのか
これからは積極的に使って身につけていくことにします(`・ω・´)
- 425 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 11:58:49 ]
- つーかいまどきC++は生産性が悪すぎ。
- 426 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 12:07:56 ]
- 言語間での生産性の差ってそんなに大きくないだろう
- 427 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 12:23:40 ]
- 全ての状況下に於いて、生産性だけが重要とは限らない
- 428 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 12:42:54 ]
- C++でtemplate meta programmingやマクロを駆使して書いたプログラムが強いところって何でしょう?
「皆が読めなくなるからやめろ、STLやtemplateも出来れば使うな、boostなんて以ての外」 って言うところも多いと聞きますが…
- 429 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 13:13:27 ]
- STL程度で「皆が読めなくなる」なんて、三流以下のソフトハウスでもなければ言われないと思いますが。
- 430 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 13:31:26 ]
- 三流以下のソフトハウスが多いことの証左なんだろうさ。
ところで、>>428 の >〜が強いところって何でしょう? が何を訊いてるんだかよく判らない。 「〜に強い会社ないし集団はどこでしょう?」 の意だろうか。
- 431 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 15:12:02 ]
- STLの実装にバグがあってトラぶった時、STLなんて使うからだと言う人がいた。
たしかに、使ったSTLの実装は古く、メンテナンスされていないものだった。 だがしかし、その人が書いたSTL相当の独自のクラスにもバグがあった。 ちなみに一流の現場では、STLは使わず、もっと良いテンプレートライブラリを使うと思う。 STLはC++標準に入ってはいるものの、最善策ではないから。
- 432 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 16:37:08 ]
- C言語で、配列の個数を外部から入力することはできますか?
例えばa[n]という配列に対しnをscanfでキーボードから読みけませて、要素がn個の配列を作るといった感じです。
- 433 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 16:49:32 ]
- C99じゃなけりゃ、m(c)allocやalloca使うしかないかな
- 434 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 18:07:51 ]
- >>428
利点を挙げるとしたら、高度の抽象化に役立つということ。 問題は、それを必要とされない、あるいは必要性が理解されないということ。
- 435 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 21:28:52 ]
- >>432
おれがこの前教えてもらった方法 int *a,n; scanf("%d",&n); a=new int [n];//a[0]〜[n]まで確保 Cだと無理なのかな
- 436 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 21:44:34 ]
- STLやtemplateもboostもstd::もしらないけどc++動かせるよ
どんな利点があるのか教えろ
- 437 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 21:46:11 ]
- つか、進化した言語の方が優れているなら、アセンブラもC言語も絶滅しているはずだろう
しかししてない だから使える機能を使えばいい
- 438 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 00:59:45 ]
- >>436
delete[]のような後処理が要らないしrealloc相当のことができる std::vectorが取っ掛かりには便利。 Boostは正規表現が実用的だろう。
- 439 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 05:31:00 ]
- >>438
そんなのはSTLの専売特許ではないしぃ。
- 440 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 15:41:07 ]
- 標準もしくは準標準ってところが大事なのかと
- 441 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 19:26:00 ]
- STLがどんなにクソッタレでも、C++標準に入っている以上、しかたない。
あの万能ナイフっぷりには呆れるぜ。
- 442 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 20:33:49 ]
- こんな風にC++の標準関数まとめてくれてるサイトない?
ttp://cham.ne.jp/piro/p_stdfunc.html
- 443 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 22:26:36 ]
- ある
- 444 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 22:30:38 ]
- 本スレテンプレのコレとか
ttp://www.cppreference.com/index.html
- 445 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 22:48:49 ]
- >>439
436が使ったことないって言うから、 早速使えそうなものを薦めてみた。 うんちく語っても仕方がないと思ったし。
- 446 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 23:05:10 ]
- じゃあSTLはまぁそこそこ使える、かつ稲葉氏のページにあるものは一通り知っている
っていう人に対してお勧めのboost library(sandbox含む)を教えてください
- 447 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 09:48:04 ]
- STLは機能が多すぎて、つまり、注意事項が多すぎて、怖い。
オブジェクトを手っ取り早く永続化したくて、 一定のアドレスにオブジェクトを配置する、 カスタムなヒープを使う、カスタムなアロケータを 使うように指示して、それがちゃんと使われるのか、とか。
- 448 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 10:07:28 ]
- >>447
そんだけなら単にSTLコンテナ宣言してる場所をgrepすりゃいいだけじゃね つか、STLに限った話じゃ全然ねー STL使わんでも普通にmalloc()だのnewだの使われたくないんだろ? アホじゃないの?
- 449 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 11:23:31 ]
- >>447
アロケータは使い方を知らないとハマるわな。
- 450 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 11:30:39 ]
- 実装によってはアロケータをガン無視しちゃってるのがなかったっけ
- 451 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 13:23:33 ]
- setやmapをそのままシリアライズしたいって思うことあるよなぁ。
iteratorで舐めてファイルに書きだしたものを、 ファイルから読んで1つずつinsertするのは、 なーんか無駄っぽいんだ。
- 452 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 16:23:59 ]
- ライブラリにしとけばええやん。
- 453 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 20:32:59 ]
- >>452
そういうことではなくて、B木の構築コストがもったいない。
- 454 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 11:19:09 ]
- ほんと初歩的な事なんですが・・・
C言語には行とかいうのは関係なくて全部一行で書けるって聞いたんですが #include<stdio.h> main()〜 っていうのはどうやっても出来ないんでしょうか?
- 455 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 11:40:20 ]
- #include はC言語じゃなくてプリプロセッサ用
- 456 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 13:57:29 ]
- >>455
プリプロセッサっていうのは、コンパイルの時の処理ですよね 一行ずつ読み込む・・・から、 やっぱ、無理って事でしょうか?
- 457 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 14:08:36 ]
- ヘッダファイルの中から使う分だけ直接持ってくりゃいいべ
- 458 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 17:44:03 ]
- >>457
その手が、、、あった。。。ありがとうございました
- 459 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 22:25:40 ]
- 標準ライブラリのヘッダの中身って結構処理系独自拡張のオンパレードだから、
あまりおすすめできないけどな。
- 460 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 22:26:50 ]
- 7行プログラムとかlisp500とか書きたいんだろうか
- 461 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 00:07:56 ]
- プロトタイプと構造体とtypedefくらいだべ
- 462 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 06:21:10 ]
- 大きな配列を確保する際、newやmallocだと確保できるのに、
プログラム中に最初から double a[100000] のように書くと実行時に確保できない旨のエラーがデルのは何故ですか?
- 463 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 06:41:41 ]
- スタック領域
- 464 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 06:51:11 ]
- >>462
staticでもつければ?
- 465 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 13:20:28 ]
- >>462
スタック領域が足りなくなるから。 環境によってはスタック領域を大きくできるぞ。
- 466 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 11:12:57 ]
- スタックとヒープの違いを把握しましょう
- 467 名前:デフォルトの名無しさん [2007/07/09(月) 13:51:14 ]
- ご教授お願いします。
コード kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4566.txt 不正なbreakですとなってしまいます。なぜでしょうか?
- 468 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 13:53:55 ]
- >>467
なんちゅうスタック破壊
- 469 名前:467 ◆4usmhdjocU [2007/07/09(月) 14:01:12 ]
- すみません詳しく教えていただけると助かるのですが・・・
- 470 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 14:01:25 ]
- 誤>printf("New string --->%s\n,tbl");
正>printf("New string --->%s\n",tbl);
- 471 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 14:01:59 ]
- >>467
このスレで何回も言ってることだが・・・。 ・エラーメッセージの類いは、一字一句そのままコピペすること。 往々にして勝手に要約して端折った部分に大切な情報がある。 それが大切だと分かってないから、問題の原因が理解できない。 ・デバッガでステップ実行すること。 がんばれ。
- 472 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 14:03:23 ]
- >>470
あーあ、答え書いちゃった。 プロセスを教えずにリザルトだけ教えていたら、 いつまでたっても467はヒヨコのままだぞ。
- 473 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 14:04:41 ]
- >>467
・forの書き方に問題があるから、不正なbreakになる。 ・>468も指摘しているが、printf()の使い方にも間違いがある。
- 474 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 14:04:41 ]
- >>469
getsは危険です絶対に使ってはなりません。
- 475 名前:467 ◆4usmhdjocU [2007/07/09(月) 14:07:17 ]
- C:\Documents and Settings\cp1\デスクトップ\testplog\test.cpp(39) : error C2043: 不正な 'break' です。
cl.exe の実行エラー: error C2043: 不正な 'break' です。 >>470 ありがとうございます >>471,472 わざわざ自分のことを考えていただきありがとうございます。 しかし、エラーがでてなおりません。 次はヒントでいいので教えていただけませんか?
- 476 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 14:07:40 ]
- 標準関数でtolower()ってのがあるから、使う時はtolower()使ってね☆
- 477 名前:467 ◆4usmhdjocU [2007/07/09(月) 14:08:19 ]
- とてつもない初歩的なミスでした・・・
聞いていたじぶんがはずかしくなりました>< お手数かけました
- 478 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 14:08:45 ]
- >>475
セミコロン getsとかtolowerとか、練習で問題文写してるんだろうから あんまり言うとわからなくなるぞ
- 479 名前:467 ◆4usmhdjocU mailto:sage [2007/07/09(月) 14:08:52 ]
- >>476
勉強します^^
- 480 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 14:09:27 ]
- for(i = 0;i < max;i++);
- 481 名前:467 ◆4usmhdjocU mailto:sage [2007/07/09(月) 14:10:14 ]
- >>478,480
ありがとうございました
- 482 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 14:26:19 ]
- そしてthruされる>473、>474……
- 483 名前:デフォルトの名無しさん [2007/07/09(月) 14:52:12 ]
- LINK : fatal error LNK1104: ファイル "win32.lib" を開けません。
link.exe の実行エラー これってどうやれば直りますか
- 484 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 14:52:58 ]
- そもそも、
固定の文字列を出力するのにprintfを使う getsを使う などという、 見習ってはいけない「お手本」を載せている、 クソッタレ参考書がいけないと思うんだよね。 いったい何十年前の本なんだよ、って感じ。
- 485 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 14:54:44 ]
- >>483
1. ライブラリ名が正しいか確認する 2. リンカのマニュアルを確認する
- 486 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 15:18:44 ]
- >>484
固定の文字列を出力するのにprintf()を使う以外の見習うべきお手本は何?
- 487 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 15:27:00 ]
- puts()
- 488 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 15:37:30 ]
- >>487
puts()に替えたら改行しちゃいました。どうしたらいいでしょう。
- 489 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 15:42:43 ]
- fputs()
- 490 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 15:49:06 ]
- どうせコンパイラが最適化でputs()に置き換えたりするんだからprintf()でいいじゃん。
- 491 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 15:56:06 ]
- そんなコンパイラはgccぐらいしか知らんが
- 492 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 16:10:55 ]
- 打つ量の削減とかそういう理由で使い分けてる
- 493 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 16:19:48 ]
- わかっていない人のために説明すると・・・
printfの第一引数は、あくまでも書式を指定するための文字列である。 だから、 printf("100%元気") ; なんてのは大間違いなわけ。 あえてprintfで任意の文字列を出力したいのであれば、 printf("%s", "100%元気") ; とすべき。 そんな間抜けな間違いはしないよ、というかもしれないが、うっかりミスは恐ろしいし、 void PrintMessage(char* szMessage) { printf(szMessage) ; } なんてことをやったりしたら、収拾がつかなくなる。
- 494 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 17:06:51 ]
- まあ
printf("%s\n", s); なら puts(s); 一択だわな。タイプ量が少なく効率も良い。 printf("%s", s); を fputs(s, stdout); にするかどうかは気分次第だな。 改行を打ち出す時は puts(""); が短いが、俺は putchar('\n'); を使うことがおおいな。
- 495 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 17:11:41 ]
- inline void NEW_LINE() {
putchar('\n'); } ::NEW_LINEみたいにしたり(w
- 496 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 17:13:03 ]
- >>495
賢いのう、ワレ!
- 497 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 18:44:07 ]
- >>484
> いったい何十年前の本なんだよ、って感じ。 昔のBASICなどのPRINTと同じ感覚の老人が書いた本だろ。
- 498 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 18:46:41 ]
- printf(name) ;
printf("\n") ; printf("ほげほげを入力してください。\n") ; printf("入力できる数値の範囲は、fooからbarです。\n") ; こんなの見たら卒倒するよ。
- 499 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 19:20:09 ]
- JavaやってからC++に戻ってくると>>498みたいに書きたくなる。
- 500 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 19:30:03 ]
- getsはともかく、printfは別にいいだろ
char配列そのままprintfに渡すのはまずいけど、 文字列リテラルなんかコンパイラによってはputsに置き換えたりする事もある
- 501 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 20:20:28 ]
- ループ成立w
- 502 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 20:32:46 ]
- 別にprintfでもputs/fputsでも、そんなん好みの問題やん。
- 503 名前:デフォルトの名無しさん [2007/07/09(月) 23:25:28 ]
- UDPの通信メッセージの最大長っていくつですか?(socket、bind、sendtoを使います)
SOCK_DGRAMで作成した場合は、固定長最大メッセージをサポート、 ってなってるから、約64KBまで送信できると思うのですが、イーサネットの フレーム長が1500byteまでとか言う風に書いてあって、よく分からないのです。 オフィス用の一般的なPC(WinXP SP2、10BASE-T)の環境でテストプログラムを 作ったところ、一応60KBちょいまで送受信できたので64KBまでOKなのかな? あと、さらに質問で、64KBまで送受信できるけどXXbyteを超えると信頼性が 著しく下がるとかありますか? また、上のほうでも書きましたが、イーサネットで1500byteってのはアプリケーションでは 意識してないけれど、ネットワーク層(?)とかデータリンク層(?)とかのレイヤが 勝手にセグメント化してくれてるのでしょうか? 長々として申し訳ないのですが、どなたかお助けを。
|

|