- 1 名前:デフォルトの名無しさん [2008/03/30(日) 01:50:26 ]
- エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.50【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1204124447/ 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
- 263 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 23:22:54 ]
- >>231
嘘はいかんよ。 >>235 >char a[]="test";とchar *b="test"; *a='T'; /* OK */ a[0]='w'; /* OK */ // *b='T'; /* NG */ b=a; /* OK */ *b='T'; /* OK */ b[0]='w'; /* OK */ // a=NULL; /* どうだったっけ?*/
- 264 名前:238 mailto:sage [2008/04/02(水) 23:28:59 ]
- >>262
どんな実装だよ。 せめてclass Tにしようぜ
- 265 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 23:30:32 ]
- // *b='T'; /* NG */
*b='T'; /* OK */ どっちだよ
- 266 名前:253,260 mailto:sage [2008/04/02(水) 23:32:01 ]
- >>261
初めて知った単語なので非常に有難いです。 結局クラスをライブラリにするのはcppファイルの中身が見えなくなるだけで(ビルドが早くなったりもしますが) いかにヘッダ部分をcppに移せるかで使用先(メインプロジェクト)での可変性が変わると言うことでしょうか。
- 267 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 23:34:28 ]
- >>262
思い描いている形とは違うかもしれないけど、 BoostまたはTR1にType Traitsに、is_classというものがある。 かなりコンパイラを選ぶだろうけど。 さすがにメンバの列挙はない。
- 268 名前:デフォルトの名無しさん [2008/04/02(水) 23:35:43 ]
- >>259
すいません。 "クラスA::関数()",referenced from: クラスB::関数() in クラスB.o symbol(s) not found collect2:ld returned 1 exit status とあります。
- 269 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 23:40:16 ]
- >>265
// *b='T'; /* NG */ b=a; *b='T'; /* OK */ 分かりにくくてスマソ
- 270 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 00:43:38 ]
- >>268
クラスB.o の中に入っている クラスB::関数() から参照されている "ク ラスA::関数()" というシンボルが見付かりません、 とリンカー様(ld)が怒ってらっしゃる。 つまり、クラスA::関数() をコンパイルした .o ファイルやそれが入っ ているライブラリをコマンドラインに指定する必要がある。
- 271 名前:デフォルトの名無しさん [2008/04/03(木) 04:53:36 ]
- 文字コードの問題です。
wchar_t buff[3]; とあって SHIFT-JISで書かれたテキストから、fgetwsで読み込む事で 例えば、 「もじ」 ならば buff[0]<=も buff[1]<=じ と、入る事を望みます。 このような処理をする場合、どのようにすればいいのでしょうか? ちなみに、fgetwsで読むと、buff[0]とbuffr[1]で"も"が入ってしまいます。 fgetwsはsjisで書かれたテキストを自動で変換して読み込んでくれると聞いたのですが・・・。
- 272 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 05:00:49 ]
- あ、一応自己解決しました。
テキストを、UTF16のBOMなしにして setlocale(LC_CTYPE, "");を設定し、バイナリモードで読めばよかったんですね。 出来れば、SJISから変換されるとありがたいんですが・・・。
- 273 名前:デフォルトの名無しさん [2008/04/03(木) 08:16:33 ]
- std::vector<int> vec;
という変数があるとして、 for (int i = 0; i < vec.size(); i++) {.....} とか書くとintとunsigned intを比較してるという警告がでて嫌なのでstatic_cast<int>(vec.size()) とかやってるのですが、これもいやです。どうすればいいですか?
- 274 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 08:28:55 ]
- 1.iをstd::vector<int>::size_typeにする。
2.iteratorを使う。 3.STLのアルゴリズムを使う。
- 275 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 08:43:33 ]
- >>273
4.iをunsignedにする。
- 276 名前:デフォルトの名無しさん [2008/04/03(木) 08:51:22 ]
- ありがとうございます。
STLのアルゴリズムを使うというのは、for文の中でやりたかったことがSTLのアルゴリズムで 表現できる必要がありますよね?常にできるということではないですよね?
- 277 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 08:55:56 ]
- >>271-272
まずは環境を書こう。
- 278 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 08:59:30 ]
- >>276
{...}の内容によってはちょっと面倒かも知れんので、その場合は2.かな。
- 279 名前:デフォルトの名無しさん [2008/04/03(木) 12:04:46 ]
- class complex {
public: double re; double im; }; こういうクラスがあるときに、operator>>(istream &, complex &a) を定義するとすると、 どういう風にやるのがよいでしょうか?
- 280 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 12:07:17 ]
- そんなクラスは作らずに、標準ライブラリのcomplexを使う。
- 281 名前:デフォルトの名無しさん [2008/04/03(木) 14:05:47 ]
- windows2k MinGW を入れたいのです
MinGWインストーラがネット無いので使えません ソースフォージからどれを落とせば良いでしょうか またそれは全て同じフォルダに上書きで良いでしょうか binフォルダなどかぶっているものがおおいんです 使いたいのはC、C++、SDL、OpenGLです パスは適当に通そうと思っています
- 282 名前:デフォルトの名無しさん [2008/04/03(木) 15:08:36 ]
- >>281
大陸へカエレ
- 283 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 15:10:11 ]
- 専用スレで聞いた方がいいんじゃない。自分はDev C++の日本語版で入れたけど
- 284 名前:281 mailto:sage [2008/04/03(木) 15:20:11 ]
- >>283
ではMinGWスレに移動したいと思います レスdでした
- 285 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 15:47:08 ]
- C/C++ってつおいですか
- 286 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 15:48:47 ]
- >>285
未定義です
- 287 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 15:52:35 ]
- BCBの__propertyはVCでも使えますか。VCで書いてみたら、色が変わったので。
- 288 名前:デフォルトの名無しさん [2008/04/03(木) 15:54:42 ]
- MFCを使ってCMainFrameから継承されたウィンドウとCDialogから継承されたダイアログを
MTI(Multiple Top Level Window)風に同時に取扱たいです。 何か参考となるキーワードやソースやwebpageを教えて頂けないでしょうか。
- 289 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 16:00:47 ]
- >>287
VC入ってるのならF1押してヘルプを見るのだ
- 290 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 16:43:19 ]
- >>288
キーワード: モードレスダイアログ タイマー
- 291 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 17:14:42 ]
- VCのどっとねっとでないやつでVBやC#みたいなプロパティを作るものはありますか?
- 292 名前:288 mailto:sage [2008/04/03(木) 17:16:36 ]
- >>290
モードレスダイアログだとダイアログが子になってしまって、ちょっと欲しいものじゃないんです。 親子関係はなし、もしくはCMainFrameを子にしたいんです。
- 293 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 17:16:39 ]
- ATL
- 294 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 17:44:43 ]
- >>279
comlex& operator>>(istream & a)
- 295 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 17:52:31 ]
- >>292
ウィンドウ無か非表示の親からメインフレームとダイアログ作れば兄弟になる
- 296 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 17:59:36 ]
- _declspec(dllexport)
こういうのって、Cの仕様なんでしょうか? それともコンパイラの方の仕様なんでしょうか? まとまった文章や文献をご存知の方がいらしゃいましたらよろしくお願いいたしますm(_ _)m
- 297 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 18:05:31 ]
- DLLはWindows用語
- 298 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 18:09:02 ]
- 文献はMSDNにある
- 299 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 18:12:00 ]
- >>291
msdn2.microsoft.com/en-us/library/yhfk0thd.aspx >>296 独自 msdn2.microsoft.com/en-us/library/3y1sfaz2.aspx
- 300 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 18:20:47 ]
- 先頭にアンダースコアが2つ付いたのは
一部の組み込みマクロを除いて、他は全て処理系の拡張仕様。
- 301 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 18:21:29 ]
- >>297
>>299 ありがとうございます。勉強してみます。
- 302 名前:300 mailto:sage [2008/04/03(木) 19:09:12 ]
- 俺は無視か・・・。まあいいけどさ。
- 303 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 19:19:55 ]
- >>302
ばかじゃねぇのw
- 304 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 19:31:24 ]
- >>302 質問者がレス読んでから投稿ボタン押すまでに書き込むとスルーされる
アフリカではよくあること
- 305 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 19:45:47 ]
- >>302
すみません、気づきませんでした^^; ありがとうございます。 同じWindows環境でも、処理系に依存する部分は結構ありそうなので、頑張って調べてみます><
- 306 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 21:15:07 ]
- template<class T>
class A{ public: void put( T t ) { std::cout << t << std::endl; } }; このようなテンプレートを用意したとして、 A<int> a; のようにintとして定義した場合に、put()にint以外の引数を 入れるとコンパイルエラーになるようにしたいんですが a.put( 1.0f ); // 例えばこの場合コンパイルエラーが出るようにしたい
- 307 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 21:21:19 ]
- A<float>().put(1.0f);
- 308 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 21:34:58 ]
- template<class T>
class A{ public: template<class T2> void put( T2 t ) { BOOST_STATIC_ASSERT(boost::is_same<T, T2>::value); std::cout << t << std::endl; } };
- 309 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 22:00:35 ]
- C言語から自作したAPIを呼び出すにはどうすれば良いのでしょうか?
Windows APIは、#include <windows.h>で呼び出すことができるようなのですが、 ソフトウェア屋が作ったAPIをCのソースから呼び出す方法がさっぱり。 ググっては見たのですが具体的な書き方が見つかりませんでした。 参考になるサイト、もしくはソースがあれば教えてください。
- 310 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 22:02:40 ]
- extern "C"
- 311 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 22:04:05 ]
- >>309
DLLを動的に呼び出すか、ソースなら#include ""だろ
- 312 名前:デフォルトの名無しさん [2008/04/03(木) 22:06:51 ]
- operator<<()の定義の中で、宣言なしにwsという変数を使ってwhite spaceを読み込んでいるものをみたのですが、
これが一体なになのかわかりません。コンパイルは出来ているのでつかえるみたいなのですが、、 ググってもいいのがひっかかりません。どうか教えてください。
- 313 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 22:20:15 ]
- >>310-311
ソフトウェア屋が用意したAPI(恐らくDLL)を手元のCソースから利用したいんですが… いまいちわからないです。C言語をやるのは初めてで。
- 314 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 22:22:13 ]
- 恐らくとか言われても・・・。
.lib をリンクして提供されてるヘッダファイルインクルードすればいいだけじゃね?
- 315 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 22:23:48 ]
- LoadLibrary
- 316 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 22:35:46 ]
- >>312
空白を読み飛ばすマニピュレータのstd::ws
- 317 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 22:36:49 ]
- >>297
OS/2やTOWNS-OSでもDLLだったけど生き残ったのはWindowsだけか
- 318 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 22:40:25 ]
- OS/2はNTの元ネタみたいなもんだし
- 319 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 22:40:38 ]
- >>314
なるほど…APIを触ったことがないのでどういうものかわかりませんでした。 ライブラリと同じような扱いでインクルードできるんですね。 ありがとうございました。
- 320 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 22:43:17 ]
- OS/2 って何?そんな子はいませんでしたよ!
- 321 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 22:45:56 ]
- API
ttp://e-words.jp/w/API.html
- 322 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 23:42:51 ]
- std::mapのinsert()で戻ってくるiteratorとboolのpairな型はどこかに定義されていないの?
- 323 名前:デフォルトの名無しさん [2008/04/03(木) 23:43:33 ]
- c++のcomplexのoperator>>の実装を見たのですが、4+5i という複素数があったとすると、
(4,5) という文字列で入力するようになっていました。実装は()とかの括弧やコンマをみて ちゃんと処理やってたのですが、普通に考えたら、4+5iとかの文字列の入力の方が自然なような 気がするのですが、(4,5)の方がよいという理由がありますか? よろしくお願いします。
- 324 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 23:47:48 ]
- C言語が(,)の入力に対応している点
a+biはC言語が対応していない
- 325 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 00:44:30 ]
- 他人の書いた CやC++ソースが大量にあったとして、
コード解析するときってどうやってる? Linux 環境で grep や vim + ctags で解析 → gdb で動作確認なんて やり方してる俺は激しく時代遅れな希ガス
- 326 名前:デフォルトの名無しさん [2008/04/04(金) 00:51:17 ]
- >>325
動作させられるなら、動作させてみて、どの関数が一番頻繁に呼び出されてるかをみてみる。 全体の20%のコードが80%の時間を使ってるというしな。
- 327 名前:デフォルトの名無しさん [2008/04/04(金) 01:06:04 ]
- >>324
c言語が対応してないというのは、どういう意味ですか? scanf()で一文字づつ読み込んで解析すればできませんか?
- 328 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 01:14:47 ]
- >>327
文字列を解析すればできるよ しかし、直接プログラム内で kansuu(x,y)とかけるのとは違う
- 329 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 01:15:14 ]
- >>327
何がいいたいのかよくわからんが・・・ >complex x = 3 + 2i; って使い方がしたいんじゃないのか?そいつぁ無理だ。(少なくともおれの知識じゃ) なぜそこでscanfが出てくるのがさっぱりわからんが >complex x = "3 + 2i"; なら、実装は可能だ。 ただ、種々の書式に対応するとめんどくさそうなことこの上ない実装になりそう。
- 330 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 01:15:48 ]
- プログラム内では、(x,y)の形にするか複素数型に変換するしか無い
- 331 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 01:22:17 ]
- scanf("%d+%di", &x, &y);
みたいな?w
- 332 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 01:35:28 ]
- いや、入力は文字列で扱ってるんだが、
"1+2i"じゃなくて、"(1,2)"みたいに、実装してあるのは何で? って質問だと思われw
- 333 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 01:54:54 ]
- C++標準のcomplexって使ったことないんだけどそういう仕様なの?
仕様なら仕方ないが信じがたいんだがw
- 334 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 01:58:38 ]
- C++はこうだろ?
std::complex<double>(1, 3)
- 335 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 02:10:39 ]
- complexをiostreamで出力するときに、
"1+2i"じゃなくて"(1,2)"となっているのは何で? ってことだろ。
- 336 名前:335 mailto:sage [2008/04/04(金) 02:12:00 ]
- × complexをiostreamで出力するときに、
○ complexをiostreamで入出力するときに、
- 337 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 02:23:09 ]
- コピペして使えるようにじゃね?
- 338 名前:デフォルトの名無しさん [2008/04/04(金) 02:41:24 ]
- 335の人が言っているのが、こっちの意図です。でも最初の人がC言語ではサポートしていない、
というのがどういう意味だったのかはわかりました。 文字列で扱うんなら、4+5iとかでも問題ないと思ったのですが、(,)で実装してしまったし、、、 4+5iとかはちょっと面倒くさそう。
- 339 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 07:40:38 ]
- iだったりjだったりするからじゃねw
- 340 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 12:05:27 ]
- テンプレートクラス作って、
そのポインタをlistにつっこんで イテレータで走査しようとしたら怒られる //Error list<Hoge<T>*>::iterator it; expected `;' before "it" テンプレートクラスを テンプレートのままぶち込むのがいけないのか、 それとも別のところがいけないのかでいいんで教えてください
- 341 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 12:30:31 ]
- - list<Hoge<T>*>::iterator it;
+ typename list<Hoge<T>*>::iterator it;
- 342 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 12:34:55 ]
- ああ、そういうことだったのね(´・ω・`)
ありがとー
- 343 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 12:35:00 ]
- >>340
そりゃ型決まってないと無理でないか? list<Hoge<int>*>::iterator it; とかならいけると思うけど。
- 344 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 12:41:23 ]
- gccだとちゃんとエラーはいてくれるがVCだと通るから困る
- 345 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 15:28:40 ]
- を、2ページ目にも修正入ったみたいだな。
- 346 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 16:45:18 ]
- 教えて!!
言語を勉強したいのだが何がお勧め?? C++??Java??
- 347 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 16:46:17 ]
- 目的は?
趣味なら何でもいいと思うよ。
- 348 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 16:47:57 ]
- >>346
BASIC
- 349 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 16:51:06 ]
- >>347
>>348 仕事でUNIXのオペレータをしています。 言語を覚えてスキルアップしたい。と思っています。 でも色んな言語がありすぎて何を始めればいいのか 分かりません。今の時代にあっていてこれからも使っていけそうな 言語を教えて下さい。お願いします。
- 350 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 16:53:20 ]
- >>346
スレタイが読める程度の日本語。
- 351 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 16:53:45 ]
- UNIXならまずはシェルスクリプトからはじめてみては?
で、awk&sed、perl、python or rubyと進むとか。
- 352 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 16:57:41 ]
- C/C++のスレで訊かれたなら、やっぱりC/C++と答えるべきか
- 353 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 16:58:14 ]
- C#といってみる
- 354 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 16:59:02 ]
- C++では簡単に出来てJavaでやりにくい事
その逆などを教えて下さい。
- 355 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 17:03:38 ]
- その手の質問はぐぐったほうが丁寧な解説出てくるよ
ここで聞いてもすれ違いのうえ端的だったり極端すぎる答えしか返ってこないよ
- 356 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 17:15:06 ]
- 初心者のためのプログラミング言語ガイド Part7
pc11.2ch.net/test/read.cgi/tech/1200807067/
- 357 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 20:28:22 ]
- 初心者はまずこれを読んで
ポインタを理解すること builder.japan.zdnet.com/sp/c-programming-language/story/0%2C3800083430%2C20370255%2C00.htm これができない奴はC/C++いじるの辞めろ 適正が0かマイナスだ
- 358 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 20:58:48 ]
- >>94
- 359 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 21:22:45 ]
- それ1週間前のネタ
- 360 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 21:50:48 ]
- C++にポインタ排卵だろ
- 361 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 21:57:43 ]
- まあ大部分は排除できるな。
- 362 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 22:21:10 ]
- constメソッドからでもポインタ型メンバの参照先なら操作し放題とか駄目活用している
- 363 名前:238 mailto:sage [2008/04/04(金) 22:32:21 ]
- protectedでstaticな独自クラスの配列の参照の初期化で他のクラスのメンバ変数を与えたいんですが
無理ですよね・・・? もし他のクラスのstatic変数なら大丈夫でしょうか?
|

|