1 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 19:44:28.87 ] エスケープシーケンスやWin32APIなどの環境依存なものでもOK。 ただしその場合、質問者は必ず環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.77【環境依存OK】 toro.2ch.net/test/read.cgi/tech/1323692486/ ◆ソースのインデントについて 半角空白やTABでのインデントはスレに貼ると無くなります。 そのため、アップローダーに上げるのも手ですが直接貼る場合は、 全角空白か に置換すると見栄えだけはよくなります。 【アップローダー】(質問が長い時はココ使うと便利) codepad.org/ (コンパイルもできるし出力結果も得られる[]privateをチェック) ideone.com/ (時間帯によってはcodepadが重い事があるのでここも利用)
596 名前:デフォルトの名無しさん mailto:sage [2012/06/07(木) 01:45:02.40 ] >>595 >>592 はC++だよ
597 名前:デフォルトの名無しさん mailto:sage [2012/06/07(木) 01:48:28.56 ] >>596 そうなんですけど Cでも int**& って書き方自体できたので メソッド中で a[1][1] って書き方でアクセスできれば楽かなって試してみたんですけどダメでした Cで2次元配列扱うのって結構大変なんですね…
598 名前:デフォルトの名無しさん mailto:sage [2012/06/07(木) 01:52:46.91 ] >Cでも int**& って書き方自体できたので やめてください
599 名前:デフォルトの名無しさん mailto:sage [2012/06/07(木) 01:56:23.42 ] >>597 コンパイラが a[1][1] を *(a+1 * n + 1) のような計算に変換してくれているので nの部分をコンパイラが認識出来ないとどうしようもない mainの中で書けるのは int a[2][2] という定義が見えているため ↓のように認識させれば a[1][1] のように書けるけど1次元分以外は固定になってしまう ideone.com/vgeLc
600 名前:デフォルトの名無しさん mailto:sage [2012/06/07(木) 02:09:39.53 ] >>599 なるほどです #define ならできるのはわかるんですけど 配列サイズをちっちゃくしながら再帰的にこのメソッドをよびたいので 変数で可変じゃないと困るんですよね… ちょっとソースが醜くなるけど 一応やりたいことは >>594 でできそうなのでこれでかいてみます 本当にみなさんありがとうございました
601 名前:デフォルトの名無しさん mailto:age [2012/06/07(木) 06:55:51.82 ] C++ class Hoge{ private: int hogehoge; }; このclassをvectorに4つ格納したいのですがどう記述すればいいのでしょうか 型の宣言がわかりません。 vector<Hoge> array(4) これじゃだめなんですか?
602 名前:デフォルトの名無しさん mailto:sage [2012/06/07(木) 08:21:09.34 ] #include <vector> class Hoge{ private: int hogehoge; }; std::vector<Hoge> array(4);
603 名前:デフォルトの名無しさん mailto:sage [2012/06/07(木) 20:31:48.34 ] .NETで開発する場合C++/CLIは必須ですか?
604 名前:デフォルトの名無しさん mailto:sage [2012/06/07(木) 20:45:19.07 ] いいえ
605 名前:デフォルトの名無しさん mailto:sage [2012/06/07(木) 21:26:18.99 ] >>604 だとするとCLIはいつ使うのですか?
606 名前:デフォルトの名無しさん mailto:sage [2012/06/07(木) 21:32:22.18 ] >>605 d.hatena.ne.jp/itaro3/20110727/1311716477 これ見て考えろや でもここまでするなら普通にC/C++使えと思う 既存の.NETのリソースを活用したい時だけか
607 名前:デフォルトの名無しさん mailto:sage [2012/06/07(木) 21:33:34.20 ] >>606 ありがとうございます!!!!!
608 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 17:20:14.46 ] 久しぶりにクラスのポインタの配列をnewしようとしたら記述方法が解らず過去のソース漁っちまったぜ 何でこんな記述方法なんだ
609 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 17:26:58.79 ] バカ避け
610 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 17:43:51.53 ] >>608 勘違いしてたらごめん、普通な記述方法だと思うけどコレと違うの? ideone.com/ZCwKK
611 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 19:07:55.41 ] >>610 自明ではないなあ、確かに調べたくなる。 int *p, *q; なのに int* [10];。
612 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 19:08:13.99 ] Bjarne Stroustrup氏 インタビュー www.kh.rim.or.jp/~nagamura/misc/stroustrup-interview.html
613 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 19:31:09.43 ] そこそこ有名な古文書ですね
614 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 20:28:57.23 ] >>611 配列のnewは type* p = new type[n]; なのでクラスのポインタ(type = cls*)なら cls** p = new cls*[n]; まとめて変数を定義する構文は欠陥品みたいなもんだから使わない方がいい 理解云々より「型 変数,変数;」にならない場合があるシンタックスがキモイ
615 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 23:18:54.25 ] ポインタ配列は使わずにptr_vector使ってるわ
616 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 00:09:07.32 ] >欠陥品みたいなもん 聞いたことないわ 脳内か?
617 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 01:31:56.33 ] 禿がそんなようなこと言ってた気がする
618 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 06:33:12.18 ] int *p, *q; int* p, q; どっちが意図通りか分かりにくい
619 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 09:22:15.62 ] >>616 C++言語設計者曰く Bjarne Stroustrup's C++ Style and Technique FAQ www2.research.att.com/~bs/bs_faq2.html#whitespace >A ``typical C programmer'' writes ``int *p;'' >A ``typical C++ programmer'' writes ``int* p;'' >... >Stick to one pointer per declaration and always initialize variables and the source of confusion disappears.
620 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 10:32:50.57 ] [C++設計と進化]でもCの宣言シンタクスをdisってるよね。 構文を変えようとしたけどCユーザーの反発とか色々あって放置に決めたっていう。
621 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 11:10:58.17 ] >>618 どっちがどうなのかさっぱりだ 基本Cな俺は上で記述したくなるけど
622 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 12:27:10.29 ] int*をtypedefしたらさらにややこしい
623 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 13:20:15.63 ] いやそこは#define だろ
624 名前: ◆QZaw55cn4c mailto:sage [2012/06/09(土) 13:47:33.95 ] なんでもありの #define は避けれるのであれば避けたほうがいい。
625 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 14:35:41.84 ] コテはアスペとわかっちゃいても ヤッパむかつくな
626 名前: ◆QZaw55cn4c mailto:日常やってるjね。野見祐二love [2012/06/09(土) 15:12:12.59 ] >>625 コードをみせてくれ。話はそれからだ。
627 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 15:46:21.13 ] ナッパむかつくわ
628 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 21:11:59.64 ] ラッパズボン
629 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 21:47:37.67 ] ガッペむかつく
630 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 23:03:37.47 ] charの配列に2バイト文字列が入ってるものをifとかで場合分けしたいんですが、どーしたらいいんでしょう? 別の事情でstring型は使うことができないんです 初歩的な質問ですいませんがよろしくお願いします
631 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 23:14:05.73 ] 正確ではないと思うが、全角文字の1バイト目を探すというのはどうだろう。 0x80〜 とかその辺だった記憶
632 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 23:21:18.75 ] >>631 回答有り難うございます 文字列で場合分けしたいので一文字じゃダメなんです…… でも参考になりました ありがとうございます 別で聞いた所strcmp?とかいうもので解決するそうです もう少し頑張ってみます
633 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 23:59:18.06 ] いや、charの配列を頭から一文字ずつチェックして その2バイト文字列の文字コードでマルチバイト文字の1バイト目であることを示す値が出てくるかどうかで判断するって話だろ
634 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 00:17:31.99 ] なんでそうなるw
635 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 00:24:29.07 ] 3バイト文字列
636 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 05:57:32.60 ] >>630 扱うコードは SJIS? UNICODE?
637 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 06:03:28.19 ] UTF8以外は認めない
638 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 11:41:33.27 ] UTF32でおk
639 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 12:11:18.15 ] Bjarne Stroustrup ってなんて読むの? バカジャネ ストラップ でいいの?
640 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 12:18:44.54 ] Wikiみろ。しかし、一般にはハゲである。
641 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 12:22:38.71 ] びよよん ストローストラップ
642 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 16:57:25.35 ] 初歩的な質問ですがよろしいでしょうか? C++における関数や関数の呼び出しにおける変数の扱いについてです。 関数や関数内にて宣言している静的な変数は、関数を呼び出すたびに実行に必要なメモリ領域を確保しているのでしょうか? 関数、変数ともにstatic、inlineなどがついていない関数を前提とします。
643 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 17:06:46.76 ] >>642 >関数や関数内にて宣言している静的な変数 >関数、変数ともにstatic、inlineなどがついていない 矛盾しとるがや。
644 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 17:34:56.98 ] >>643 すみません つまりこういうことです。 int func() { int var; } ここでのfuncやvarは実行されるたび確保されるのでしょうか?
645 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 17:38:33.59 ] 仕組みを知りたいなら"スタック 自動変数"でぐぐればわかるよ
646 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 17:51:53.23 ] >>645 ありがとうございます。 早速調べさせていただきます。
647 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 18:04:43.04 ] うるせぇ、許可なんか要らないから勝手に調べろよ。
648 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 18:36:02.03 ] ハイハイワロスワロスwwww
649 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 19:02:24.84 ] 許可を求めてない件
650 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 19:17:56.41 ] まぁアスペなんだろ かかわらないほうが吉
651 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 19:40:35.31 ] そもそも確保しなきゃ使えんだろ
652 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 19:51:54.42 ] 最初に確保して使いまわしているとかそんなのも考えていたんじゃないか? そうなると再起関数の部分とかで矛盾が発生するとか考えればわかるけど
653 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 20:03:12.96 ] 静的な変数≠static と思っているあたりもっと根本的なところが
654 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 20:09:06.45 ] Qが最近あちこちのスレでコテ消して暴れているような気がする
655 名前:デフォルトの名無しさん [2012/06/10(日) 21:02:46.39 ] >>653 悪い質問者じゃないんだけどさ・・・ 関数内での変数ってstatic明示的に書かない限りAuto変数だと思っていた kwsk教えてエロい人
656 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 21:05:14.17 ] つまり>>643 だよ
657 名前:デフォルトの名無しさん [2012/06/10(日) 21:12:59.86 ] そういえば、確かに静的変数なのにstaticがついていないのは矛盾している・・・。 ごめんなさい、なにか勘違いしていました。
658 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 01:56:38.09 ] >>654 Qは指パッチンで何でもできるからな。
659 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 03:32:25.29 ] >>654 気のせいだろ?このスレにしてもQにしてはレベルが低い、というかQならとうに知ってるはず。
660 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 03:35:58.64 ] いやQの正体はこんなもんじゃないのかな
661 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 04:59:12.55 ] むしまるQ
662 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 10:25:25.11 ] DQN
663 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 15:13:36.00 ] C++のコンパイラ、IDEは何を使えばいいでしょうか(各コンパイラは主として何が違うのでしょうか) 今のところ、Borland C++ Compiler、BCC Developerを使おうと思っています
664 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 15:30:43.85 ] IDEが決まってから環境(OSとか)を合わせるの?
665 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 15:40:13.46 ] OSはWindowsXPとWin Vistaです 他にも(使用環境について)何か必要でしょうか?
666 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 15:55:48.00 ] Visual C++ 2010 Express でいいんじゃね
667 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 16:33:13.06 ] フリーのやつ全部試せ 無駄にはならん
668 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 16:46:17.50 ] LSI C 3.30試食版
669 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 17:03:17.01 ] Borland C++ Compilerはクソ古い上に公式が消滅してるし Linuxメインでない限りmingw,cygwin使うのはアホだし VC++除けば Digital Mars C/C++ Compilerくらいか?
670 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 18:56:50.56 ] 用途というか、目的によって違うと思う。 簡単なWindowsアプリをお手軽に作ってみたいというならVC++で良いと思う。 C言語を純粋に勉強したいというなら、gcc(Mingw,cygwin)+eclipse(CDT)の方が良いと思う。 VC++のなんとなく嫌な所はC言語としては、Microsoftの方言があると思える所。 GCCの嫌な所は、Windowsアプリを作るのが面倒くさい(という印象)がある所。 「Windowsのアプリを作り易い」ということは、「WindowsのAPIを簡単に使える」という話だから、 C言語の本体とは直接関係ないけどね。
671 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 19:53:51.53 ] C++だって言ってるだろ
672 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 20:01:11.29 ] じゃあ、C言語をC++言語に、そして、gccをg++に、読み替えてください。
673 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 21:01:39.16 ] VC++のCに方言(っていうか、独自拡張?)なんてあったっけ? C++は規格合致してない方言まみれだけど Cは89のままで止まってて、かなり素直だと思うんだけど^^; むしろ99の機能を一部取り入れてるgccの方が独自拡張多くない?
674 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 21:26:55.49 ] 追加仕様はGCCが未対応はVCが多いイメージ
675 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 21:30:58.92 ] >>673 msdn.microsoft.com/ja-jp/library/34h23df8.aspx
676 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 21:34:19.97 ] __declspec(selectany) 便利だよね
677 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 21:54:35.82 ] gccもVC++も色々拡張があるんだね、知らなかった www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/gccextend.html
678 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 22:15:19.79 ] >>677 ふーん、古いページだけれどもその当時の時点でいろいろあったんだ。 >配列変数をコピーする。 は標準じゃなかったっけ。
679 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 22:41:43.30 ] お前構造体と勘違いしてんじゃね
680 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 23:00:20.26 ] 配列コピーはGCC拡張だったけど今やるとエラーになる 今の一覧はこれ gcc.gnu.org/onlinedocs/gcc/C-Extensions.html gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Extensions.html
681 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 23:15:12.86 ] >>679 そだった。なるほど。
682 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 23:20:40.95 ] 配列なんてここ数年使ったときねーな
683 名前:デフォルトの名無しさん mailto:sage [2012/06/12(火) 03:10:00.73 ] std::arrayが使えるようになってまた使い出した
684 名前:デフォルトの名無しさん mailto:sage [2012/06/12(火) 07:10:39.82 ] 独自のものには__が付いてるから許容範囲
685 名前:663 mailto:sage [2012/06/13(水) 14:20:05.80 ] レスしてくれた方々ありがとうございます。返信遅れてすみません まずはVisual C++ 2010 Express使ってみて 不満があるようならg++など順番に変えていこうと思います (cygwinのインストールはしているのですが、使い方があまり分かっていないので勉強する必要が・・・)
686 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 12:47:46.33 ] std::ostreamってWindows CEでも使える?
687 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 15:15:04.81 ] 試したら?
688 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 19:47:41.13 ] C++で、外部の.exeファイルを実行するにはどうすればいいですか? 使っているソフトはVS2010です
689 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 20:00:18.12 ] ExecuteExternExeFile
690 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 20:01:49.08 ] >>688 普通の起動 CreateProcess エクスプローラーと同じようにファイルを開く場合 ShellExecute コマンド実行(起動したプロセスが終わるまで待機) system msdn.microsoft.com/ja-jp/library/277bwbdz (v=vs.71).aspx
691 名前:デフォルトの名無しさん mailto:age [2012/06/14(木) 23:11:18.71 ] #include <iostream> #include <string> using namespace std; int main() { string str; while(1) { cin >> str; if(str=="end") break; cout << str.size; } return 0; } これエラーが出るんですがstrの要素数を出力する場合どう書けばいいんですか? VC++2008です。
692 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 23:46:53.91 ] size → size() ideone.com/YBuvr
693 名前:デフォルトの名無しさん mailto:sage [2012/06/15(金) 06:19:36.46 ] 韓国の国内総生産(GDP)を考慮した個人負債規模が財政危機に陥っているスペイン並みに深刻な水準となった。 個人負債の増加速度は経済協力開発機構(OECD)加盟国で3位と平均を大きく上回った。 大韓商工会議所が14日に発表した「個人負債現況と政策課題」報告書によると、 2010年の韓国のGDPに対する個人負債の比率は81%でOECD平均の73%より高かった。 これは財政危機を陥っているスペインの85%に迫る水準だ。ギリシャの61%より20ポイント高い数値だ。 個人負債増加幅も急速に拡大していうる。2006年以後鈍化した個人負債増加率は2010年に前年比2.4ポイント上昇の9.8%を記録した。 【今日の感想】この記事を読んで・・・ 面白い (40件) 悲しい (2件) すっきり (1件) 腹立つ (0件) 役に立つ (6件) japanese.joins.com/article/707/153707.html?servcode=300§code=300
694 名前:デフォルトの名無しさん mailto:sage [2012/06/15(金) 07:00:42.74 ] 面白い 役に立つ
695 名前:デフォルトの名無しさん mailto:sage [2012/06/15(金) 19:56:02.03 ] .うん 日本人も他人の事言えないね。 【今日の感想】この記事を読んで・・・ 面白い (349件) 悲しい (19件) すっきり (44件) 腹立つ (4件) 役に立つ (36件)..
696 名前:デフォルトの名無しさん mailto:sage [2012/06/16(土) 06:09:17.53 ] 朝鮮人の嫌がらせにも マニフェストをなにも守れない民主党の嫌がらせにも 耐え忍ぶ民族