- 1 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 20:41:54 ]
- C言語の*入門者*向け解説スレッドです。
初心者、初級者の方は他の質問スレのほうが良いかもしれません。 教えて欲しいのではなく宿題を丸投げしたいだけなら ↓宿題スレ↓へ行ってください。 C/C++の宿題片付けます 130代目 pc12.2ch.net/test/read.cgi/tech/1250204272/ ・C++言語はスレ違いです。 ・分からない事をなるべく詳しく書いて下さい。 ・ソースコードを晒すと答えやすくなるかもしれません。 # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること # サイズが大きい場合は宿題スレのアップローダ等を利用してください ・開発環境や動作環境も晒すと答えが早いかもしれません。 ・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 前スレ C言語なら俺に聞け(入門篇) Part 53 pc12.2ch.net/test/read.cgi/tech/1253110182/ 過去スレ makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000
- 500 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 13:59:53 ]
- アホか。
ゾンビプロセスが増えただけで、カーネルは落ちてないだろ。 死ねよマルエツマカ。
- 501 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 14:01:28 ]
- コンパイルできない
- 502 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 14:01:28 ]
- >>498
はいはい、面白い面白い。 これで満足?
- 503 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 14:14:13 ]
- >491
間違っている部分は、直してあげた方がいいのか。 >498 俺様fork()ならたぶんコンパイルできると思うけど、一般的なfork()ではコンパイルできないと思われる。
- 504 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 14:26:38 ]
- またマルエツマカが荒らしてる
- 505 名前:485 [2009/10/18(日) 14:38:59 ]
- 全角はたまたまみすた
oshiete1.goo.ne.jp/qa1538277.html ぐぐったけどたぶんこういうことだとオモワレ。 それにしても自動改行ってなんだ?・・・
- 506 名前:485 [2009/10/18(日) 14:42:58 ]
- 全角はたまたまミスた
oshiete1.goo.ne.jp/qa1538277.html ググったけどたぶんこういうことだと思われ。 それにしても自動改行ってよくわからん
- 507 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 14:54:14 ]
- コード貼れっつーの。
勝手に改行なんてしねえよ。 何かミスってるだけだろ。
- 508 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 15:13:54 ]
- >>506
どうやって改行してることを確認したかってのはまさにそのことが知りたかったのだけど。 使ってるエディタやコントロールが、自動で折り返したんじゃないかと。 だからファイルに出力したらダンプやバイナリエディタで改行コードが入ってるのか調べてみなさいよ、と。
- 509 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 17:59:04 ]
- Q1:
QUESTION1; ←ヘッダーにあるdefineで問題呼び出し fgets (buf, sizeof (buf), stdin); sscanf (buf, "%d", &ans); if (1 <= ans && ans <= 3 ){ if (ans == 2){ printf("正解\n"); point++; }else{ printf("はずれ\n"); } }else{ printf("1〜3の数字おして。もっかい。\n"); goto Q1; } Q2: ans = 0; QUESTION2; 以下ループ 3択クイズ形式学習プログラムを作ったのですが、fgets→sscanfのところで数字を入力してEnterを押すと、 次の問題のif文のelseが1度実行される(1〜3を押せエラー→Gotoで問題が2回表示される)のですが、 なぜそうなるのかわからず対処できません。 単純にエンターを1回押してるのに入力を2回(複数回)受け付けてるだけなんでしょうか・・? もし、そうならどのように対処すればいいのでしょうか。
- 510 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 18:14:28 ]
- これの前後の部分に問題ありってことだね。
「問題」ってのは question じゃなくて problem な。
- 511 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 18:17:07 ]
- >>510
? 3択クイズの問題 = question
- 512 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 18:28:28 ]
- すげえ読解力だな。
- 513 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 20:10:08 ]
- const char * name[] = {"aaa" , "bbb" , "ccc" , "ddd" , "eee" , "fff"};
このとき、 name の要素数を取得するにはどうすれば良いでしょうか?
- 514 名前:513 mailto:sage [2009/10/18(日) 20:12:38 ]
- すみません。
ちょっと撤回します。 失礼しました。
- 515 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 20:23:19 ]
- >>119の
for (cnt = 0; cnt < no; ++cnt) {}の方が見慣れてるって本当? 入門書ってだいたい for(cnt = 0; cnt < no; cnt++){}ってかいてあるけど
- 516 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 20:32:56 ]
- >>515
「見慣れてる」ってのは0からカウントするってところだろ。
- 517 名前:デフォルトの名無しさん [2009/10/18(日) 20:47:42 ]
- > cnt++
その世代に言わせると整数は i だろ
- 518 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 20:54:28 ]
- cntならiのほうがいいな。
- 519 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 21:06:16 ]
- >>515
C++の流儀だな。 cnt++より++cntの方が、オブジェクトを生成しない分高速。
- 520 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 21:36:59 ]
- >>496
できました ありがとうございました
- 521 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 21:37:46 ]
- usage: command.exe 〜みたいなコマンドのヘルプを表示させるとき、決まった構文ルールはあるの?
省略可能なオプションは[]とか、必須オプションは<>とか。
- 522 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 21:48:53 ]
- 正規表現の簡易型みたいな感じだろ。
- 523 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 23:24:16 ]
- char型の変数の中身を参照するときに文字コードとして扱いたいときは
if(moji[0] == 115) のような形でいいんでしょうか?
- 524 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 23:28:04 ]
- はい
ただし char は符号付きの場合があるので 128 以上の値の扱いに気をつけて
- 525 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 02:08:01 ]
- stdinの中身を確認する方法ないですか?
空かどうかわかるだけでもいいです。
- 526 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 02:19:08 ]
- >>525
環境依存しない方法は無い
- 527 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 02:19:32 ]
- 空とはどういう状態か?
- 528 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 02:25:11 ]
- feof() 辺りかな?
つーか、これを使う機会って無いよな。
- 529 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 02:27:10 ]
- ああ、もしかして stdin の接続先のことなのかな?
質問が曖昧で難しいな。
- 530 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 02:29:10 ]
- エスパーに期待してるんだよ
- 531 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 02:37:59 ]
- 「中身」ってなんだよ?
普通に getchar() で読めば良いだろ。
- 532 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 03:21:48 ]
- エスパーすると、kbhit
- 533 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 03:33:50 ]
- 入力した数字が素数かどうか判別するプログラム作ったんだけど2と3が判別できない
どこが違ってる? for(b = 2 ; b<=a/2 ; b=b+1){ if(a%b == 0){ printf("%dは素数ではありません。" ,a); break; } else { printf("%dは素数です。" ,a); break; } }
- 534 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 03:45:08 ]
- 判別の基準が間違ってる。
- 535 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 03:50:45 ]
- 4とか5なら判別できるのか?それ
- 536 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 03:53:19 ]
- 9とか15とか
- 537 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 04:16:55 ]
- b = 2 ; b<=a/2
ってaが2や3の時はね
- 538 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 04:43:11 ]
- ループの意味がないw
- 539 名前:デフォルトの名無しさん [2009/10/19(月) 06:47:26 ]
- ||って一つ目左が真なら右の判定を行うってこと?
偽なら右判定はしないのか?
- 540 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 06:56:31 ]
- ||は左が真の時点で右の判定を行わない。
&&は左が偽なら右の判定を行わない。
- 541 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 07:24:30 ]
- ありがとう
- 542 名前:525 mailto:sage [2009/10/19(月) 07:49:18 ]
- void sgets(char *buf,int n)
{ int i; char c; for(i=0;i<n;i++){ c=getchar(); if(c=='\n'){ break; } buf[i]=c; } /*入力バッファを空読みする*/ if(i==n){ while(getchar()!='\n'); } /*文字数が一文字以外は最後に'\n'を加える*/ if(i!=1){ buf[i]=NULL; } } 525です。 上の関数を呼び出した後、入力バッファが空読みされたかどうかをmainで確認 する方法を教えてください。
- 543 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 08:31:14 ]
- >542
ひどいコードだ
- 544 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 09:04:39 ]
- >>542
空読みする方法は無いと思え。 初心者なら尚更
- 545 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 17:00:38 ]
- 再帰を使わないで処理する方法はありますか?
- 546 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 17:04:12 ]
- >再帰を使わないで処理する方法はありますか?
再帰を使わないで処理する方法はないと思うのですか?
- 547 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 17:15:05 ]
- >>542
EOFで確認するとか?
- 548 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 17:31:13 ]
- 総ての再帰は展開できるはずなんだっけか
- 549 名前:デフォルトの名無しさん [2009/10/19(月) 17:35:27 ]
- 再帰ってなんですか?
まだ勉強をはじめたばかりなのでわかりません。
- 550 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 17:41:03 ]
- void func()
{ func(); } ↑みたいなのが再帰です
- 551 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 18:00:31 ]
- 数学的帰納法のなかまです
- 552 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 18:02:56 ]
- >>547
EOFは読もうとしないと意味がない。 従って、入力が空かどうかは「読み出そうとしたときは空だったかどうか」わかるというだけ。
- 553 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 20:05:40 ]
- 箱の中の猫は見ようとしたときだけ生きてるか死んでるかわかるというだけ。
- 554 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 20:06:13 ]
- うぜえよお前。
- 555 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 20:32:04 ]
- >>553
え? 見ようとしなければ生きてるか死んでるか分からないが、どっちかだと言っている?
- 556 名前:デフォルトの名無しさん [2009/10/19(月) 21:30:11 ]
- 箱の中の猫に心拍計を取り付けて、遠隔でモニタすれば箱を開けなくても生死の別は判断可能
- 557 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 21:33:23 ]
- それは箱に覗き窓が付いてるのと同じこと
- 558 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 21:37:54 ]
- それが量子的な現象の影響だとしても
確率的だと言うのはマクロスケールでは現実的ないと思うよ
- 559 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 21:55:52 ]
- >>547
改行まで空読みしてるだけだろ? なんでEOFが関係あるんだ。 上のほうの「空読みする方法はない」とか、なんか空読みが 別のものと勘違いされる。
- 560 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 22:10:25 ]
- 542にEOFのチェックがないんだけど
- 561 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 22:15:03 ]
- >>556
心拍計が壊れている可能性がある 心拍計が正常かどうかを確かめる装置を用意してもそれが壊れているかもしれない 以下無限ループ
- 562 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 22:25:16 ]
- つサーモグラフィー
- 563 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 22:29:49 ]
- だからそういう話しじゃないが
サーモグラフィーで観測した瞬間に猫の生死状態が確定するというお話。
- 564 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 23:25:35 ]
- そもそも箱の中に猫が存在しているかどうかや箱の中に猫が入るような空間が本当に存在しているかどうかなんかも観測しなければ未確定。
- 565 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 23:35:50 ]
- 物理板でやれぼけども
- 566 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 23:39:09 ]
- 物理学者とは犬猿の仲だろjk
- 567 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 23:42:03 ]
- >>565
×ぼけども ○ぼけ ×物理板 ○50代板
- 568 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 00:30:25 ]
- そのジョーク、いまいち面白くない。
- 569 名前:デフォルトの名無しさん [2009/10/20(火) 00:37:05 ]
- ぼけは、私が見ているときにしか、そこにいないのか
- 570 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 00:47:18 ]
- じゃあ人間が箱の中に入れば良いだろ馬鹿が
- 571 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 01:49:45 ]
- >>559
お前こそ質問者の意図を分かってるか? 要するに、これを訊いてるわけ www.nurs.or.jp/~asada/FAQ/UNIX/section4.2.html
- 572 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 02:00:05 ]
- それを訊いてるんじゃないでしょ?
> 実際に文字を読み込まずに読む文字があるかどうか確かめ られたかどうかを訊いてるんじゃないの
- 573 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 03:35:23 ]
- #if defined(DEBUG) | defined(_DEBUG)
と #if defined(DEBUG) || defined(_DEBUG) の違いってわかります?要は|と||なんですが。。。
- 574 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 04:16:52 ]
- × Apple II
○ Apple ][
- 575 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 04:22:40 ]
- Xeno091017 正式版
koreawatcher.at.infoseek.co.jp/janexeno.htm ・正式版として最初のリリース。 ・Jane終了時の挙動のみ091015試作品から変更された。 ─────────────────────── 予告どおり、正式版をリリースしました。×ボタンのツールチップ ヒントに関して、真魚のソースを参考にして修正を試みました。 JaneNidaの開発は事実上終了です。2chの仕様変更などで 対応するかもしれません。
- 576 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 05:27:19 ]
- >>575
ttp://pc12.2ch.net/test/read.cgi/tech/1254829314/ こいつ、ここでも宣伝していやがる。 こりゃあ通報かな。
- 577 名前:576 mailto:sage [2009/10/20(火) 05:28:53 ]
- ttp://pc12.2ch.net/test/read.cgi/tech/1254746834/
ごめんこっちだった。
- 578 名前:525 mailto:sage [2009/10/20(火) 07:45:46 ]
- 525です。
いろいろ回答ありがとうございます。 自分の意図としては>>571で言っている通りで、それをmainで確かめる 方法を探していたんですけど、難しいのであきらめて違う方法を探してみます。 わかりづらい質問ですいませんでした
- 579 名前:523 mailto:sage [2009/10/20(火) 12:05:26 ]
- >>524
ありがとうございます unsigned charを使えば問題なさそうでした トリップ生成プログラムなんかを試しに作ってみたいんですがgccでコンパイルしたところ以下のエラーが出ます trip.c:36: error: parse error before "salt" trip.c:79: error: incompatible types in assignment 79行目のエラーに関してはきっと自分がcrypt関数についてよくわかってないだけな気がするんですが、 36行目のエラーの原因がいまいちわかりません 今までこういう構文エラーの原因は大体前の行に;を忘れていたくらいだったのですが・・・ ttp://f50.aaa.livedoor.jp/~iwazaki/uploader/src/up4250.bin どうかよろしくお願いします
- 580 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 12:09:56 ]
- > else(salt[i] == '`')
このような構文は無い elseに条件式は付かない
- 581 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 13:23:33 ]
- >>573
|はビット演算のORで||は論理演算のORじゃなかろか
- 582 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 13:35:35 ]
- ][ 表記は10kBASICからだな
- 583 名前:579 mailto:sage [2009/10/20(火) 14:01:41 ]
- >>580
参考書引っ張ってきて読んだのにこんなミスするなんて・・・ どうもありがとうございました
- 584 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 15:18:47 ]
- >>581
俺もそう思う。 上は必ず両辺が評価され、下は必ずしも両辺が評価されないという差も出てくるが、 それがこの場合にどう影響するかがわからん
- 585 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 15:30:56 ]
- 事実上、全く同じだね。
- 586 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 21:38:46 ]
- 3項演算子に空文は使えないんですか。そういう場合はif文で冗長にやるしかないんですか
(aaa == bbb) ? flag = true : ; ;
- 587 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 21:52:35 ]
- >>586
flag = (aaa == bbb) ? true : flag ; というかそこに代入処理を書くのはif文が冗長だと思える人から見てスマートな記述なの?
- 588 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 21:54:45 ]
- (aaa == bbb) ? flag = true : 0 ;
- 589 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:04:25 ]
- いまどきのコンパイラなら3項演算子もif文(処理が一行)もかわらない
ってことはないですか?
- 590 名前:デフォルトの名無しさん [2009/10/20(火) 22:12:38 ]
- コンパイラの短縮処理は異常
- 591 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:19:44 ]
- >>589
「かわらないから、読みやすいifのほうがいいじゃん」ってこと?
- 592 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:27:14 ]
- 短い場合は3項のほうがifより見やすい俺
- 593 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:32:57 ]
- 今読んでるOCamlの本は、
if x < 30 then kihonkyu + x * jikyu else kihonkyu + x * yugu_jikyu より kihonkyu + x * (if x < 30 then jikyu else yugu_jikyu) のほうを薦めてるな。
- 594 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:45:51 ]
- >>593
そここそ3項演算子だと思うが、その本ではifですか
- 595 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:48:44 ]
- OCamlっていう言語だたのね。
3項演算子が無い言語ってことかな。
- 596 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:50:59 ]
- 値を持ってるifと条件演算子は同じだろ。
- 597 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:52:57 ]
- >>593
これ見て「うわifだ、条件演算子がない言語って不便ね」みたいな 感想をもつやつは、たぶん条件演算子も使えてない。
- 598 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:54:13 ]
- そんな感想持ってるやつは今のところいなさそうだが、誰に向けてレスしてんだ?
- 599 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:59:35 ]
- レスじゃないよ。
>>593 を見て、ifと条件演算子の脳内置き換えができないやつを評してる。
- 600 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:01:20 ]
- いるかどうかもわからないヤツを想像してまで叩きたいのかw
|

|