- 1 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 23:15:45 ]
- エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.70【環境依存OK】 pc12.2ch.net/test/read.cgi/tech/1258873470/ 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm codepad.org/ (コンパイルもできるし出力結果も得られるのでお勧め) ◆ソースのインデントについて 半角空白やTABでのインデントはスレに貼ると無くなります。 そのため、アップローダーに上げるのも手ですが直接貼る場合は、 全角空白か に置換すると見栄えだけはよくなります。
- 388 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 22:34:27 ]
- int &a(void) { static int a; return a; }
プロはどうしてもグローバル変数が欲しい時はこう書く 真似していいぞ
- 389 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 22:37:19 ]
- プロ・・・
クラスのメンバみたいにアクセスさせる形にすればいいだけなので クラスを扱う言語経験者なら思いつくと思うけど
- 390 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 23:01:57 ]
- オススメの命名規則(C++)を教えてください
ハンガリアン記法は過去のものみたいなので
- 391 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 23:02:31 ]
- ドトネト式
- 392 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 23:08:16 ]
- perlのuse constantはそれと全く同等のことやってるな
- 393 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 23:19:49 ]
- FindFirstFile(path, &fd);
でD:\下のファイルの情報取得で if(fd.dwFileAttributes!=0x00000002) { printf("%s\n", fd.〜) } としたんですけど D:\のSystem Volume Infomatonというフォルダが 条件から外れてくれません どうすれば隠しフォルダを避けることができますか?
- 394 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 23:22:21 ]
- >>393
ビットフラグじゃね?
- 395 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 23:23:21 ]
- >>390
www.possibility.com/Cpp/CppCodingStandard.html#descriptive
- 396 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 00:43:24 ]
- /* 個人データ */
typedef struct{ char name[100]; double height; double weight; }member; int main(void) { member *ma; int a=5; if ((ma = calloc(a, sizeof(member))) == NULL) { puts("calloc error"); exit(1); } カロックのところでエラーになるんだけどなんでかな?
- 397 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 00:50:09 ]
- >>396
ヒープが足りんのだろう。 戻り値の仕様ぐらい読め。
- 398 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 00:51:45 ]
- >>396
ライブラリを使うためのヘッダのインクルードが無い。 中括弧がいっこ足りない。
- 399 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 00:51:57 ]
- >>396
出ませんが ただ '}' が一つ抜けています
- 400 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 00:52:43 ]
- ああ #include <stdlib.h> が抜けてるとかいうオチ?
- 401 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 01:13:45 ]
- 返信はやっ!
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10523.c 全部はりつけてきました しゅくだい データは 2 TARO 170 64 ICHIRO 180 54 とかで入ってます 1行目に人数
- 402 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 01:21:38 ]
- 動かすの面倒なんでエラーメッセージ張ってくれ
callocってヒープから取るんだろ doublex2 charx100(正確には101)とアライメント入れてもそれほど大きくないしなあ
- 403 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 01:26:35 ]
- >>401
fscanf() のエラーもチェックしろ。 calloc() のエラーとは関係ないだろうが、 "%lf" に渡す引数は double じゃなくて double* な。 やっぱりヘッダのインクルード足りないし。
- 404 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 01:38:26 ]
- >>403
しゅくだいなんだけど,ヘッダのとこは変更できないのよ・・・ ここに解答を書くってところだけ ヘッダのインクルードなしでどうすればできるかなぁ
- 405 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 01:40:59 ]
- >>404
動かすためにとりあえずヘッダ入れて 確認ができたらはずせばいい
- 406 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 01:48:47 ]
- コピー多いな
文字列へのポインタ持ってポインタソートした方がすっきりする
- 407 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 02:05:31 ]
- >>405
ヘッダ入れたらコンパイルできたけど,実行するとフリーズする・・・
- 408 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 02:44:46 ]
- >>403
fscanfのとこの&でしたorz ありがと(^ω^)
- 409 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 06:42:23 ]
- www.not-enough.org/abe/manual/ray-project/cc.html
にあるレイトレーシングのソースコードをコンパイルしてみたのですがエラーが出てしまいます codepad.org/fErUOLbG どこをどうすればよいのでしょうか? お助けください。
- 410 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 13:12:43 ]
- >>409
codepad.org/m4SeoRfu 正しいかどうか知らんよ しかし基本的なC++文法エラーを犯しているなこの作者は
- 411 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 13:16:11 ]
- g++の拡張文法を使っているのかもしれない
ポータビリティを考えるなら標準C++に従って書いた方がいいね
- 412 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 13:50:32 ]
- >>410
コンパイルしてちゃんとppmファイルを得ることが出来ました ありがとうございました!
- 413 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 17:05:09 ]
- 超初歩的な質問で恐縮なんですが
CとC++ではCを先に学んだ方がいいんですか? それとおすすめのサイトとか書籍があったら教えてもらえませんか?
- 414 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 17:08:20 ]
- >>413
歴史をなぞるなら C から。 何か早く作りたいものがあるなら C++ からのほうが早いかもしれない。 ただし C に由来する落とし穴も多く残っているので、危ないかもしれない。 どっちからと考えずに、必要なときに必要な情報を確認しながら学ぶのが おすすめ。 お勧めサイト。 www.google.co.jp/
- 415 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 17:11:04 ]
- >>413
プログラミングしたことあるの?
- 416 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 17:11:48 ]
- C++入門といってもクラスやSTLは後半!とか続刊!とかの入門書なら
内容はCとかわらないよ。
- 417 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 17:15:19 ]
- あと面倒なのが最近はunicodeベースでコンパイルしちゃう物があるのに
古い標準関数はマルチバイトベースだったりととにかく古いだけあってめんどくさい>C/C++
- 418 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 17:15:25 ]
- >>414
特に急ぎ足では無く、ゆっくり学ぼうと思ってるんでCからいこうと思います。 ググるのは大切ですね、しかし紹介されてるサイトや書籍があまりにも多いので戸惑います。 >>415 すごい勢いでド素人です。
- 419 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 17:17:25 ]
- >>417
CとC++はわりと古いから、やり難い事があるという事だけわかりました!・
- 420 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 17:20:05 ]
- >>413
お勧め書籍。 www.stroustrup.com/Programming/
- 421 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 17:20:11 ]
- C++を学びたいならC++から
Cも学びたいからCから C++をやるとCなんて馬鹿らしくてやってられないから
- 422 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 17:25:03 ]
- >>420
おぅふ・・・なんかすげぇのきた。これは理解できそうにない >>421 ++というだけあって発展形なんですね。
- 423 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 17:37:34 ]
- >>422
> ++というだけあって発展形なんですね。 今もC++はC言語のコードを(割と互換性があるので)使える。 でも厳密な互換性じゃないので使えないこともある。
- 424 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 17:38:41 ]
- >>418
windowsしか使わないなら、C#あたりからやった方がいいよ C/C++はなかなかソフトが完成しないから嫌になるし、初心者には難しい
- 425 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 17:43:20 ]
- >>424
> windowsしか使わないなら、C#あたりからやった方がいいよ いや、俺の意見としては C#だけは止めた方が良い。 > C/C++はなかなかソフトが完成しないから嫌になるし、初心者には難しい そんならP言語(Python, Pascal, PHP)をやれば良いと思う。 Rubyはよーしらんが。
- 426 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 17:43:29 ]
- >>423
なるほど!参考になります。 >>424 #ですか、比較的敷居が低いんでしょうか。 まずそれから弄るのもいいかもしれませんね、ありがとうございます。
- 427 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 17:45:23 ]
- qmakeとcmakeって何が違うわけ
makeファイルを作っているだけなのか
- 428 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 17:46:22 ]
- まぁC#使っても、あれは出来ないだの、これはC経由しろだの、あるけどな。
- 429 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 17:47:41 ]
- C#使うくらいならJavaでいいじゃん
- 430 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 17:50:08 ]
- C, C++をやってから、GCのありがたみを感じるべき
- 431 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 17:51:47 ]
- >>428
API使えるしまあいろいろ方法はあるよ C#->C++に戻ってみるとC#で当たり前に使ってる部品がなくて自作することになったり 文字コード関連ではまるよりよっぽどいい
- 432 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 17:54:50 ]
- 昔の言語関連って無意味に省略しまくってるから直感で意味が通じないんだよな
C->C#とC++すっとばして覚えたところでC++にいったけどさ c_strとかなんだよそれ
- 433 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 17:57:21 ]
- 好きなのを選ぶが良い
ttp://vintage-digital.com/hefner/misc/lisp-programmers.jpg
- 434 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 17:58:17 ]
- 俺ロキュータスいくわ
- 435 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 17:58:37 ]
- >>433
怪しすぎるww 特にC++は何だこりゃw
- 436 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 18:00:01 ]
- >>432
仕方ねーんだよ 昔のリンカは識別子を最大6文字しか認識しない時代があって Cはその時に作られた物だから C++はとっくにその制限は撤廃されているがなぜかCの癖を無意味に 引きずって省略しまくっている タイプ量を減らすためか?
- 437 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 18:01:01 ]
- >>433
ASP.NETにいかざるをえない というか皆さん千差万別ですね、そりゃネットのおすすめの書籍も色々あるわけだ・・・ ここにテンプレがないのもそのせいか!
- 438 名前:デフォルトの名無しさん [2010/02/13(土) 18:03:32 ]
- >>436
まあギークが「ぼくのかんがえたさいきょうのげんごかくちょう」がC++だからタイプ量減らすためじゃね? std::stringのstringからcharに変換するやつね stringだからC++からの物だよね
- 439 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 18:04:57 ]
- Haskellやべえ
- 440 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 18:05:06 ]
- C++やるならQt Creator + VCのコンパイラがいいよ
- 441 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 18:17:54 ]
- >>426
いや、俺の意見としては C#だけは止めた方が良い。
- 442 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 18:18:13 ]
- >>440
メモっときます、ありがとう。 皆ありがとう。感謝します。 とりあえず色々触ってみた上で何か一つに絞って、学んでいこうと思う!
- 443 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 20:03:26 ]
- >>441
いやいや、C#は便利だぞ。 C++よりも綺麗だし。
- 444 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 20:46:45 ]
- >>443
そんなこと言ってまた不幸になる人を増やすのか! > C++よりも綺麗だし。 そんな言語いっぱいあるじゃないかw
- 445 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 21:45:41 ]
- >>444
C#で不幸になるやつは、もともと不幸なやつだけだ。
- 446 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 23:14:59 ]
- C#は.NETで出来ないことしようとすると、途端に不幸になる気がする。
MFCだと、のっけから不幸にだが・・・
- 447 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 23:27:06 ]
- ぶっちゃけCから始めるのがいいよ
C99ならC++の便利なところは大体使えるし
- 448 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 00:06:35 ]
- Cを覚えてenumや構造体や関数で取り敢えずなんとか実用になるライブラリとか書く。
しかしC++でnamespaceやクラスを知ると、それまで書いたのを全部書き直したくなるんだよ。 で、書き直した頃にtemplateに手を出して、また書き直したくなるわけ。 その後もSTLやらEffectiveC++やらBoostやらにかぶれるたびに、今まで書いたものがゴミに見える。 さらにC++0.xなんてので、今また過去の糞化現象が起こるんです。
- 449 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 00:11:09 ]
- それを楽しめるマゾ向け
- 450 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 00:14:47 ]
- 最近はもう逆に余計なものみんな取り払って++も付かない99でもないCだけでいいんじゃないかと思えてきた
- 451 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 00:15:35 ]
- 99より前にもいくつかあるんだが
- 452 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 00:18:56 ]
- shop99 と shop100 だと500円の買い物で
5円とか半端な数字出る出ないの違いが有るよね
- 453 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 05:48:56 ]
- 入門書とかで「解説のためにわざと非効率なコード書いてます」とか出ると混乱するよな。
- 454 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 10:02:18 ]
- >>447
C99に完全準拠しているコンパイラはIntel C++などごく一部だけだぞ g++も部分準拠だし移植性がないしだいたいg++はC++0xへの改訂作業で 手一杯で今は時代遅れのC99に携わっている暇はないだろう
- 455 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 10:07:15 ]
- C++0xへの改訂作業なんて、
考えるだけで頭痛くなってくるなww
- 456 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 10:11:50 ]
- C99への準拠を強化するよかまだ0xに力入れた方がマシということ
- 457 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 10:11:59 ]
- でもnullptrとdecltype、auto、右辺値参照、コンテナの初期化子
など痒い所に手が届くようになるのはありがたいよな
- 458 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 11:36:08 ]
- 今までが届かなさすぎだったんだよ!
- 459 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 12:53:10 ]
- /usr/include/を見ていたら、*.hと*.cppがありました
*.cppには#include "*.h"としか書いてありません 一体何がしたいんですか?
- 460 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 12:57:27 ]
- >>459 知るか。書いた奴に聞けよ。
- 461 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 15:00:38 ]
- イテレータから元の変数にアクセスできますか。
vector<int>::iterator p;だと、配列要素の値と位置がわかるだけ気がしますが pの前方に要素追加したり削除したりとか。
- 462 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 15:04:23 ]
- >>461
「元の変数」って何? vector インスタンスのことなら、無理。
- 463 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 15:06:31 ]
- サンクス
- 464 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 15:24:40 ]
- スタティックリンクライブラリ作成についての質問なんですが
1.C言語でも扱えるようにAPIの引数や戻り値部分だけあわせておけば 内部でC++で書いていようが問題はない? 2.スタティックリンクライブラリをコンパイルする際にスタティックリンクライブラリが 利用する外部の機能を取り込まないようにするにはどうすればいいですか? (VC++2008
- 465 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 15:33:30 ]
- 親クラスを継承して子クラスを作るときには、
子クラスのヘッダファイルにもオーバーライドするメソッドを、定義しないとダメなんですか? 一応自分でも試してみたんですが、コンパイラ様に怒られたので
- 466 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 15:35:30 ]
- >>465
そんなことはない。 エラーメッセージは?できればソースも出して。
- 467 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 15:36:57 ]
- 純粋仮想関数を持つ親クラスを継承した子クラスをインスタンスとして使おうとしたとか?
- 468 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 15:38:57 ]
- >>465
あとメソッドっていう用語は存在しないので、 今後はメンバ関数member functionと 呼ぶようにしなさいね。
- 469 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 15:42:06 ]
- >>464
1は、extern "C"もつければおk 2は、「取り込まない」の意味が微妙。 作ってるライブラリをAとして、 AはBというライブラリを使用しているとき、 AにBを含ませたくないという意味? 特殊なことしなければ「取り込まない」状態だと思う。 Aのプロジェクトの中にBのlibファイルを追加すれば 「取り込む」状態になるけど。
- 470 名前:465 mailto:sage [2010/02/14(日) 15:48:08 ]
- ひとまず、ヘッダファイルだけ晒します
class Super{ public: Super(); virtual void print(); ~Super(); }; class Sub : public Super{ public: Sub(); void print(); ~Sub(); }; エラー ${HOME}/Test/sub.cpp:8: error: no ‘void Sub::print()’ member function declared in class ‘Sub’
- 471 名前:デフォルトの名無しさん [2010/02/14(日) 15:57:10 ]
- Visal C++ 2008 ExpレッsEditionでWindowsXP向けの開発です。
ウィンドウごとに音量を調整、若しくは開いているフラッシュオブジェクトの音量を調整する関数 または手法は無いでしょうか?
- 472 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 16:16:59 ]
- イテレータは挿入しても保たれるけど、end()とbegin()はそうでないのね。
不便。何でこんな事にしたの。
- 473 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 16:24:09 ]
- >>472
??保たれない場合もあるだろ。何を言いたいのかよく分からんぞ。
- 474 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 16:28:15 ]
- そうなのか。気をつける。
- 475 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 16:41:04 ]
- 何が保たれるんだ?
- 476 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 16:42:04 ]
- *.cppに直接宣言している変数って何なんですか?
- 477 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 16:44:46 ]
- どんなコード?
- 478 名前:476 mailto:sage [2010/02/14(日) 16:48:30 ]
- >>477
こんなコードです DownloadManager *BrowserApplication::s_downloadManager = 0; HistoryManager *BrowserApplication::s_historyManager = 0; NetworkAccessManager *BrowserApplication::s_networkAccessManager = 0;
- 479 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 16:53:36 ]
- googleのコード検索で見たけど
グローバル変数だね
- 480 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 16:57:51 ]
- prefix の s_ はstatic変数のsを表しているのかもしれない
- 481 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 16:58:43 ]
- >>478
staticのメンバ変数は、どっかに実体を宣言しないといけない。
- 482 名前:479 mailto:sage [2010/02/14(日) 17:01:50 ]
- そうだったw
479は間違い
- 483 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 17:04:26 ]
- boost::tuples or tuple
の使い方が分かる日本語のサイトを教えてください。 名前空間が boost::tuplesなのかboost::tupleなのか、 色々混ざっているようなので ググっても謎です。 現行仕様のboost.タプルのの使い方が分かる日本語のサイトを教えてください。 よろしくお願い申し上げます。
- 484 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 17:05:53 ]
- アキラさんのboost本買うといいよ
- 485 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 17:18:10 ]
- テンプレート本?
- 486 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 17:41:35 ]
- >>483
boost.cppll.jp/HEAD/libs/tuple/doc/tuple_users_guide.html
- 487 名前:483 mailto:sage [2010/02/14(日) 17:49:05 ]
- >>486
お返事ありがとうございます。 拝読致します。
- 488 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 18:41:11 ]
- >>481
ありがとう
|

|