07/08/04 01:15:34
>>400-401
邪魔
404:デフォルトの名無しさん
07/08/04 01:18:15
>>402
ポインタに使ってばぐったんだろ。
405:デフォルトの名無しさん
07/08/04 01:19:16
だから他の関数も最初から晒(ry
406:デフォルトの名無しさん
07/08/04 01:20:40
>gdbをするには、gcc -g program.cをすればいいですよね?
>windows XP、bccを使っています。
質問される方の身になってください。
類似例
URLリンク(www.nicovideo.jp)
407:デフォルトの名無しさん
07/08/04 06:45:47
>>403 お前も邪魔。いちいちうるせー
408:デフォルトの名無しさん
07/08/04 13:11:15
>>407-408
邪魔
409:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/08/04 17:06:32
>>409
scanf()は、エラーの場合、そのデータが取り除かれないで、入力ストリームに残ったままになるから。
エラー処理をしっかりしたかったら、scanf()は使わないほうがいいよ。
411:デフォルトの名無しさん
07/08/04 17:09:29
>>409
scanfは"%d\n"の書式に合う文字列を入力したあとに改行が押されるまで待ってる
つまり1回目の改行は書式の中で要求されてるからそっちで使われていて2回目の改行でscanfが終了できる
412:デフォルトの名無しさん
07/08/04 17:16:33
>>410, >>411
す、素早い!
ありがとうございます。勉強になった。
413:デフォルトの名無しさん
07/08/04 17:40:34
scanf("%d\n", &w) の場合、%d と \n の2個分の入力が要る。
414:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/08/04 20:08:35
なんでまたそんなことをしたいと?
416:デフォルトの名無しさん
07/08/04 20:09:58
>>414
(コーディング規約などで制限されていない限り)誰も止めはしないと思うよ。
デバッグ出力用途で時折見掛けるしね。
417:デフォルトの名無しさん
07/08/04 20:24:59
>>414
×こうゆう
○こういう
418:デフォルトの名無しさん
07/08/04 20:29:40
>>415
引数の数が不定の関数に対するマクロを作る必要がありました。
マクロの内容も実際には複数行にわたっており、その中でin_Aの値を使用するためこのような形になってしまっています。
>>416
製品に組み込まれるソースではなく、社内でデバック用に開発メンバーのみで使用するものです。
他のところでも使われているようでちょっと安心しました。
ありがとうございました。
>>417
「・・・・・・・・・・・・・・・・・・。」
419:デフォルトの名無しさん
07/08/04 20:51:59
>>414
c99で可変長引数のマクロつかえば.
420:デフォルトの名無しさん
07/08/04 21:10:38
> >>417
> 「・・・・・・・・・・・・・・・・・・。」
ガキか
421:デフォルトの名無しさん
07/08/04 22:06:47
int *p;
は、「intへのポインタ」ってことらしいけど
「ポインタが指している変数の型がint」ってこと?
422:デフォルトの名無しさん
07/08/04 22:14:55
うん。
int *p; は *p が int になる。
423:デフォルトの名無しさん
07/08/04 22:23:24
サントス
噂に聞いていたがポインタは難しい…
424:デフォルトの名無しさん
07/08/04 22:44:18
難しいと思ってるから難しいんだよ。一度分かれば何が難しかったのか理解するのが難しくなる
425:デフォルトの名無しさん
07/08/04 23:02:18
ポインタは、変数の置いてある場所を入れておくもの。
置いてある場所が分かれば、そこにある値も操作できるはず。
426:デフォルトの名無しさん
07/08/04 23:06:34
とにかくいろいろ読んだり組んだりしなきゃダメだな
がんばるぜ
じゃーの
427:デフォルトの名無しさん
07/08/04 23:28:58
fopenでファイルがオープンされなかったらNULLが返ってくるけど
rはファイルがなかった場合などが挙げられる。
じゃーwだったらどういうときにそうなるの?
428:デフォルトの名無しさん
07/08/04 23:31:34
>>427
存在しないディレクトリだとか。
429:デフォルトの名無しさん
07/08/04 23:31:41
書き込みロックされてる場合とか
430:デフォルトの名無しさん
07/08/04 23:32:17
ディレクトリを fopen しようとした時とか
431:デフォルトの名無しさん
07/08/04 23:57:35
ファイルの作成をOSに拒否されたときとか
432:デフォルトの名無しさん
07/08/05 00:14:17
ファイルの開き過ぎとか
433:デフォルトの名無しさん
07/08/05 00:18:56
How many files(0-15)?
434:デフォルトの名無しさん
07/08/05 05:58:56
ファイルを書き込むのに十分な空き容量がないとか
書き込めない場所への書き込みをしようとしたとか
435:デフォルトの名無しさん
07/08/05 06:30:36
ディレクトリに書き込み権限がないとか。
って、切りがないよw
436:デフォルトの名無しさん
07/08/05 06:42:56
入れる穴がないからといって後ろの(ry
437:デフォルトの名無しさん
07/08/05 12:31:35
アッーー!
438:デフォルトの名無しさん
07/08/05 13:17:12
なるほど。勉強になった。
fopen・fcloseをちゃんとしてれば、その一連は何度もループできるの?
それとも上限回数とかあったりするの?
439:デフォルトの名無しさん
07/08/05 13:55:08
容量は有限なんだから、書き込みで新しいファイルを作っていけばいつかは上限に達する。
440:デフォルトの名無しさん
07/08/05 14:02:14
しかし、既にあるファイルを開いて閉じてなら、永遠に繰り返していい。
441:デフォルトの名無しさん
07/08/05 14:45:00
できました~。ありがとうございます。
442:デフォルトの名無しさん
07/08/05 18:21:27
無償リンクソフトは無いのでしょうか?
もし無いのであれば有名なリンクソフトを教えて頂けないでしょうか?
443:デフォルトの名無しさん
07/08/05 18:23:35
リンクソフトって何のことよ?
リンカーのことなら、GNU ld か?
目的を書いた方がいいと思うよ
444:デフォルトの名無しさん
07/08/05 18:24:14
コンパイラ入れたら大抵リンカも入ってるだろ
445:デフォルトの名無しさん
07/08/05 21:01:14
質問ですが
「C言語のプログラムをアセンブリ・コードに変換せよ」
という課題が出されたのですが、変換するツールのようなものはありますか?
446:デフォルトの名無しさん
07/08/05 21:03:45
あります。
447:デフォルトの名無しさん
07/08/05 21:04:46
コンパイラで出来たような気がする
448:デフォルトの名無しさん
07/08/05 21:05:32
コンパイラがやってくれる
gcc なら -S オプションつけてコンパイルしてみ