1 名前:デフォルトの名無しさん [2007/06/03(日) 22:33:55 ] エスケープシーケンスやWin32APIなどの環境依存な物でもOK。 ただしその場合、質問者は必ず、環境を書きましょう。 ※sage禁止です。 【前スレ】 【初心者歓迎】C/C++室 Ver.37【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1178432985/l50 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
528 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 19:50:20 ] >>505 sscan系でも%iというものがあってな >>512 intは値渡しでいいだろ >>513 > operator||()が定義できてよかった、という状況って Boost.Lambda
529 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 19:57:07 ] samp じゃなくて smap に見えた
530 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 19:57:36 ] >>524 VC++のアカデミックは? アカデミックは超安かった希ガス ところで、みんなは何使ってんだ? 俺はVStudioでC++とC#を中心にやってる。
531 名前:デフォルトの名無しさん [2007/06/15(金) 20:10:29 ] VC++2005expressは無料だよ
532 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 20:40:21 ] express だな。 商用には使えないが、それはアカデミックも同じだな。
533 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 21:12:36 ] 嘘言ってはいけません。 Expressも他のEditionと同じように、 商用利用を禁止する条項はない
534 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 21:27:41 ] VC++EEはリソースの扱いが難点だけど それ以外は十分だな
535 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 21:30:29 ] >>533 前どっかのスレでそう聞いたんだけど、騙されてたのか。 ググったら商用に使えるって書いてたわ。ありがとう。
536 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 23:32:57 ] アカデミックも商用可能だな。
537 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 01:23:34 ] std::wofstream m_ofs; void CLog::Write( LPCWSTR strMessage ) { if( !m_ofs.is_open() ) return; m_ofs << " Message:" << strMessage; } こういうものを作って CLog log; log.Write( L"てすと" ); という風に使うと Message: としか出力されません。何故でしょうか?
538 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 01:26:58 ] よく判らんけど、バッファリングされているからじゃないの? フラッシュしたら?
539 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 01:27:16 ] ロケールの設定
540 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 01:34:54 ] Write( L"aa" )だと Message:aaと普通に表示されます 日本語だけだめみたいです >>539 ぐぐりました こういうのが出てきたので→setlocale(LC_ALL,"Japanese") 付け足しましたが、解決ませんでした・・・
541 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 01:40:59 ] >>540 imbue() ただし forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=250724&SiteID=7
542 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 01:47:35 ] >>541 おお!解決しました! ありがとうございます!
543 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 02:41:07 ] 度々すいません __FUNCTION__ のwchar_t型というのはあるのでしょうか?
544 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 05:12:13 ] >>543 gcc の拡張だね。 static const char [] な変数と決められてるから、いまのことろ無いね。
545 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 05:36:40 ] wchar_t wfunc[sizeof __FUNCTION__]; swprintf(wfunc, sizeof __FUNCTION__, L"%s", __FUNCTION__); とか自分で変換するしかないのかな。 バッファが必要だから、マクロ化するのも難しいな。 グローバル変数を使うのもアレだし・・・。
546 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 09:33:44 ] >>540 "japanese"より""を勧める
547 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 11:10:16 ] >>528 scanf系の関数だと何個変換できたかしか返ってこない どこまで変換できたかとか知る方法がないからstrtolと比べたら使い勝手わるい 勉強レベルとか手抜き処理でいいならscanfでいいんだけど、 エラー検出とか入力の自由度とか考えて作ろうと思ったらscanfは使えないと思う 今のPCなんかだとあんまり問題にもならないかもしれないけど処理速度も遅いし
548 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 11:16:07 ] >>530 普段はcygwin上でgcc使ってるな 簡単なwinアプリもgccで作ってる 今の仕事の開発環境もcygwin+gccクロスコンパイラだったりする
549 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 11:21:21 ] >>547 それはわかる 1行目の10進以外もに反応しただけ
550 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 11:21:59 ] >>547 つ[%i] って、>528に書かれているじゃないか。 ちょっと調べることもしないでえらそうに語るなよ。
551 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 11:23:48 ] ツーか、むしろ突っ込むならここだな。 >どこまで変換できたかとか知る方法がないからstrtolと比べたら使い勝手わるい
552 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 11:30:18 ] 通りすがりのものだけど、>>550-551 のほうが変なこと言ってる
553 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 11:38:37 ] 知らないくせに偉そうな事を言うってのが とてもみっともないんだよね
554 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 11:41:57 ] あ、ちょっと違うか。 >>547 は「どこまで変換したかscanfでは判定できない」と言っている。 これが、%nを知らない、「無知なのに偉そうなことを言って恥ずかしい」こと。 >>505 の基数の自由度に関しては、確かにstrtolの方が便利。
555 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 11:51:44 ] 最近Cの勉強を始めたのですが、いくつか質問したいことがあります。 講座などを見ると、Javaにできることは全部できると感じましたが、 Javaと同じようにやるのが難しいこととか、 Javaの感覚でやると間違いやすいこととか、ありますか? それからヘッダというのはプログラム本体と同じように、 関数を定義したり、グローバルに使う変数を保持してもいいのでしょうか? VCにはJavaのEclipseのように、打った瞬間コンパイルエラーを表示してくれたり、 3,4字打ったら当てはまる構文や変数名やクラス名を出してくれる機能はないのでしょうか? それがないと、打ち間違いしそうです。
556 名前:デフォルトの名無しさん [2007/06/16(土) 12:03:58 ] すみません。6年ほど前にVC++6.0を買ったんですが、入門者だった私にはどうにも難しくて C言語のコマンドラインプログラムを勉強した程度です(独習C)のレベルです。 それから、JavaやPHPやASP.NETのWeb系の仕事をしたりしていたんですが、最近、Win32プログラムの昔買った本とかを 読んでみると結構理解できます。自分としてはVCへの憧れが強いので、MFCとかも勉強したいとおもっているのですが いまさらMFCを勉強しても無駄でしょうか?C++の文法的知識はあります。
557 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 12:08:01 ] MFCをやる利点てあるかな? 全部C#でことたりね?
558 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 12:10:30 ] >>544 >>545 ありがとうございます。 全部ユニコードで統一したいので、面倒ですがいちいち変換することにします。
559 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 13:44:46 ] >>557 .NETのランタイム要らないとか? MFCならスタティックリンクしたら 特にランタイムインストールしなくても動くし。 個人的には今からMFCやる意味はあんまり無いと思うけど。
560 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 14:02:04 ] ファイルに関するたくさんの情報を保持するクラスを作りたいんですが、 こういう時のメンバ変数はprivateにするのが基本なんですよね? Setは1つで済むとしてもGetはメンバ変数と同じだけ用意するんですか?
561 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 14:16:15 ] >>560 必要に応じて。
562 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 14:30:56 ] >>561 ではこのやり方はおかしくないんですね。 なんかこれならpublicにした方が手っ取り早いなあとか思ったんですが それはダメ!って色んなところで解説されてるので・・・ ありがとうございます。
563 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 14:41:34 ] どういう使い方をするのか知らないけど、publicにしたほうが手っ取り早いと感じるなら クラスじゃなくて構造体を使うとかしたら?
564 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 15:00:11 ] >>562 駄目な理由を考えてみる
565 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 15:17:27 ] クラスにしたのはコンストラクタとデストラクタが使いたかったからです。 このクラスの変数には別のクラスから頻繁にアクセスする必要があって、 こういう場合隠蔽する意味あるのかな〜?と。 かといって全部同じクラスにしちゃうと大きくなりすぎてこれもまた良くないよな・・・ とか思ってなかなか決められないんです。
566 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 15:20:29 ] あ、構造体でもコンストラクタとデストラクタは使えますね。 結局隠蔽すべきかそうでないのかの判断が良く分からないと言うか。
567 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 15:22:57 ] 好きにしろ
568 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 15:28:29 ] >このクラスの変数には別のクラスから頻繁にアクセスする必要があって まずこの設計が間違ってないかどうかを考えるべきだと思う
569 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 15:35:22 ] ですよね。 ちょっと検討しなおします。 ありがとうございました。
570 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 16:54:32 ] 横からなんですけど>>556 さんの質問に関連して、 現在独学でC/C++を勉強中でコンソールプログラムを色々作ってきた後、 GUIを作るのにWin32APIを勉強していて、 山本信雄さんの『はじめてのWindowsプログラミング』を読んだら、 Win32APIをそのまま扱うのは普通しなくてMFCで作る みたいなことが書いてあったから次はMFCと思っていたのですが、 MFCやる利点がないということはこれからどう勉強を進めたら良いですか?
571 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 17:00:38 ] >>570 とりあえず.NETかそうでないほうをやるかで決めては
572 名前:そう思えるかどうかが分岐点 mailto:sage [2007/06/16(土) 17:06:41 ] MFCやればいいじゃん。趣味なら何の問題もないよ。 もう後がないとか、2005EEでできないとか、どうでもいいじゃん。
573 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 17:11:21 ] さすがにMFCはもうやめといたほうがいいだろ。 どうせまだ入り口程度しかやってないんだろ。 だったら早いうちに.Netへ移行しておけ。
574 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 17:15:07 ] >>571 今のスタンダートとしては.NETなのですか? ていうかそうでないほうっていうのが何なのかも分からないですorz >>572 今は趣味ですが大学卒業後プログラマになりたくて勉強しているので 実際に現場で役に立つものを勉強したいのです。
575 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 17:17:10 ] >>573 やはり.NETが良いんですね>< 正直なところ.NETがどんなものか理解してないので今ちょっとググって調べてみます>< ついでにですが、プログラマになるにはそれが出来ていれば大丈夫でしょうか? それともJavaとかも身に付けておいた方が良いのですか?
576 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 17:21:08 ] >>575 プログラマを目指すなら、MFCも.Netも要らない。 現場で使っているものをその場で使えるようになればいい。 その為には、(当たり前の)コミュニケーション能力と(通常よりは高めの)理解力があればいい。 その上で、就職後に努力できるだけの気力を持てる会社に就職してくれ。
577 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 17:21:19 ] プログラマになるなら最低7つは言語を習得しないとダメです。
578 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 17:34:41 ] 下手な言語7つ覚えるよりC++をマスターするほうが遙かに難易度が高い件について
579 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 17:36:31 ] そもそも何を持ってマスターと言うのか? C++0xとかまだ定まっていないというのに
580 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 17:36:53 ] 難易度高くても、C++しかできないとな。 つぶしが利かない。
581 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 17:39:32 ] >>580 C++できたら他の言語なんて楽勝だろ。
582 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 17:41:42 ] 楽勝だったら、7つ覚えておけよw
583 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 17:45:08 ] 仕事で必要になるたびに覚えていけばいい
584 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 17:46:28 ] C++ が分かってれば、Java だの Ruby だの3日あれば使えるようになる。
585 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 17:47:52 ] いやぁ、C++からJavaはちょっと壁があるぞ。 C++言語を覚えただけじゃ、GUIもスレッドもないしな。
586 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 17:49:11 ] さらに言うと、現状javaの案件といえば、サーバーサイドだな。
587 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 17:50:03 ] >>585 でも逆の Java → C++ と違って挫折することはまずないだろ。
588 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 17:51:10 ] それで挫折する人間なら、C++覚える時点で挫折するよ。
589 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 17:59:05 ] GUI は言語の問題じゃなくてライブラリの問題だと思うが。
590 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 18:00:40 ] 言語だけのC言語ベースでイインジャネ? 設計まで絡んだら知らん。
591 名前:デフォルトの名無しさん [2007/06/16(土) 18:01:50 ] reinterpretって何て読むの? ネット辞典で調べてもでてこん。
592 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 18:03:55 ] リインタープリット
593 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 18:12:53 ] 文法だけではプログラマになれないよ。 そもそも質問主は、MFCか.Netかで迷ってるんだよ? それでもライブラリだから論点が外れてるといえるか?
594 名前:デフォルトの名無しさん [2007/06/16(土) 18:17:30 ] 俺から見ればC/C++もJavaも難しいよ、お前らって頭良いんじゃね いまだにfor(A;B;C){...}の判断,処理手順を間違えてるときあるしな。情けないよ for(A;B;C){...}の判断,処理手順で混乱する香具師、手を挙げろ! .ノ イテレータを作成してるときなんかあれ???、あれれれ?、なんで になるときあるニダ
595 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 19:20:14 ] >>594 慣れ。言語に対する慣れだけでなく、プログラミング作業に対する慣れも含んで。
596 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 20:22:02 ] 俺はC++からJavaScript+HTMLをやったんだが。 C#には簡単に移行出来たな。
597 名前:W [2007/06/16(土) 20:25:34 ] JavaScript+HTML
598 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 20:30:12 ] CやC++で a = b = c = d; としたら、段階的に処理を書くと、 a = b = (c = d); //まずcにdが代入される a = (b = c) = d; //次にbにcが代入される (a = b) = c = d; //最後にaにbが代入される と言うことでいいのでしょうか? 詳しく教えてほしいです
599 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 20:34:46 ] a = (b = (c = d)) c=dが行われ,その値がb=でbに代入され,その値がa=でaに代入される
600 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 20:40:25 ] なるほど! わかりやすい説明をありがとうございます!!
601 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 20:43:43 ] HTMLってプログラミング言語?
602 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 20:46:19 ] ・変数がない ・ループ、条件分岐が書けない ・関数も書けない 修飾言語ではあるが、プログラム言語ではないかな
603 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 20:53:07 ] HTMLはマークアップ言語です。
604 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 21:01:38 ] >>602-603 トンです。 上でプログラミング言語と並んで書かれてたから なんかHTMLって特異な言語だけど仲間なのかなぁ…と思ったら コンピュータ言語⊃プログラミング言語,マークアップ言語,・・・,なんですね。
605 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 21:03:45 ] プリコンパイル済みヘッダーを作ったですが デバッグモードではビルドできるのに、リリースにすると error LNK2005: *** は既に ***.obj で定義されています。 というエラーが全部のファイルで発生してしまいます。 これは何故なんでしょうか? 環境はVS2005です
606 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 21:28:39 ] >>605 エラーです
607 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 21:32:24 ] 特異な言語といえばSQLもそうだな。 一応Languageと名前についてるけど、 これをプログラミング言語と呼ぶのは ちょっと抵抗ある。
608 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 21:49:46 ] ストアドとか書けば解るが、あれは十分にプログラム言語としての特徴を備えているような気が
609 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 21:51:48 ] SQLに制御構造をつけたのがストアドじゃないかね
610 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 21:58:45 ] HTMLだってLanguageと名前についてるだろ SQLはプログラミング言語じゃなくて、データベース言語だろ
611 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 21:59:39 ] Languageは「言語」であって「プログラミング言語」ではないからな。
612 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 23:07:19 ] >>594 for(A; B; C) { D } で、 A を処理して、B を判定して、D を実行して、C を実行して、また B を判定して・・・ とか考えるのは効率が悪い。 グルングルンと実行されるみたいな流れを もっとグラフィカルに頭に思い浮かべるのがコツ。 一旦処理の流れを線でつないで紙に書いて、 それを意識するもんだ。
613 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 23:08:18 ] HTML はプログラミング言語じゃなくてマークアップ言語。 TeX あたりだと単なるマークアップ言語と言い切るのは微妙だがな。
614 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 23:56:37 ] SQLがチューリング完全でないことは明白。
615 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 00:22:00 ] 何言ってるの?
616 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 08:02:03 ] わからないなら調べてから聞けよ
617 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 08:07:53 ] あ〜い、とぅいまてぇ〜ん♪
618 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 09:34:26 ] >>602 IEに限って言えば条件がIEのバージョンに限定されるけど条件分岐が使えるっぽ
619 名前:デフォルトの名無しさん [2007/06/17(日) 12:43:27 ] 親クラスのprotectedな変数が、public継承した子クラスでは publicにならずにprotectedなままなのは何故ですか? 親クラスのpublicな変数が、protected継承した子クラスでは protectedになるのに。 publicよりもprotectedの方が強いと理解しておけばよいのでしょうか
620 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 12:46:05 ] そう理解しておけばおk そしてプライベートが最強と
621 名前:デフォルトの名無しさん [2007/06/17(日) 12:55:24 ] >>620 ありがとうございました。 そう理解しときます。
622 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 14:57:34 ] =演算子をオーバーロードするときにthisポインタを戻り値にしてるんですが、 thisポインタを戻り値にしない書き方ってありますか?
623 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 14:58:53 ] ありますよ
624 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 15:01:58 ] それは例えばどういった書き方でしょうか?
625 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 15:03:17 ] >>624 void operator = (...
626 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 15:04:43 ] a = b + c + d;の処理の流れって、 a = (b + c) + d; //まずbにcを加算 a = ((b + c) + d); //次にb+cの値にdを加算 最後に aに代入という流れで理解してよいのでしょうか? 詳しく教えてください。
627 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 15:06:25 ] デバッグ
628 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 15:06:57 ] デバッグする環境がありません・・・すいません。