- 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
- 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
- 601 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:03:53 ]
- 話がずれてるな。
処理したくない場合、どう書くかについての話だろ? >>593はななめってる
- 602 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:05:42 ]
- >>594だけ見るとそう思っているかのように見えるけど>>595で理解してるようだしな
>>597は3項演算子に特別な思い入れでもあるのかねぇw
- 603 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:07:03 ]
- こんなマヌケな書き込みしといて、まだバレてないとか、ごまかせるとか思ってるのか。
- 604 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:09:32 ]
- >>601
いやぜんぜんななめじゃないよ。 条件演算子を効率のためにつかってるって思ってるやつに、 そうじゃないって例を示しただけ。
- 605 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:10:24 ]
- >>591-603
誰にレスしてるかくらいはっきりさせろ蛆虫共
- 606 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:11:23 ]
- >>604
>>593の下の方がいい理由を言ってみろ
- 607 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:13:06 ]
- こんな簡単な例じゃどっともかわらねぇよ
- 608 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:13:08 ]
- >>586
使えない。値を返す必要があるから空文があったら困るだろ。 どうしてもってことなら適当な変数でx=xとか入れときゃいいんじゃね?
- 609 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:17:04 ]
- >>586
> (aaa == bbb) ? flag = true : ; ; つーか、式を返す形で使わなきゃダメだろ。色々と。
- 610 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:19:33 ]
- >>606
みて分かれよ。 プログラミングの基礎って本に載ってるぞ。 サイエンス社2300円。
- 611 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:22:37 ]
- 高い
- 612 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:25:00 ]
- >>604
> 条件演算子を効率のためにつかってるって思ってるやつに、 > そうじゃないって例を示した だから、ななめじゃん
- 613 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:26:04 ]
- 三項演算子は値を返すから
変数 = 条件?成功:失敗; return 条件?成功:失敗; みたいな形でよく使われる。 良く使われるということは、そう書くとみんな理解しやすい。 コンパイラ的に見ると if ( 条件 ) 変数=成功 else 変数=失敗; と吐き出されるコードは多分一緒。 逆に言えば、値を返す必要のないときに 三項演算子を使うのは理解しにくい?
- 614 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:27:15 ]
- C++だと初期化でたまに使いたくなる
- 615 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:30:50 ]
- >>612
「ななめじゃん」って一言レスしてれば、ななめだってことにできると思ってるのか。
- 616 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:31:49 ]
- いまだに三項演算子なんて言う人がいるとは
- 617 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:33:46 ]
- if ( 条件 ) 変数=成功 else 変数=失敗;
より ( 条件 ) ? 変数=成功 : 変数=失敗; の方がコード量減るからいいじゃん。 プロはこの辺の効率も求めていかなければならない。
- 618 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:34:57 ]
- 七行スレから来ました
- 619 名前:デフォルトの名無しさん [2009/10/20(火) 23:48:36 ]
- ご教授お願い致します。
以下のような文字列から数字部分(10桁)の「1111111112」だけを抜き出したいと思います。 但し以下のような条件があります。 ・数字の前は必ず「AAA」があります。 ・下記はカンマ区切りだけど、カンマ区切りとは限りません ------------------------------------- あいうえお,AAA1111111112,かきこけこ ------------------------------------- strstr関数など、いろいろ試してみたのですがどうもうまくいきません。 皆様、よろしくお願い致します。 こんなのもわからなくて恥ずかしいです。。。。
- 620 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:49:49 ]
- 宿題は宿題スレへ
- 621 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:49:57 ]
- >>617
> ( 条件 ) ? 変数=成功 : 変数=失敗; 変数 = ( 条件 ) ? 成功 : 失敗; 普通こうでしょ…?
- 622 名前:デフォルトの名無しさん [2009/10/20(火) 23:50:49 ]
- >>619
頑張れ
- 623 名前:デフォルトの名無しさん [2009/10/20(火) 23:55:02 ]
- 了解。宿題すれにいきマイケル。
- 624 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 00:07:20 ]
- >>621
同じ変数だとはどこにも…
- 625 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 00:10:42 ]
- >>624
代入するのは成功か失敗かなのに? あとから二ヶ所でチェックするんですか?(笑) てか"文"を書くなと。
- 626 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 00:10:50 ]
- >>624
>>587
- 627 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 00:11:39 ]
- >>619
sscanfについてもう少し調べる
- 628 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 01:00:46 ]
- >>586
aaa == bbb && flag = true;
- 629 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 01:03:33 ]
- if ( aaa == bbb || (flag = false,0) ) flag = true;
- 630 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 01:12:10 ]
- アホだw
- 631 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 01:21:36 ]
- >>628
括弧が不足してる
- 632 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 02:22:07 ]
- >>629
なぜfalseにしたし
- 633 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 03:09:30 ]
- ちょっとした質問なんですが
scanf関数で数字を入力する際に 数字を打ち込みエンターキーを押すと改行してしまいます もう一度数字を入力すると、前に打ち込んだ数字が認識されます 二度目の数字を入力しないと、ずっと改行しつづけます この仕様はどうにかならないんでしょうか
- 634 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 03:12:02 ]
- scanf()の使い方を間違ってる
- 635 名前:633 mailto:sage [2009/10/21(水) 03:14:31 ]
- >>634
えっ
- 636 名前:633 mailto:sage [2009/10/21(水) 03:17:40 ]
- 今見たら、>>634さんの言うとおり
scanf()の中に\nを混ぜてしまっていました お粗末な質問に答えていただき有難うございました
- 637 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 07:09:37 ]
- うむ
- 638 名前:634 mailto:sage [2009/10/21(水) 07:49:24 ]
- お前が言うなw
- 639 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 09:59:16 ]
- よきにはからえ
- 640 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 10:05:31 ]
- 条件演算子を三項演算子と呼んで疑問を感じないようではいけないな。
単項、二項、三項は項の数を問題にしているのであって条件式であることは無関係でしょ?
- 641 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 10:15:03 ]
- ふーん
- 642 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 12:34:34 ]
- どっちでもいいや
- 643 名前:デフォルトの名無しさん [2009/10/21(水) 14:39:25 ]
- Aのプログラムから数秒後にBのプログラムに切り替えたいです。
そういった時にはtime関数で現在時刻を取得してからでないとだめなんですか? プログラムの組み方がよくわからないので教えてください
- 644 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 14:50:06 ]
- >>643
標準関数だけでは無理があるので、環境依存スレでどうぞ。
- 645 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 14:50:50 ]
- 現在時刻は要らないだろ。
開始からの経過時間さえ判ればよい。 だから普通は clock() を使う。
- 646 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 14:54:39 ]
- >>644
プ
- 647 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 15:02:19 ]
- >>646
time()だけでやるのは待ちループが必要になって現実的でないということは理解している? >>645 あんたも同類か。ついでに言えば、clock()だからと言ってtime()と手間がさして変わるわけではないが。
- 648 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 15:03:00 ]
- sleepしてexecすればいいのでは
- 649 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 15:27:53 ]
- それは標準ではないだろ。
- 650 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 16:05:25 ]
- とはいえ、POSIXに準拠しとけば初心者が使う大抵の環境で動くんじゃなかろうか。
- 651 名前:デフォルトの名無しさん [2009/10/21(水) 16:21:56 ]
- ポインタ変数の勉強しています。初心者です。
int i; int *ip = &i; 2行目のコードの記述がおかしいです。 ipはアドレスを保持するポインタ変数で、*ipはポインタが指し示す領域の内容ですよね? *ipには3とか-1といった整数値が入るものだと思っていましたが上の例ではアドレスを代入しています。 アドレスも整数に分類される値ということでしょうか。 これでもコンパイルが通るので何が何だかさっぱりです…
- 652 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 16:26:46 ]
- int *ip は、 int* ip と思えばわかりやすいかな。
int* という型なのだ。でも int* p1, p2とかやるとはまるから注意な。
- 653 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 16:29:35 ]
- 宣言時の代入は、初期化の利便性のために少し特殊になっている。
コンパイルの結果は変わらないから、気に入らなければ宣言時代入は使わなくてもいい。
- 654 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 16:30:49 ]
- >>652
ほざけ。
- 655 名前:デフォルトの名無しさん [2009/10/21(水) 16:35:17 ]
- 分かったようで分からないようではっきりしませんが、つまり
int *ip = &i; は置き換えると int *ip ip = &i; ですか。
- 656 名前:デフォルトの名無しさん [2009/10/21(水) 16:36:36 ]
- もしかしたらスレ違いかもしれませんが質問させてください。
C言語を始めたばかりの初心者です。 LSI C-86 Ver3.30c 試食版というものを使っています。 コンパイルをして、コードをコマンドプロンプトで表示させると、 日本語が文字化けしてしまいます。 コンパイルもできているし、アルファベットや数字はきちんと出るのですが……。 どうすれば日本語が表示できるようになるのでしょうか? ぐぐってもよく判らなかったため、質問させていただきました。 どうかよろしくお願いします。
- 657 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 16:37:32 ]
- >>656
悪いことは言わないから、そのコンパイラは捨てなさい。 それはもう、10年以上も前のパソコン通信時代の代物だ。
- 658 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 16:43:00 ]
- >>655
です。
- 659 名前:デフォルトの名無しさん [2009/10/21(水) 16:48:58 ]
- >>658
ありがとう。あやうく誤解するところでした。。
- 660 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 16:50:22 ]
- >>656
文字コード体系が違う。 以前の Windows では CP-932 が使われていたが、 最近は UTF-16LE に変わってきている。 古いソフトなどを使うと、それらが混在するので文字化けすることがある。 ソースコードと表示系の文字コードを同じものに揃えれば問題ない。
- 661 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 16:57:50 ]
- 個人的には Turbo-C 2.01 がオススメ。
軽量・高速で使いやすく、変な制限もない。
- 662 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 17:01:08 ]
- >>657
>10年以上も前のパソコン通信時代 20年前ですw
- 663 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 17:04:55 ]
- 16ビットのコンパイラはおすすめ出来ません。
32ビットよりも難しいです。
- 664 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 17:16:27 ]
- selectでSleepの代わりに出来ない?
- 665 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 17:30:56 ]
- >>664
できなくはありませんが、厳密には違う動作です。POSIXならusleep()という選択肢もありますが。
- 666 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 17:41:34 ]
- UTF16でもコンパイラ通るの?
エラー出るだろ?
- 667 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 17:42:13 ]
- そりゃ環境による
|

|