1 名前:デフォルトの名無しさん mailto:age [2007/07/24(火) 23:17:11 ] C言語の入門者向け解説スレです。 ・C++言語はスレ違いです。 ・分からない事をなるべく詳しく書いて下さい。 ・ソースコードを晒すと答えやすくなるかもしれません。 ・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 前スレ C言語なら俺に聞け(入門篇) Part 16 pc11.2ch.net/test/read.cgi/tech/1184003625/ 教えて欲しいのではなく丸投げしたいならこちらへ C/C++の宿題を片付けます 93代目 pc11.2ch.net/test/read.cgi/tech/1184506311/
402 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 01:14:47 ] sizeofをどう使ってたんだ?
403 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 01:15:34 ] >>400-401 邪魔
404 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 01:18:15 ] >>402 ポインタに使ってばぐったんだろ。
405 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 01:19:16 ] だから他の関数も最初から晒(ry
406 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 01:20:40 ] >gdbをするには、gcc -g program.cをすればいいですよね? >windows XP、bccを使っています。 質問される方の身になってください。 類似例 www.nicovideo.jp/watch/sm8005
407 名前:デフォルトの名無しさん [2007/08/04(土) 06:45:47 ] >>403 お前も邪魔。いちいちうるせー
408 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 13:11:15 ] >>407-408 邪魔
409 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 16:56:50 ] 質問ですが、 int main() { int w; printf("0から6までの整数を入力してください!\n"); scanf("%d",&w); switch (w) { case 0: printf("日曜日です。\n"); break; case 1: printf("月曜日です。\n"); break; case 2: printf("火曜日です。\n"); break; case 3: printf("水曜日です。\n"); break; case 4: printf("木曜日です。\n"); break; case 5: printf("金曜日です。\n"); break; case 6: printf("土曜日です。\n"); break; default:printf("???\n"); } return 0; } の4行目のscanfで("%d\n",&w)と間違えて打ったら2度入力が求められ、 結果には、1回目の入力が反映されました。なぜでしょうか? 使っているコンパイラはborland c++ 5.5.1で、OSはビスタです。
410 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 17:06:32 ] >>409 scanf()は、エラーの場合、そのデータが取り除かれないで、入力ストリームに残ったままになるから。 エラー処理をしっかりしたかったら、scanf()は使わないほうがいいよ。
411 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 17:09:29 ] >>409 scanfは"%d\n"の書式に合う文字列を入力したあとに改行が押されるまで待ってる つまり1回目の改行は書式の中で要求されてるからそっちで使われていて2回目の改行でscanfが終了できる
412 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 17:16:33 ] >>410 , >>411 す、素早い! ありがとうございます。勉強になった。
413 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 17:40:34 ] scanf("%d\n", &w) の場合、%d と \n の2個分の入力が要る。
414 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 19:58:53 ] マクロでこうゆうのは有りですか?(使われていたりしますか?) ※VFuncは動的引数持ちの関数 #define MACRO_HOGE(inA, inB) inA = VFunc inB -使用例----------------------------------- void main(void){ int V; MACRO_HOGE(V, (A, B, C)); } 例は適当に書きましたがようするにMACRO_HOGEの第2引数に"()"付きで複数の引数を書き並べることについてです。
415 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 20:08:35 ] なんでまたそんなことをしたいと?
416 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 20:09:58 ] >>414 (コーディング規約などで制限されていない限り)誰も止めはしないと思うよ。 デバッグ出力用途で時折見掛けるしね。
417 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 20:24:59 ] >>414 ×こうゆう ○こういう
418 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 20:29:40 ] >>415 引数の数が不定の関数に対するマクロを作る必要がありました。 マクロの内容も実際には複数行にわたっており、その中でin_Aの値を使用するためこのような形になってしまっています。 >>416 製品に組み込まれるソースではなく、社内でデバック用に開発メンバーのみで使用するものです。 他のところでも使われているようでちょっと安心しました。 ありがとうございました。 >>417 「・・・・・・・・・・・・・・・・・・。」
419 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 20:51:59 ] >>414 c99で可変長引数のマクロつかえば.
420 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 21:10:38 ] > >>417 > 「・・・・・・・・・・・・・・・・・・。」 ガキか
421 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 22:06:47 ] int *p; は、「intへのポインタ」ってことらしいけど 「ポインタが指している変数の型がint」ってこと?
422 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 22:14:55 ] うん。 int *p; は *p が int になる。
423 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 22:23:24 ] サントス 噂に聞いていたがポインタは難しい…
424 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 22:44:18 ] 難しいと思ってるから難しいんだよ。一度分かれば何が難しかったのか理解するのが難しくなる
425 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 23:02:18 ] ポインタは、変数の置いてある場所を入れておくもの。 置いてある場所が分かれば、そこにある値も操作できるはず。
426 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 23:06:34 ] とにかくいろいろ読んだり組んだりしなきゃダメだな がんばるぜ じゃーの
427 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 23:28:58 ] fopenでファイルがオープンされなかったらNULLが返ってくるけど rはファイルがなかった場合などが挙げられる。 じゃーwだったらどういうときにそうなるの?
428 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 23:31:34 ] >>427 存在しないディレクトリだとか。
429 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 23:31:41 ] 書き込みロックされてる場合とか
430 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 23:32:17 ] ディレクトリを fopen しようとした時とか
431 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 23:57:35 ] ファイルの作成をOSに拒否されたときとか
432 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 00:14:17 ] ファイルの開き過ぎとか
433 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 00:18:56 ] How many files(0-15)?
434 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 05:58:56 ] ファイルを書き込むのに十分な空き容量がないとか 書き込めない場所への書き込みをしようとしたとか
435 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 06:30:36 ] ディレクトリに書き込み権限がないとか。 って、切りがないよw
436 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 06:42:56 ] 入れる穴がないからといって後ろの(ry
437 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 12:31:35 ] アッーー!
438 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 13:17:12 ] なるほど。勉強になった。 fopen・fcloseをちゃんとしてれば、その一連は何度もループできるの? それとも上限回数とかあったりするの?
439 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 13:55:08 ] 容量は有限なんだから、書き込みで新しいファイルを作っていけばいつかは上限に達する。
440 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 14:02:14 ] しかし、既にあるファイルを開いて閉じてなら、永遠に繰り返していい。
441 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 14:45:00 ] できました〜。ありがとうございます。
442 名前:デフォルトの名無しさん [2007/08/05(日) 18:21:27 ] 無償リンクソフトは無いのでしょうか? もし無いのであれば有名なリンクソフトを教えて頂けないでしょうか?
443 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 18:23:35 ] リンクソフトって何のことよ? リンカーのことなら、GNU ld か? 目的を書いた方がいいと思うよ
444 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 18:24:14 ] コンパイラ入れたら大抵リンカも入ってるだろ
445 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 21:01:14 ] 質問ですが 「C言語のプログラムをアセンブリ・コードに変換せよ」 という課題が出されたのですが、変換するツールのようなものはありますか?
446 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 21:03:45 ] あります。
447 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 21:04:46 ] コンパイラで出来たような気がする
448 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 21:05:32 ] コンパイラがやってくれる gcc なら -S オプションつけてコンパイルしてみ