- 1 名前:ぬ ◆NUNUK382Dk mailto:sage [2007/12/27(木) 20:32:47 ]
- エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.45【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1197090562/ 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
- 558 名前:デフォルトの名無しさん [2008/01/10(木) 15:24:55 ]
- cでは変数のアドレスを表示するときに
printf("%p", i); とかやってましたが、これをcout << でやるにはどうすればよいでしょうか?
- 559 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 15:34:09 ]
- >>558
basic_ostream& operator<<(const void*) が定義されてるから、 cout << static_cast<void*>(i); だな。
- 560 名前:デフォルトの名無しさん [2008/01/10(木) 16:04:19 ]
- >>559
ありがとうス。実際は void func(T& a) { cout << static_cast<void *>(&x); ... } としました。
- 561 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 16:13:28 ]
- うわ、ありえねぇ。
- 562 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 16:59:17 ]
- 変数xが1〜6の間ならって表現したいなら
if(1<=x<=6){ でいいのでしょうか?間違ってるなら正しい方法おしえてください・・
- 563 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 17:02:36 ]
- if (1 <= x && x <=6) {
- 564 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 17:35:21 ]
- if (x >= 1 && x <= 6) ;
- 565 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 17:48:21 ]
- switch (x) { case 1: case 2: case 3: case 4: case 5: case 6:
- 566 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 17:53:14 ]
- >>565
xが整数じゃない場合もそれでOKなんですね? ありがとうございました。 これで課題が終わりそうです。
- 567 名前:562 mailto:sage [2008/01/10(木) 17:54:27 ]
- ありがとうございます、そのふたつはどっちでもいいんでしょうか?
- 568 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 17:59:25 ]
- 1が前になったのは、質問者のをそのままコピーしたからだけど
別にどっちでもいい。
- 569 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 18:43:51 ]
- >>566
いいわけねーだろバーカチョーン
- 570 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 18:50:12 ]
- >>566は明らかに嫌味で言ってると思う。
- 571 名前:デフォルトの名無しさん [2008/01/10(木) 20:36:58 ]
- 初心者です。
VisualC++ win32API で、質問なんですが VisualStudioでプログラムを実行したらちゃんと動くのに exeファイルをクリックして実行するとフリーズしたりするのはなぜなんでしょうか?
- 572 名前:448 [2008/01/10(木) 20:42:18 ]
- きたーーーーーー
解決しました。 コンソールアプリ→WINDOWSアプリに設定を変えるタイミングが悪かったみたいです。。 申し訳ありませんでした あと>>456でもらったソースを貼り付ける必要がありました。 とにかく、おかげさまで先へ進めました。レスくれた人たち、まじでありがとうございます。
- 573 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 20:43:16 ]
- >>571
お前の書いたプログラムにバグがあるからだろうと思う
- 574 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 22:17:05 ]
- C言語に限ったことではないのですが、浮動小数点の変数で
float f = 1.0f とすると、その変数型の可能な限り、1.000....となるのでしょうか それとも小数点第2位以下は不定となるのでしょうか
- 575 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 22:19:44 ]
- >>574
精度の範囲で1.000... ってちゃんとしてくれるよ1.0に関してはな!
- 576 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 22:22:49 ]
- 早い返答ありがとうございます。
どういう場合に、まずいことが起こるんでしょう? サンプルコードを見ると、1.fなどはほとんど無く1.0fという数字ばかりなのですが、 もしかして関係してるのでしょうか。
- 577 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 22:31:08 ]
- 0.1 とか2進数で無限小数になるから途中で打ち切られる。
1.f と 1.0f に特に違いは無いが、 言語によっては . で終われない場合もあるので 1.0f で慣れておいた方が良さげ。
- 578 名前:562 mailto:sage [2008/01/10(木) 22:39:57 ]
- すみません、1〜6のときあああって出力して、6〜10ならいいいって出力、それ以外はうううって
出すのってこれでいいんですよね?なんかコンパイルするとエラーがでてしまうのですが・・ void aa(){ if (1 <= x && x <=6) { printf("あああ\n"); } else if(6 < x && x <=10){ printf("いいい\n"); } else{ printf("ううう\n"); } }
- 579 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 22:42:09 ]
- x って何?
- 580 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 22:42:57 ]
- xを定義しなさい
- 581 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 22:47:23 ]
- int x =0;とかを2行目にいれればいいんですか?
- 582 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 22:50:02 ]
- >>578
> なんかコンパイルするとエラーがでてしまうのですが・・ これは「何かが起こったんですが、これは何でしょう?」って言ってるのと同じだ。 ちゃんと質問しろ。
- 583 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 22:50:27 ]
- x をどうやって指定するかを考えれば自ずと分かる
- 584 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 22:51:58 ]
- 何をしたいプログラムなんだ?
int x =0;とか入れればエラーは消えるが ううう しか出んプログラムになるぞ。 入力した数値や計算結果を使って出力を変えたいんじゃないのか?
- 585 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 22:54:53 ]
- 数字の定義は外部というか、プログラムの前の部分でしてあるはずなんです。
二人でやる課題で、xを定義とか入力に応じて帰るとかその辺は違う人がやるので・・
- 586 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 22:56:54 ]
- >>585
どっちにしろ、関数aa()にxを入れなきゃ駄目だろ。
- 587 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 22:59:14 ]
- 外部、例えばmain関数でxが定義されていても、その関数からxを直接参照することはできない。
教科書でローカル変数とかグローバル変数とか調べて見れ。
- 588 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 23:12:47 ]
- ええ、そうなんですか・・・
外部のxを読み込めみたいな命令ってどうやるんでしょうか・・
- 589 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 23:13:45 ]
- >>588
いいから教科書で勉強しなおすんだwwwwwww 引数とかグローバル変数とか分からないの?
- 590 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 23:16:34 ]
- お前は一生1から10まで人に聞いてすごすつもりかw
関数を勉強する最初の授業で習うようなことなんだから、ノートを見直して来い。 ノート取ってないなら教科書の関数のページ開いて嫁。
- 591 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 23:25:19 ]
- 教科書は一応あるけど何を言ってるのかよくわからないです。
外部の変数どう読み込むかって書いてないような・・
- 592 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 23:40:36 ]
- そうだ、諦めよう!
- 593 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 23:47:01 ]
- >>591
ITMediaの記事で ジャストのおっさんが 人に聞くのがコミュニケーション能力かつ 正しい成長方法だっていったぞボケ
- 594 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 23:51:30 ]
- warata
全く勉強しないで終わらせる気なのか?
- 595 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 23:53:23 ]
- void aa(){
extern int x; if (1 <= x && x <=6) { printf("あああ\n"); } else if(6 < x && x <=10){ printf("いいい\n"); } else{ printf("ううう\n"); } }
- 596 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 23:55:13 ]
- >>593
聞いた事を元に、それなりに自分で考える時間も取らないと身に付かん。
- 597 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 00:11:54 ]
- ありがとうございます。そんなコマンドあったのですね・・・
ご迷惑おかけしました
- 598 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 00:23:25 ]
- formが出たときに何ができるのか分からないです。
OS:windowsXP
- 599 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 00:39:42 ]
- エスパー様、>>598がお呼びです。
- 600 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 00:59:14 ]
- 自分で試せばいいのかもしれないですが、その力がないですorz
正確な測定方法でも良いのでご教示ください Cとなんでもよいのですが、例えばC#やVB ある文字列の中身の特定文字列を検索する場合だとします。 AEFASDEAEASDDという文字列があった中でDEAを検索する場合 Cならばまず文字列内を一文字ずつループでDを検索し、見つかればその直後にE、その直後にAと探していき 発見することができますが、C#やVBでは文字列の検索機能(メソッド?)があります 一見ループと条件分岐とメソッドの呼び出しになるのでどうしても前者がはやいとは思えません ですが実際は前者がはやいのでしょうか?
- 601 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:02:33 ]
- strstrでも使っとけ
- 602 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:02:57 ]
- メソッドの方が多分ネイティブルーチン呼んでるから速いと思う。
- 603 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:04:44 ]
- >>600
何故そう思うのですか? 或いは、何故Cならば検索する関数がないと思うのですか?
- 604 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:05:05 ]
- >>602
んなこたーない。
- 605 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:08:08 ]
- ああ、C と C# の比較か。
それなら C が速いんでないかい。
- 606 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:08:13 ]
- >>604
お前の頭の悪さと 醜悪な固定観念にワロタw
- 607 名前:604 mailto:sage [2008/01/11(金) 01:10:08 ]
- >>606
正解は、「一概には言えない」となる。 従って、「メソッドの方が云々」なんてくだらない思い込みに対しては「んなこたーない」で充分。
- 608 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:11:29 ]
- そういう事を言えるのは、一概には言えないことを確かめてからだな。
- 609 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:11:39 ]
- >>599
C++buridaの話なんですけど フォトショをつなげると何かあるんでしょうか。
- 610 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:12:05 ]
- C++ぶりだ?
- 611 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:12:06 ]
- 文字の検索アルゴリズムはちょっと面白い。興味があったら色々調べて見なさい。
- 612 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:13:13 ]
- BM法と単純検索以外なんもねーだろ
あとはつまんねー長たらしい正規表現か
- 613 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:13:43 ]
- KMP とかもあるお
- 614 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:17:32 ]
- >>609
エスパー求む!
- 615 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:19:39 ]
- 僕に合った良い病院はないでしょうか。
- 616 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 02:16:32 ]
- >>585
二人でやる課題なのに、各自の担当部分のインタフェース(データの受け渡し方法)を取り決めないのか? それじゃ仮に君がC/C++の文法を理解していたとしても無理だ。
- 617 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 02:25:59 ]
- >>609
正直な話、あんたが何を言っているか本気でわからん。 「C++burida」でググってみたらTOPに「ダイコンの豆知識」がでてきたぞ。 PhotoShopをつなげるというのも意味不明、何につなげるんだ? そもそもPhotoShopはソフトウェアの名称で、つなげるという動詞を使うことは中々無いと思う。 >>598時点でのformに関してもあまりにも抽象的な単語で何を意味しているか不明。 順番に端折らずに、お前の聞きたいことを丁寧に書き込むんだ。 すれ違いならエロい人が誘導してくれる。
- 618 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 03:07:11 ]
- 大根に危うく吹きそうになった。そんなもん調べんなw
- 619 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 03:18:16 ]
- プログラマ的に言うとPhotoShopなんてソフトウェアはない
- 620 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 03:27:41 ]
- >>619
はいはい
- 621 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 03:28:53 ]
- 鰤大根かw
- 622 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 03:47:27 ]
- そういえばこの冬はまだ一度も作ってないな。
- 623 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 04:05:52 ]
- >>617
C++BuilderとFormはまあ判った。 フォトショとは何なのか(Photoshopとしても何の関係があるのか)判らん。 もちろん、何を質問しているのかなど全然判らん。
- 624 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 08:06:56 ]
- CorelDRAWはVBAで制御できたよ('(゚∀゚∩
今のバージョンは知らんが
- 625 名前:デフォルトの名無しさん [2008/01/11(金) 12:33:03 ]
- STLの中で、make_heap()などのヒープ関連のアルゴリズムの
意味がわかりません。適当なコンテナにmake_heap(begin,end)すると、 先頭に一番大きい要素がくる、それだけなんですよね? それじゃあ、make_heap()とか、存在している意義がないような。
- 626 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 13:08:25 ]
- >625
「それだけ」ではないです。ヒープというデータ構造について調べてみるといいよ。
- 627 名前:デフォルトの名無しさん [2008/01/11(金) 13:51:39 ]
- >>626
調べてみると、 ヒープというデータ構造は、データの中から最大(最小)値を取り出すのに いいということがわかりました。 make_heap(begin,end) pop_heap()begin,end) make_heap(begin,end-1) pop_heap()begin,end-1) make_heap(begin,end-2) pop_heap()begin,end-2) ... で、ヒープソート相当のことをできるんですね。 でも自分では使いそうにないなあ。
- 628 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 14:17:30 ]
- STLのlistでコンテナの入れ替え(コンテナの中身ではない)を
する方法ってありますか?
- 629 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 14:24:57 ]
- >>628
その「コンテナの入れ替え」を定義してください。
- 630 名前:デフォルトの名無しさん [2008/01/11(金) 14:32:04 ]
- 型の違うもの同士の比較について教えてください。
structure_card_information card_information; unsigned char card_idm[8]; unsigned char card_pmm[8]; card_information.card_idm = card_idm; card_information.card_pmm = card_pmm; //カード情報の読み込み処理 //読み込み結果の表示 print_vector("card PMm:", card_pmm, sizeof(card_pmm)); //初回起動ならIDmをfile.txtの先頭に入力する fp = fopen("file.txt","r"); char *c; //cの中にfpの一文字目が入る fgets(c,1,fp); fclose(fp); //他のカードで端末に接触したとき接触したカードのidmを追加登録する if(c != card_idm){ print_vector("card IDm:", card_idm, sizeof(card_idm)); //カードへの書き込み処理を行う というプログラムを作っています。 読み込んだcard_idmというものがchar型のcと違う場合カードへの書き込み処理をする というプログラムにしたいのですがcard_idmというものはchar型ではないのでどのように比較処理をすればいいのかわかりません。 どのように比較すればいいのでしょうか。もしよろしければ教えてください。
- 631 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 14:39:38 ]
- if(strncmp(c,card_idm,strlen(c)){
hogehoge; }
- 632 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 14:42:43 ]
- >>630
一年諦めて、まともにCを勉強してから卒研に取り組んだら? fgets()の使い方が阿呆すぎて話にならないんだけど。
- 633 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 14:55:14 ]
- ポインタもまったく理解できてないな
- 634 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 15:15:15 ]
- >>628
swapのことか?ならSTLコンテナ全て持ってる。
- 635 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 15:37:11 ]
- >>629
コンテナの連結状態を変えたいんです >>634 swapだと中身のコピーによる値の入れ替えになるんじゃないでしょうか? 例えばlistのコンテナが 1,2,3,4,5 と繋がってる場合に、3,4,5 を切り離して、 1と2の間に挿入し、1,4,5,6,2 という形にしたい場合に、中身の入れ替えでは なく、コンテナの連結先のみを書き換えることで行う方法が無いかを知りたい のですが。
- 636 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 15:40:09 ]
- 訂正
1,4,5,6,2 ではなく、1,3,4,5,2
- 637 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 15:47:00 ]
- >>635
splice
- 638 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 16:02:13 ]
- >>635
ならspliceメンバー関数だな
- 639 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 16:04:20 ]
- 現在VS2008のC++でコンソールアプリケーションを弄っていますが、
_beginthreadexでルーチンを呼び出してもメインスレッドで処理されてしまいます。 どなたかお助けくらさい。。。
- 640 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 16:06:25 ]
- 普通はそうならないので、ソース見せてよ
|

|