5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

C言語のことは俺に聞け<45>

1 :デフォルトの名無しさん:02/11/27 22:57
まず問題を冷静に吟味してCの話か否かをはっきりさせてから質問しろ。
むしろ質問する前にWEBで検索するのが常識だ。

GUIなどの標準Cではできない事の質問は使用している開発環境のスレへ行け。
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへ行け。

入門書レベルの質問はC言語質問所スレへ行け。

コンパイラを探しているなら >>2 を見よ。

上記を逸した場合の結果は激しく未定義とする。

C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/

前スレ
http://pc3.2ch.net/test/read.cgi/tech/1037796472/

2 :デフォルトの名無しさん:02/11/27 22:57
【コンパイラ】
gcc
http://gcc.gnu.org/

【Win32用の開発環境のみ。】
gcc-cygwin
http://www.redhat.com/software/tools/cygwin/
gcc-mingw
http://www.mingw.org
Digital Mars C++
http://www.digitalmars.com/
Open Watcom
http://www.openwatcom.com/
Borland C++ Compiler 5.5.1
http://www.borland.co.jp/cppbuilder/freecompiler/

【ライセンスや機能などに問題あり】
Microsot C/C++ 13.0.9466(VC.NET)
http://www.microsoft.com/japan/msdn/netframework/downloads/
LCC-Win32
http://www.cs.virginia.edu/~lcc-win32/
CINT
http://root.cern.ch/root/Cint.html
めじろ++98
http://www.vector.co.jp/soft/win95/prog/se075910.html



3 :2003年は午年:02/11/27 22:58
  _ハ、            _ハ、
 (- ・  ヾ          (- ・  ヾ
   ̄\  ヾ          ̄\  ヾ   
    (     ̄ ̄ ̄ヽヾ、    (     ̄ ̄ ̄ヽヾ、
     |        〈  ゞ   |        〈  ゞ
    / /| | ̄ ̄/ / | |     / /| | ̄ ̄/ / | |
    // ヽニニ// ヽニニl.  // ヽニニ// ヽニニl
   //     //.        //     //
   `       `        .`       `

4 :過去スレ:02/11/27 23:01
43 http://pc3.2ch.net/test/read.cgi/tech/1037281411/
42 http://pc3.2ch.net/test/read.cgi/tech/1037101156/
41 http://pc3.2ch.net/test/read.cgi/tech/1036876790/
40 http://pc3.2ch.net/test/read.cgi/tech/1036673739/ // 待機中
39 http://pc3.2ch.net/test/read.cgi/tech/1036409391/ // 待機中
38 http://pc3.2ch.net/test/read.cgi/tech/1035729526/ // 待機中
37 http://pc3.2ch.net/test/read.cgi/tech/1035623265/ // 待機中
36 http://pc3.2ch.net/test/read.cgi/tech/1035211039/ // 待機中
35 http://pc3.2ch.net/test/read.cgi/tech/1034337064/ // 待機中
34 http://pc3.2ch.net/test/read.cgi/tech/1033240509/ // 待機中
33 http://pc3.2ch.net/test/read.cgi/tech/1032606064/ // 待機中
32 http://pc3.2ch.net/test/read.cgi/tech/1031905402/ // 待機中
31 http://pc3.2ch.net/test/read.cgi/tech/1031340950/ // 待機中
30 http://pc3.2ch.net/test/read.cgi/tech/1030786546/ // 待機中
29 http://pc3.2ch.net/test/read.cgi/tech/1029605182/ // 待機中
28 http://pc3.2ch.net/test/read.cgi/tech/1028495798/ // 待機中
27 http://pc3.2ch.net/test/read.cgi/tech/1027160374/ // 待機中
26 http://pc.2ch.net/tech/kako/1026/10260/1026048820.html
25 http://pc.2ch.net/tech/kako/1024/10249/1024918442.html
24 http://pc.2ch.net/tech/kako/1024/10240/1024033400.html
23 http://pc.2ch.net/tech/kako/1022/10224/1022402165.html
22 http://pc.2ch.net/tech/kako/1022/10224/1022402165.html
21 http://pc.2ch.net/tech/kako/1022/10220/1022045622.html


5 :過去スレ:02/11/27 23:02
20 http://pc.2ch.net/tech/kako/1021/10214/1021459016.html
19 http://pc.2ch.net/tech/kako/1020/10207/1020756993.html
18 http://pc.2ch.net/tech/kako/1020/10202/1020260813.html
17 http://pc.2ch.net/tech/kako/1019/10193/1019372139.html
16 http://pc.2ch.net/tech/kako/1018/10184/1018453690.html
15 http://pc.2ch.net/tech/kako/1016/10165/1016519243.html
14 http://pc.2ch.net/tech/kako/1015/10152/1015286974.html
13 http://pc.2ch.net/tech/kako/1013/10139/1013990673.html
12 http://pc.2ch.net/tech/kako/1012/10123/1012348974.html
11 http://pc.2ch.net/tech/kako/1009/10094/1009499565.html
10 http://pc.2ch.net/tech/kako/1008/10083/1008300863.html
9 http://pc.2ch.net/tech/kako/1007/10072/1007272267.html
8 http://pc.2ch.net/tech/kako/1005/10058/1005811510.html
7 http://pc.2ch.net/tech/kako/1005/10058/1005811510.html
6 http://piza2.2ch.net/tech/kako/999/999617524.html
5 http://piza2.2ch.net/tech/kako/994/994908590.html
4 http://piza.2ch.net/tech/kako/992/992357382.html
3 http://piza.2ch.net/tech/kako/989/989929288.html 
2 http://piza.2ch.net/tech/kako/979/979529893.html
1 http://piza.2ch.net/tech/kako/967/967985026.html

6 :デフォルトの名無しさん:02/11/27 23:02
いいかげんにしろ

7 :デフォルトの名無しさん:02/11/27 23:04
このスレは冗談で作られたニセスレです。ageないようにお願いします。

本物は↓こちら
C言語質問所 <45>
http://pc3.2ch.net/test/read.cgi/tech/1038324550/l50

8 :デフォルトの名無しさん:02/11/27 23:05
>>1
乙かれ〜

しばらく厨房が騒ぐでしょうが、マタ〜リいきましょう。

9 :デフォルトの名無しさん:02/11/27 23:06
        まもなくここは 乂1000取り合戦場乂 となります。

      \∧_ヘ     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!!       ,,、,、,,,
    /三√ ゚Д゚) /   \____________  ,,、,、,,,
     /三/| ゚U゚|\      ,,、,、,,,                       ,,、,、,,,
 ,,、,、,,, U (:::::::::::)  ,,、,、,,,         \オーーーーーーーッ!!/
      //三/|三|\     ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ∪  ∪       (    )    (     )   (    )    )
 ,,、,、,,,       ,,、,、,,,  ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ,,、,、,,,       (    )    (    )    (    )    (    )

http://big.freett.com/scheme_a/num1000.swf

10 :デフォルトの名無しさん:02/11/27 23:07
ここも荒れるな


11 :あぼーん:あぼーん
あぼーん

12 :あぼーん:あぼーん
あぼーん

13 :デフォルトの名無しさん:02/11/27 23:08
>>1

>入門書レベルの質問はC言語質問所スレへ行け。

これは失敗だったな。もうすぐ無くなるスレへ行けとは。

14 :デフォルトの名無しさん:02/11/27 23:08
なんで重複スレ立てまくるんだ?

C言語質問所 <45>
http://pc3.2ch.net/test/read.cgi/tech/1038324550/

↑を再利用すればいいじゃねーか

15 :あぼーん:あぼーん
あぼーん

16 :あぼーん:あぼーん
あぼーん

17 :あぼーん:あぼーん
あぼーん

18 :西門 ◆J1DLkSnXwI :02/11/27 23:09
>>JPS

(last_char_was_1 == ' ')という式の値は必ず0か1になります。


19 :あぼーん:あぼーん
あぼーん

20 :西門 ◆J1DLkSnXwI :02/11/27 23:10
まちがい。スマソ
(last_char_was_space == ' ')という式の値は必ず0か1になります。


21 :あぼーん:あぼーん
あぼーん

22 :あぼーん:あぼーん
あぼーん

23 :あぼーん:あぼーん
あぼーん

24 :デフォルトの名無しさん:02/11/27 23:11
>荒らしてる香具師
つーか、質問所スレで論争になったらなったで文句言うくせに。
矛盾してるって。

25 :あぼーん:あぼーん
あぼーん

26 :あぼーん:あぼーん
あぼーん

27 :デフォルトの名無しさん:02/11/27 23:12
>>20
おまえさー、常識とかないわけ?
こんな無駄遣いすれたてて恥ずかしいとか思わないの?
俺はおまえみたいなのが同じCをやっていると思うと恥ずかしいよ。

28 :デフォルトの名無しさん:02/11/27 23:12
     \ 馬 /   \ 鹿 /
               ∩     ∩
               | つ   「,"|
        ヾ∧     !,'っ_ ⊂_,!
      / ・ |ミ    /  ・ ヽつ
     (_'...  |ミ   ▼,__  |
      (゚Д゚; )..|ミ     (゚Д゚ ,)・|
      (|  .、)|      (|   、)|
       |    |       |   ・・|
       ヽ.._人     ヽ._・ν
       U"U        U"U

29 :デフォルトの名無しさん:02/11/27 23:13
>>20
あのコードだが、
nt ch, last_ch;
while ((ch = getchar()) != EOF) {
 if (ch != ' ' || last_ch != ' ')
  putchar(ch);
 last_ch = ch;
}
で良いのでは?


30 :あぼーん:あぼーん
あぼーん

31 :あぼーん:あぼーん
あぼーん

32 :あぼーん:あぼーん
あぼーん

33 :あぼーん:あぼーん
あぼーん

34 :デフォルトの名無しさん:02/11/27 23:15
>>20
じゃあ、xが整数のとき、!xの値はどうなるの?

35 :あぼーん:あぼーん
あぼーん

36 :あぼーん:あぼーん
あぼーん

37 :あぼーん:あぼーん
あぼーん

38 :あぼーん:あぼーん
あぼーん

39 :あぼーん:あぼーん
あぼーん

40 :あぼーん:あぼーん
あぼーん

41 :西門 ◆J1DLkSnXwI :02/11/27 23:18
>>34
>じゃあ、xが整数のとき、!xの値はどうなるの?

0か1になります。

42 :あぼーん:あぼーん
あぼーん

43 :デフォルトの名無しさん:02/11/27 23:19
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

44 :西門 ◆J1DLkSnXwI :02/11/27 23:19
>>29
そっちの方が良いかも。

45 :デフォルトの名無しさん:02/11/27 23:19
ここにゲ製作板の房が流れ込んできたかな・・・

46 :あぼーん:あぼーん
あぼーん

47 :デフォルトの名無しさん:02/11/27 23:19
だめだこりゃ

48 :デフォルトの名無しさん:02/11/27 23:20
>>41
うそだろ?

49 :あぼーん:あぼーん
あぼーん

50 :あぼーん:あぼーん
あぼーん

51 :あぼーん:あぼーん
あぼーん

52 :あぼーん:あぼーん
あぼーん

53 :あぼーん:あぼーん
あぼーん

54 :デフォルトの名無しさん:02/11/27 23:21
まあ、1日も立てば落ち着くだろう。
しばらくすればニセスレのほうも削除されるだろうし。
厨ども、せいぜいがんがれや。いくら荒らしても無駄だがナー

55 :あぼーん:あぼーん
あぼーん

56 :あぼーん:あぼーん
あぼーん

57 :あぼーん:あぼーん
あぼーん

58 :あぼーん:あぼーん
あぼーん

59 :あぼーん:あぼーん
あぼーん

60 :デフォルトの名無しさん:02/11/27 23:23

ビクッ. ∧ ∧ ∧ ∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  Σ(゚Д゚;≡;゚д゚) < うお!なんかすごいところに迷い込んじまったぞゴルァ!
     ./ つ つ    \______________________
  〜(_⌒ヽ ドキドキ
     )ノ `Jззз


61 :あぼーん:あぼーん
あぼーん

62 :あぼーん:あぼーん
あぼーん

63 :あぼーん:あぼーん
あぼーん

64 :あぼーん:あぼーん
あぼーん

65 :デフォルトの名無しさん:02/11/27 23:26
まあ荒らしてるのは偽スレの1なんだろうなぁ・・・

66 :あぼーん:あぼーん
あぼーん

67 :あぼーん:あぼーん
あぼーん

68 :デフォルトの名無しさん:02/11/27 23:27
でも何で連続投稿できるのだろう・・・?

69 :あぼーん:あぼーん
あぼーん

70 :あぼーん:あぼーん
あぼーん

71 :デフォルトの名無しさん:02/11/27 23:28
   |
_ー|ー|-┐     __|_     ̄──
   |  ノ   ヽ/ |  ヽ     /
   |     /丶/   |   |
    |     し^ヽ   /    \


         ヽ(;´Д`)ノ

72 :デフォルトの名無しさん:02/11/27 23:28
>>65>>68
放置しろ。

73 :デフォルトの名無しさん:02/11/27 23:28
   |
_ー|ー|-┐     __|_    ー十 ̄ \  /      ─_
   |  ノ   ヽ/ |  ヽ    |      |   \    フ ヽヽ
   |     /丶/   |    _ |     ∨   |  /
    |     し^ヽ   /    \/\           \


                ヽ(;´Д`)ノ

74 :デフォルトの名無しさん:02/11/27 23:29
見慣れたAAコピペばかりでつまらない…

75 :デフォルトの名無しさん:02/11/27 23:29
一つ気づいた!
荒らしてる奴らは実はこのスレを偽スレよりもレスを多くするため仕方なく荒らしてるんだ!
そして偽スレと圧倒的差がついたころにこっちのほうが賑わってるとか言って平和的に向こうを潰す気だ

76 :デフォルトの名無しさん:02/11/27 23:30
こんなことしても偽スレは復活しないよ。

77 :あぼーん:あぼーん
あぼーん

78 :デフォルトの名無しさん:02/11/27 23:31
とりあえず謝っとく。
正直、すまなかった。

79 :デフォルトの名無しさん:02/11/27 23:31
>>75
なるほど。
荒らしじゃなくて助けてくれてるんだね。

80 :デフォルトの名無しさん:02/11/27 23:33
>>75
一つ気づいた!
そうやってコピペを止めようとしているんだな。
無駄だ。コピペは止まらない。

81 :デフォルトの名無しさん:02/11/27 23:33
>>48
本当だよ。

82 :あぼーん:あぼーん
あぼーん

83 :あぼーん:あぼーん
あぼーん

84 :あぼーん:あぼーん
あぼーん

85 :拾ってきた:02/11/27 23:35
18 :西門 ◆J1DLkSnXwI :02/11/27 23:09
  >>JPS

  (last_char_was_1 == ' ')という式の値は必ず0か1になります。

20 :西門 ◆J1DLkSnXwI :02/11/27 23:10
  まちがい。スマソ
  (last_char_was_space == ' ')という式の値は必ず0か1になります。

29 :デフォルトの名無しさん :02/11/27 23:13
  >>20
  あのコードだが、
  nt ch, last_ch;
  while ((ch = getchar()) != EOF) {
   if (ch != ' ' || last_ch != ' ')
    putchar(ch);
   last_ch = ch;
  }
  で良いのでは?

86 :あぼーん:あぼーん
あぼーん

87 :拾ってきた:02/11/27 23:35
34 :デフォルトの名無しさん :02/11/27 23:15
  >>20
  じゃあ、xが整数のとき、!xの値はどうなるの?

41 :西門 ◆J1DLkSnXwI :02/11/27 23:18
  >>34
  >じゃあ、xが整数のとき、!xの値はどうなるの?

  0か1になります。

44 :西門 ◆J1DLkSnXwI :02/11/27 23:19
  >>29
  そっちの方が良いかも。

48 :デフォルトの名無しさん :02/11/27 23:20
  >>41
  うそだろ?

88 :あぼーん:あぼーん
あぼーん

89 :あぼーん:あぼーん
あぼーん

90 :デフォルトの名無しさん:02/11/27 23:38
同じ AA の繰り返しでもつまんねーよ。
何か芸しろ。

91 :デフォルトの名無しさん:02/11/27 23:39
ほんとだよ!
xが実数でも !x は整数の0か1になるよ。


92 :デフォルトの名無しさん:02/11/27 23:39
>>90
そうやって煽るから...

93 :デフォルトの名無しさん:02/11/27 23:40
>>48
! と ~ を混同していないか?

http://www.catnet.ne.jp/kouno/c_faq/c9.html#2
> 組み込みの演算子によってブー ル値が産み出されるときは、1か0であることが保証されている。

94 :デフォルトの名無しさん:02/11/27 23:40
あげ

95 :デフォルトの名無しさん:02/11/27 23:40
レス数抜けばこっちが事実上本スレに!!

96 :デフォルトの名無しさん:02/11/27 23:41
をを。
荒らしの美奈さん御苦労。

97 :デフォルトの名無しさん:02/11/27 23:42
美奈タンが荒らしていたのか・・・。

98 :デフォルトの名無しさん:02/11/27 23:42
レス数抜いたぞ!
こっちが本スレだ!・・・元からだけど

99 :デフォルトの名無しさん:02/11/27 23:43
なぜ論理演算子にXORがないんだろう?
ビット演算子にはあるのに。

100 :デフォルトの名無しさん:02/11/27 23:43
でも、テンプレは気に入らん。
書いとこ。
--
まず問題を冷静に吟味してCの話か否かをはっきりさせてから質問しろ。
むしろ質問する前にWEBで検索するのが常識だ。

コンパイラを探しているなら >>2 を見よ。

質問は 「通じる日本語」 を書け。
具体的には、少なくとも訊き返されないように十分な情報を盛りこみ、
「オレ語」 は使うな。

GUIなどの標準Cではできない事の質問は使用している開発環境のスレへ行け。
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへ行け。
入門書レベルの質問はC言語質問所スレへ行け。

上記を逸した場合の結果は激しく未定義とする。

なお、自助努力のうかがえない香具師は冷たくあしらわれる。

C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/

前スレ
c[44] = "http://pc3.2ch.net/test/read.cgi/tech/1038324550/";

101 :デフォルトの名無しさん:02/11/27 23:44
>>99
(゚Д゚)ハァ?

^ は?

102 :101:02/11/27 23:45
スマソ、論理演算子ね。

103 :デフォルトの名無しさん:02/11/27 23:46


104 :デフォルトの名無しさん:02/11/27 23:46

>質問は 「通じる日本語」 を書け。
>具体的には、少なくとも訊き返されないように十分な情報を盛りこみ、
>「オレ語」 は使うな。
こんなのいらんよ。つーか、書いても無駄だと思う。

>入門書レベルの質問はC言語質問所スレへ行け。
そんなスレいらない。つーか、なくなるし。

>なお、自助努力のうかがえない香具師は冷たくあしらわれる。
これも冗長だよ、「WEBで検索」「激しく未定義」でいいじゃん。
テンプレ長いのカコワルイ

105 :名無しさん@XEmacs:02/11/27 23:47
>>102
ビット演算子で事足りるから

106 :デフォルトの名無しさん:02/11/27 23:48
>>105
えーっと、
(!!x)^(!!y)
とか?

107 :デフォルトの名無しさん:02/11/27 23:49
>>104
それを言ったら、

> GUIなどの標準Cではできない事の質問は使用している開発環境のスレへ行け。
> ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへ行け。

これすら必要無い。
でも

> 入門書レベルの質問はC言語質問所スレへ行け。

これが要らないのには同意。

108 :デフォルトの名無しさん:02/11/27 23:50
>>104
読まれているかどうかもわからないテンプレに、何でそれを書いて欲しいという
要望が出るか理解してるか?

109 :デフォルトの名無しさん:02/11/27 23:51
本スレ争い(みっともない)でレス消費するのは止めろバカ。
両方いかせばいいだろうがバカ。

110 :名無しさん@XEmacs:02/11/27 23:54
>>106
まぁそんな感じ

111 :デフォルトの名無しさん:02/11/27 23:54
こっちが本当の雑談スレでつか?

112 :デフォルトの名無しさん:02/11/27 23:55
>>106
いや、普通は条件が2つあるだろうから、
単に
(x > 0) ^ (y < 0)
とかでいいんじゃないの?


113 :デフォルトの名無しさん:02/11/27 23:56
>>112
でも、条件が両方とも評価されちゃうジャン。

114 :デフォルトの名無しさん:02/11/27 23:57
>>113
xorで両方評価しない方法があったら教えてほすぃ。

115 :デフォルトの名無しさん:02/11/27 23:59
最近c言語を勉強し始めたものです。
あるサイトに
?#include<stdio.h>

int main()
{
int a, b;
printf("a,bを入力してください。n");
scanf("%d %d",&a, &b);
printf("a = %d b = %dn", a, b);
printf("a + b = %dn", a + b);
printf("何かキーを押してくださいn");
getchar();
printf("End");
return 0;
}
このように書いてあって実行すると、
printf("a,bを入力してください。n");の前に
scanf("%d %d",&a, &b);これがはいってきてgetcharと同時に操作が行われてしますようです。
これはどこか間違っているのでしょうか?

116 :113:02/11/27 23:59
>>114
はあ?


117 :デフォルトの名無しさん:02/11/28 00:00
どっちが本スレ?

118 :デフォルトの名無しさん:02/11/28 00:01
>>116
xor のおさらいしてきたほうが良いかと

119 :デフォルトの名無しさん:02/11/28 00:01
>>117
こっちが偽スレ

120 :デフォルトの名無しさん:02/11/28 00:01
>>115
入力時に半角スペースを間に入れたか?

121 :デフォルトの名無しさん:02/11/28 00:02
>>117
何かについてわからなければ、わからないという事が助けになるかも知れない。

122 :デフォルトの名無しさん:02/11/28 00:04
>>115
scanfは改行文字の前で入力を読み取るのを止める。
(正確には、いったん読んだ改行文字をungetcする)

getchar()はその改行文字を読み取って直ちに返ってきてしまう。


123 :デフォルトの名無しさん:02/11/28 00:04
>>115
>入門書レベルの質問はC言語質問所スレへ行け。
C言語質問所
http://pc3.2ch.net/test/read.cgi/tech/1038324550/l50

124 :113:02/11/28 00:06
そうかー、必ず両方評価しなきゃ駄目か。

125 :デフォルトの名無しさん:02/11/28 00:07
>>109
バカは余計

126 :デフォルトの名無しさん:02/11/28 00:08
>>123 は荒らしだな。放置。

127 :デフォルトの名無しさん:02/11/28 00:11
>>124
一体 XOR に何を求めていたんだ?

128 :デフォルトの名無しさん:02/11/28 00:14
みなさんレスありがとうございます。
これだけいわれてもまだ理解できません。
具体的な直し方を教えていただけないでしょうか?

129 :デフォルトの名無しさん:02/11/28 00:15
↑は115です。

130 :デフォルトの名無しさん:02/11/28 00:15
>>128
何の?どこの?

131 :デフォルトの名無しさん:02/11/28 00:15
>>115 ?

132 :デフォルトの名無しさん:02/11/28 00:19
つーか、普通にC言語質問所とおなじことするんだったら削除される
のはこっちだと思う。タイトルの伝統はどうあれ先に立ったほうが
優先されるから。どうせ統合になったらなったで、論争が起これば
文句が出ることはすでにわかってることだ。だったら、Cスレが2つ
あってもいいと思うのだが。

133 :デフォルトの名無しさん:02/11/28 00:19
>>115
getchar()で止めたいってことでしょ?


134 :デフォルトの名無しさん:02/11/28 00:19
getch();
conio.h
遣え!

135 :デフォルトの名無しさん:02/11/28 00:20
>>128
すまんが、ここは添削スレじゃないんだ。

136 :デフォルトの名無しさん:02/11/28 00:21
>>132
アフォ。

むこうは、こっちの旧スレがまだ600かそこらのときに
重複して立てたんだよ! その時点で考えれば、むこうは
後で立ったの。

137 :デフォルトの名無しさん:02/11/28 00:21
>>135
またそうやって荒らす。

138 :デフォルトの名無しさん:02/11/28 00:22
>>132
どっちでも質問してどっちでも論争してたじゃねーか。
まったくおんなじスレ2つ作ってどうするよ?

139 :115:02/11/28 00:23
上から順番にならないんです。
printf("a,bを入力してください。n"); これより先に
scanf("%d %d",&a, &b); を読んじゃうんです。
あとgetcharでもとまりません。

140 :132:02/11/28 00:24
というわで、
>入門書レベルの質問はC言語質問所スレへ行け。
を守って、そういう質問は向こうにきっちり誘導して差別化をはかるってのが
いいと思うのだが。

141 :デフォルトの名無しさん:02/11/28 00:25
>>139
どういうOSで何というコンパイラを使った?

あと、"してください。\n"じゃなくて"してください。n"と書いちゃったのか?


142 :デフォルトの名無しさん:02/11/28 00:25
>>137
スレ違い指摘の何が荒らしなんだ?

>>139
添削スレに逝ってくれ。
http://pc3.2ch.net/test/read.cgi/tech/1021881540/l50

143 :デフォルトの名無しさん:02/11/28 00:28
>>142
いや、もともと俺に聞けスレの範疇だったような気がするぞ。

144 :デフォルトの名無しさん:02/11/28 00:29
>>139
#include <conio.h>して
getch(); 使え!るか??


145 :デフォルトの名無しさん:02/11/28 00:31
>>143
つまり、1 の 「ソース丸投げ禁止」 は何の効力も持っていないと訴えたいわけか?

146 :デフォルトの名無しさん:02/11/28 00:39
こんなところか?

#include<stdio.h>

int main(void)
{
  int a, b, ret;
  char buf[256];
  do {
    printf("a, b を入力してください: ");
    fgets(buf, sizeof(buf), stdin);
    ret = sscanf(buf, "%d %d", &a, &b);
  } while(ret < 1);
  ret--;
  while(ret < 1) {
    printf("a = %d, b を入力してください: ", a);
    fgets(buf, sizeof(buf), stdin);
    ret = sscanf(buf, "%d", &b);
  }
  printf("a = %d, b = %d\n", a, b);
  printf("a + b = %d\n", a + b);
  printf("何かキーを押してください:");
  getchar();
  printf("End");
  return 0;
}

147 :JPS ◆M0LaMzf5rY :02/11/28 00:40
>>144
getcheでは?

148 :デフォルトの名無しさん:02/11/28 00:41
>>147
数字以外のキーのエコーを認めるのか?

149 :デフォルトの名無しさん:02/11/28 00:43
本スレ逆転したんですね。

150 :デフォルトの名無しさん:02/11/28 00:53
getch() 使ってみた。

#include<stdio.h>
#include<conio.h>
#include<ctype.h>

void key_cushion(void) { while(kbhit()) getch(); }
int get_int(const char *s)
{
  int ret = 0, col = 0; char c;
  printf("%s を入力してください: ", s); key_cushion();
  while(c = getch(), c != '\r' && c != '\n') {
    if(isdigit(c) && col < 8) { putchar(c); ret = ret * 10 + c - '0'; col++; }
    else if(c == '\b' && col) { printf("\b \b"); ret /= 10; col--; }
  }
  putchar('\n');
  return ret;
}

int main(void)
{
  int a = get_int("a"), b = get_int("b");
  printf("a = %d, b = %d\n", a, b);
  printf("a + b = %d\n", a + b);
  printf("何かキーを押してください:");
  key_cushion(); getch();
  printf("\nEnd");
  return 0;
}

151 :146=150:02/11/28 00:58
ダメ出しは無いかい?
getch() バージョンの入力は自由ではないが。

152 :デフォルトの名無しさん:02/11/28 01:06
煽られないと不安になるな。

153 :デフォルトの名無しさん:02/11/28 02:31
sukiyaki!

154 :デフォルトの名無しさん:02/11/28 02:53
ヒヒヒヒヒ

#include<stdio.h>
#include<ctype.h>
int main(void)
{
  char key[] = "A52A2245332A252B435B2222A2B2A2A23A2C32A3B5B2222A52B43532A2352C23A52A2246D2A3533B35K2A4D22A3224A45D2C25B2A32A5D2C25D4A26C4A1";
  char *p = key;
  int i, c, b = 1;
  while(*p) {
    c = 0;
    for(i = 0; i < 8; i++) {
      if(*p == '0') {
        if(!*++p)
          break;
        b = !b;
      }
      c <<= 1;
      c += b;
      if((*p)-- == 'A')
        *p = '0';
      if(isupper(*p))
        b = !b;
    }
    if(c)
      putchar(c);
  }
  getchar();
  return 0;
}

155 :デフォルトの名無しさん:02/11/28 04:10
ヒヒヒヒヒ

#include <stdio.h>
#define a do
#define b ]
#define c return
#define d fopen
#define e (
#define f fputc
#define g fclose
#define h ".smw"
#define i =
#define j FILE *
#define l -
#define m 3
#define n [
#define o +
#define p ;
#define q int
#define r )
#define s while e z r
#define t {
#define u &
#define w main
#define y }
q k e j r p q z i l m p q w e r t j x i d e u e e m o z r n h b r, u e m n h b r r p k e x r p g e x r p c z p y q k e j v r t a t f e e m o z r n h b, v r p y s p c m p y

156 :デフォルトの名無しさん:02/11/28 04:34
>>155
154 に比べると全然おもろくないぞ。

157 :デフォルトの名無しさん:02/11/28 04:49
こうだ

int getchar();int putchar(int);int main(){char k[]="A52A2245332A252B435B2222A2"
"B2A2A23A2C32A3B5B2222A52B43532A2352C23A52A2246D2A3533B35K2A4D22A3224A45D2C25B"
"2A32A5D2C25D4A26C4A1",*p=k;int i,c,b=1;while(*p){c=0;for(i=0;i<8;i++){if(*p==
'0'){if(!*++p)break;b=!b;}c=(c<<1)+b;if((*p)--=='A')*p='0';if(*p >= 'A')b=!b;}
if(c)putchar(c);}getchar();return 0;}

158 :デフォルトの名無しさん:02/11/28 08:44
>>157
7行プログラミングスレのコピペかよ

159 :デフォルトの名無しさん:02/11/28 09:09
>>158
原本は 155 ですが何か?
そもそもコピペではありませんが何か?

160 :159:02/11/28 09:10
原本は 154 ですた・・・

161 :デフォルトの名無しさん:02/11/28 18:07
本スレあげ

162 :デフォルトの名無しさん:02/11/28 22:12
スクリプト言語しか作れない俺はだめですか?

163 :デフォルトの名無しさん:02/11/28 22:13
>>162
言語が作れるならなかなか大したものだと思うが。

164 :162:02/11/28 22:18
>>163
でも本格的なコンパイラを作るのができない。
マシン語ができないから。

165 :デフォルトの名無しさん:02/11/28 22:21
>>164
じゃあ、Cにコンパイルすればよい。
後はCコンパイラに任せる。

166 :162:02/11/28 22:30
>>165
My言語をCにコンパイルしてそれを別のCコンパイラにコンパイルさせるメリットがないきがする。
だれも使ってくれなさそう。

167 :デフォルトの名無しさん:02/11/28 22:39
何度やってもエラーになります。どこが違うんでしょうか?
ソース↓

#include<stdio.h>

main()

{
int a;

printef("Hello world!\n");
}

168 :デフォルトの名無しさん:02/11/28 22:41
#include<stdio.h>

main()

{
int a;

//printef("Hello world!\n");
}


169 :デフォルトの名無しさん:02/11/28 22:43
>>167
#include<stdio.h>

main()

{
int a;

printef("トロイの木馬をインストールしました!\n");
}



170 :デフォルトの名無しさん:02/11/28 22:45
>>167
main関数の引数が書いてないよ。

171 :デフォルトの名無しさん:02/11/28 22:49
>>165
C言語にコンパイルすると、いろんな環境で走るから、
使ってもらいやすくなる。現にそういう処理系はたくさんある。


172 :デフォルトの名無しさん:02/11/28 22:50
>>sourceを別のテキストへ書いている。

173 :デフォルトの名無しさん:02/11/28 22:50
#include<stdio.h>

int main(void);

{
int a;

printef("Hello world!\n",a);
}


174 :デフォルトの名無しさん:02/11/28 22:51
>>172
???

175 :デフォルトの名無しさん:02/11/28 22:54
初期の頃のC++って、Cのコードに変換かけてCコンパイラにコンパイル
させてたという噂が、、、

176 :デフォルトの名無しさん:02/11/28 22:54
エラーコードは?

177 :デフォルトの名無しさん:02/11/28 22:55
何故素直に printf を使わないんだろう

178 :デフォルトの名無しさん:02/11/28 22:56
>>175
エキスパートCを読んだね。

179 :デフォルトの名無しさん:02/11/28 23:01
#include<stdio.h>

printef(char *s,int a){
printf("%s",s);
}
int main(void);

{
int a;

printef("Hello world!\n",a);
}
プリントエフって言葉で聞いたんでしょ。

180 :教えてください:02/11/28 23:02
最小値は求まるんですが、最大値がわけわからん数値になります・・
どこが間違えているのでしょうか?
#include<stdio.h>
#define NUM 4

main()
{
int suuji[NUM];
int i;
int min;
int max;

min=suuji[0];
max=suuji[0];

printf("4つの値を入力してください。\n");
for(i=0; i<NUM; i++){
scanf("%d",&suuji[i]);
if(min > suuji[i])
min=suuji[i];
if(max < suuji[i])

max=suuji[i];
}
printf("最大値は%dで、最小値は%dです。\n",max,min);
}

181 :デフォルトの名無しさん:02/11/28 23:04
最初、suuji[0]に何が入っているか?
0なら?ランダムなら?

182 :デフォルトの名無しさん:02/11/28 23:04
>>180
それはコンパイラのバグです。もっといいコンパイラを使いましょう。
そのバグを避けるにはminとmaxの宣言を以下のようにしてください。
static int min;
static int max;


183 :182:02/11/28 23:07
>>180
ごめんちがった。
static int suji[NUM];
ってしてね。

184 :デフォルトの名無しさん:02/11/28 23:11
おいおいキティガイが発生したぞ。

185 :教えてください:02/11/28 23:12
>>182 やってみたんですが、今度は最小値がおかしくなりました・・

186 :デフォルトの名無しさん:02/11/28 23:15
だからauto変数は初期値未定だっツノ


187 :名無し@沢村:02/11/28 23:16
>>180
それはsuujiとminとmaxを最初初期化しておけばいいです。

188 :教えてください:02/11/28 23:16
>>184
おいアホは黙ってろ

189 :デフォルトの名無しさん:02/11/28 23:16
>>185
こうしる!
int suuji[NUM] = {0};

190 :182:02/11/28 23:17
>>186
だからstaticなら初期化してあるじゃん

191 :デフォルトの名無しさん:02/11/28 23:18
そんなへんなstaticの使い方するなよ

192 :デフォルトの名無しさん:02/11/28 23:18
>>189
もう一人のキティが発生した

193 :デフォルトの名無しさん:02/11/28 23:18
suuji[0]に値が入ってから、min,maxに代入するとか、
max=0;min=INT_MAX;としておくとか・・・。
min=32767;...

194 :デフォルトの名無しさん:02/11/28 23:18
>>188
あ゛ぁ゛ーー!?!?!?
もういっぺん言ってみろコラ!!!

195 :デフォルトの名無しさん:02/11/28 23:19
誰もいっとらんわ!

      書いとるんじゃ!

196 :名無し@沢村:02/11/28 23:20
完璧なコード

#include<stdio.h>
#define NUM 4

main()
{
int suuji[NUM];
int i;
int min;
int max;
for(i=0; i<NUM; i++)
{suuji[i]=0;}
min=max=0;

printf("4つの値を入力してください。\n");
for(i=0; i<NUM; i++){
scanf("%d",&suuji[i]);
if(min > suuji[i])
min=suuji[i];
if(max < suuji[i])

max=suuji[i];
}
printf("最大値は%dで、最小値は%dです。\n",max,min);
}


197 :182:02/11/28 23:21
>>191
悪かったよ

>180
グローバル変数で宣言しろ


198 :デフォルトの名無しさん:02/11/28 23:21
うちのとこだと、INT_MIN と INT_MAX がlimits.hに定義されてるんだけどね
ANSIなのかな、コレ
max=INT_MIN;
min=INT_MAX;

199 :デフォルトの名無しさん:02/11/28 23:24
0でMAXを初期化していいんかいな、、、
すべてマイナスだった場合(以下略)

200 :デフォルトの名無しさん:02/11/28 23:24
if(i==0){
max=suuji[i];//iは0でも可
min=suuji[i];
}
これいれといてもいいぞ。

201 :182:02/11/28 23:24
>>196
あんた頭悪すぎ。minを0で初期化してどーすんだ、ごらぁ

202 :教えてください:02/11/28 23:25
どれが合ってんの?一体

203 :182:02/11/28 23:26
>>196
とおもってよく見たらよかった。正直悪かったな。

204 :デフォルトの名無しさん:02/11/28 23:26
>>202
196があってる
auto変数はとりあえず初期化しなさい。


205 :デフォルトの名無しさん:02/11/28 23:28
なんで196があってんだ???

206 :デフォルトの名無しさん:02/11/28 23:28
>>202

ちなみにコンパイラがどうこうというのとかは初心者を惑わすためのいぢわるだと思われるので信用しないように


207 :デフォルトの名無しさん:02/11/28 23:30
なんで196があってるの?
全部に5入れても、minに0入るだろ
look at >>200.


208 :207:02/11/28 23:31
forのすぐ下に入れときゃ良い。

209 :204:02/11/28 23:32
ごめん >>204 は勘違いだ 取り消す。
紛らわしくて済まん。



210 :教えてください:02/11/28 23:32
これぐらい即答してよ・・

211 :名無し@沢村:02/11/28 23:32
皆々様方〜、いろいろありあとうございました、皆々様方〜!
私はここでコールバックタイマーを使用しろとか、複数トラックのデータをマージしてひとつのデータにまとめろとか、いろいろなアドバイスをいただきました。
でもはっきりいってそんな面倒なことはしたくなかったんです…。
はっきりいって手抜きに近い楽なやりかたで複数トラックをちゃんと演奏する方法を見つけたかったんです。
でもついにその方法が見つかったんです!!
その完璧なルーチンをここに乗せますから、皆様方も楽にmidiシーケンサーをつくるときの参考にしてください、皆々様方〜!

for(i=0;i<=i_Sum_Track[i_longest_Track];i++)
{for(l=0;l<16;l++)
{t[l]=0;
if(CodeCount[l]!=0)
{for(jj[l]=0;jj[l]<Onpu_Index[l];jj[l]++)
{kk[l]=jj[l]*8;
if(i==t[l] )
{
_Multi_Time[l]= timeGetTime();
midiOutShortMsg(hMidiOut, 0xC0+l+ ((i_gattuki[l]) * 0x100));
midiOutShortMsg(hMidiOut, 0x0000B0+l+ ((7) * 0x100)+((possrider[l]) * 0x10000));
midiOutShortMsg(hMidiOut, 0x0000B0+l+ ((8) * 0x100)+((possrider_b[l]) * 0x10000));
midiOutShortMsg(hMidiOut, 0x0000B0+l+ ((10) * 0x100)+((possrider_s[l]) * 0x10000));
midiOutShortMsg(hMidiOut, (DataCode[l][kk[l]]) + (DataCode[l][kk[l]+1] * 0x100)+(DataCode[l][kk[l]+2] * 0x10000)); // Note On}
t[l]+=DataCode[l][kk[l]+3];
if(i==t[l] ) { while (Play_Tempo(DataCode[l][kk[l]+3])>=timeGetTime()-_Multi_Time[l]);
midiOutShortMsg(hMidiOut,(DataCode[l][kk[l]+4])+ (DataCode[l][kk[l]+5] * 0x100)+(DataCode[l][kk[l]+6] * 0x10000)); // Note Off } }} }}


212 :180:02/11/28 23:34
なんか途中から僕の偽者がでてきたみたいですが、
勉強になりました。みなさんありがとうございました。

213 :デフォルトの名無しさん:02/11/28 23:34
ウンコソース

#include<stdio.h>
#define NUM 4

main()
{
int suuji[NUM];
int i;
int min;
int max;



printf("4つの値を入力してください。\n");
for(i=0; i<NUM; i++){
scanf("%d",&suuji[i]);
if(i==0) {
min=suuji[0];
max=suuji[0];
}
if(min > suuji[i])
min=suuji[i];
if(max < suuji[i])
max=suuji[i];
}
printf("最大値は%dで、最小値は%dです。\n",max,min);
return 0;
}


214 :デフォルトの名無しさん:02/11/28 23:36
printf("4つの値を入力してください。\n");
scanf("%d", &suuji[0]);
min= max= suuji[0];
for(i=1; i<NUM; i++){
scanf("%d",&suuji[i]);
if (min > suuji[i])
min=suuji[i];
else if(max < suuji[i])
max=suuji[i];
}
printf("最大値は%dで、最小値は%dです。\n",max,min);

215 :デフォルトの名無しさん:02/11/28 23:44
#include <stdio.h>
#define NUM 4
main(){
int i,suuji[NUM],max,min;
printf("4つの値を入力してください。\n");
scanf("%d", &suuji[0]);
min= max= suuji[0];
for(i=1; i<NUM; i++){
scanf("%d",&suuji[i]);
min>suuji[i]?min=suuji[i]:max<suuji[i]?max=suuji[i]:1;
}
printf("max is %d and min is %d.\n",max,min);
return 0;
}

216 :名無し@沢村:02/11/28 23:46
皆々様方〜、いろいろありあとうございました、皆々様方〜!
私はここでコールバックタイマーを使用しろとか、複数トラックのデータをマージしてひとつのデータにまとめろとか、いろいろなアドバイスをいただきました。
でもはっきりいってそんな面倒なことはしたくなかったんです…。
はっきりいって手抜きに近い楽なやりかたで複数トラックをちゃんと演奏する方法を見つけたかったんです。
でもついにその方法が見つかったんです!!
その完璧なルーチンをここに乗せますから、皆様方も楽にmidiシーケンサーをつくるときの参考にしてください、皆々様方〜!

for(i=0;i<=i_Sum_Track[i_longest_Track];i++)
{for(l=0;l<16;l++)
{t[l]=0;
if(CodeCount[l]!=0)
{for(jj[l]=0;jj[l]<Onpu_Index[l];jj[l]++)
{kk[l]=jj[l]*8;
if(i==t[l] )
{
_Multi_Time[l]= timeGetTime();
midiOutShortMsg(hMidiOut, 0xC0+l+ ((i_gattuki[l]) * 0x100));
midiOutShortMsg(hMidiOut, 0x0000B0+l+ ((7) * 0x100)+((possrider[l]) * 0x10000));
midiOutShortMsg(hMidiOut, 0x0000B0+l+ ((8) * 0x100)+((possrider_b[l]) * 0x10000));
midiOutShortMsg(hMidiOut, 0x0000B0+l+ ((10) * 0x100)+((possrider_s[l]) * 0x10000));
midiOutShortMsg(hMidiOut, (DataCode[l][kk[l]]) + (DataCode[l][kk[l]+1] * 0x100)+(DataCode[l][kk[l]+2] * 0x10000)); // Note On}
t[l]+=DataCode[l][kk[l]+3];
if(i==t[l] ) { while (Play_Tempo(DataCode[l][kk[l]+3])>=timeGetTime()-_Multi_Time[l]);
midiOutShortMsg(hMidiOut,(DataCode[l][kk[l]+4])+ (DataCode[l][kk[l]+5] * 0x100)+(DataCode[l][kk[l]+6] * 0x10000)); // Note Off } }} }}


217 :訂正215:02/11/28 23:47
#define NUM 4
main(){
int i,suuji[NUM],max,min;
>printf("%dつの値を入力してください。\n",NUM);


218 :デフォルトの名無しさん:02/11/28 23:48
>>216
マルチはせんといて

219 :デフォルトの名無しさん:02/11/29 03:19
また沢村かよ・・・

220 :デフォルトの名無しさん:02/11/29 04:03
 | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
 | 大盛りねぎだくギョク |
 |_________|
    ∧∧ ||
    ( ゚д゚)||
    / づΦ

221 :デフォルトの名無しさん:02/11/29 11:56
本スレage

222 :デフォルトの名無しさん:02/11/29 12:11
「アルゴリズムとデータ構造」スレより移動

今、16KBのメモリブロックがあって、その中に
struct x {
    int n;
    char d[];
};
をなるべくたくさん並べたい。(ただし、d[]の実体の長さは
どれも同じで、実行時に決まる。Lとしましょう。)

どうやればポータブルにalignmentできる?

223 :デフォルトの名無しさん:02/11/29 12:12
d[]の実体の長さはどれも同じで、実行時に決まる。
ってなに?

224 :デフォルトの名無しさん:02/11/29 12:14
長さがsizeのバイトデータを、ある構造体Aの配列の大きさに
収めるために、sizeに必要なAの個数を求たいんですが、
現在以下の様に計算してます。

size/sizeof(A) + (size%sizeof(A) ? 1 : 0)

sizeof(A)=10です。
Aのサイズが2の乗数だったらシフトとAND演算子が使えたんですが、
半端なので割り算を使ってます。
これより良い方法はないでしょうか?

225 :デフォルトの名無しさん:02/11/29 12:15
(size + sizeof(A) - 1) / sizeof(A)

226 :デフォルトの名無しさん:02/11/29 12:19
>>223

>>222の書き方は、可変長の構造のヘッダを書くための定石で、
struct x *x1;
x1->d[i] = ...;
とか書くわけ。
http://seclan.dll.jp/c99d/c99d04.htm#dt19990726
そのヘッダをどう整列するかという話。

227 :デフォルトの名無しさん:02/11/29 12:21


228 :224:02/11/29 12:21
>>225
即レスありがとうございます。
なんかそれでいけそうです。
どうもでした!

229 :デフォルトの名無しさん:02/11/29 12:25
>>226
普通に割り算するんじゃ駄目なの?

230 :デフォルトの名無しさん:02/11/29 12:30
>>229
余りがあるときに違う。


231 :デフォルトの名無しさん:02/11/29 12:33
    char d[];
なんてできるの?

232 :デフォルトの名無しさん:02/11/29 12:34
>>226
struct x {
    int n;
    char d[1];
};
の間違いじゃないのか?
d[]; だの d[0]; だのは通らなかったり警告出たりしないか?

で、「ポータブルにalignment」 の意味するところがわからないんだが。
なるべくコンパクトに、かつある境界単位に並べるという事か?

233 :デフォルトの名無しさん:02/11/29 12:36
>>231
>>226のリンク嫁。C99の機能。


234 :デフォルトの名無しさん:02/11/29 12:36
>>230
会話をしてくれ。
「違う」 とは、何がどう変わるという事だ?

235 :デフォルトの名無しさん:02/11/29 12:38
struct x{
int n;
} ;
#define x_d(p) (char *)((p) + 1)
とかは?

236 :235:02/11/29 12:44
使い方は
struct x *p = malloc(sizeof(struct x) + dの長さ);
とかやって
p->n = 0;
memcpy(x_d(p), "dのデータ");
printf("%d %s\n",p->n,x_d(p));
みたいな感じ。
Cでunion使わずに多態やるときに使う。

237 :235:02/11/29 12:45
s/memcpy/strcpy/

238 :デフォルトの名無しさん:02/11/29 12:45
>>235
一見よさそうだが、アラインメントの関係で
struct x{
int n;
char c;
};
のような場合に無駄が出る事がある。

239 :デフォルトの名無しさん:02/11/29 12:47
> Cでunion使わずに多態やるときに使う。

可変配列とは直接関係無いんじゃないか?

240 :235:02/11/29 12:50
>>238
そうだけど、それが嫌ならx_c作れば良いんじゃない?
>>239
可変配列にも応用できるってことで。

241 :デフォルトの名無しさん:02/11/29 12:52
>>234
例えば、40bitのデータをintの配列に保存するとき大きさをいくつにするかと
かやったことないのか?
40/32 = 1...8
単に割算して1にしちゃったら8bit足りないだろ。bitとbyteの違いはあるがそ
ういうことだ。


242 :235:02/11/29 12:53
#define x_c(p) (char *)((p) + 1)
#define x_d(p) ((char *)((p) + 1)+1)


243 :デフォルトの名無しさん:02/11/29 12:54
>>236
それをスマートにアクセスできるようにしたいってこと。

244 :235:02/11/29 12:55
>>243
>それをスマートにアクセスできるようにしたいってこと。
そのためにマクロ作ったんだけど・・

245 :デフォルトの名無しさん:02/11/29 12:59
>>244
それはスマートじゃないと思う人間が多かったんだろうな。

246 :デフォルトの名無しさん:02/11/29 13:03
えーと、それで
16KBのメモリブロックをvoid *blockが指しているとして、
dの長さがLバイトとして、
・blockに、何個のstruct xが詰められるか、どう計算します?
・blockにつめてある、i番目のstruct xってどう書けばよいですか?

247 :デフォルトの名無しさん:02/11/29 13:14
bsize = 16 * 1024;
size = offsetof(struct x, d) + L;
n = bsize / size;
p = (struct x *)((struct {struct x x; char d[L];} *)block)[i];

最後のは通るかどうかちょっと自信なし。

248 :デフォルトの名無しさん:02/11/29 13:23
符号化とかならともかく
アラインメント無視して詰めたら遅くなるだけだよ


249 :デフォルトの名無しさん:02/11/29 13:42
>>248
すまめ、忘れてたよ。遅くなるどころか環境によってはSIGBUS食らうな。

#define align_size(x) (sizeof(struct {x _x; char _dummy;}) - sizeof(x))
const size_t align_size_x = align_size(x);
#define rooms(x, y) (((x) + (y) - 1)/(x))

bsize = 16 * 1024;
size = rooms(offsetof(struct x, d) + L, align_size_x);
n = bsize / size;
p = (struct x *)((struct {struct x x; char d[L];} *)block)[i];


250 :デフォルトの名無しさん:02/11/29 14:07
>>249
B木とかのライブラリって、
こんな具合いに書いてあるもんなんでしょうかね。

やっぱ、メモリ上で木構造の勉強するのに比べると、
だいぶ複雑ですね。

251 :デフォルトの名無しさん:02/11/29 14:49
>>241
その計算を (40+32-1)/32 でやらない香具師がいるのか?

252 :デフォルトの名無しさん:02/11/29 14:57
>>251
>229に聞いてみてくれ。


253 :デフォルトの名無しさん:02/11/29 16:17
>>249 const size_t align_size_x = align_size(x);
ってのは
const size_t align_size_x = align_size(struct x);
のこと?

これで、ちゃんとalignされるって、保証されるのかな…


254 : ◆SpXtQMM.WA :02/11/29 16:23
自由に使ってくれ

#include <stdio.h>

int main()
{
printf("あめま\n");
return 0;
}

255 :デフォルトの名無しさん:02/11/29 17:14
>>253
> const size_t align_size_x = align_size(struct x);
> のこと?
んだす。その後もこうだな。ボケてるよ…。
size = rooms(offsetof(struct x, d) + L, align_size_x) *align_size_x;

> これで、ちゃんとalignされるって、保証されるのかな…

struct x1 {struct x _x; char _dummy;} x1[2]; で
x1[1]._x も x1[0]._x 同様 align されることを考えれば、
sizeof(struct x1) は strcut x の alignment の倍数だということが分かる。
sizeof(struct x) も当然倍数なので、 sizeof(struct x1)-sizeof(struct x) も倍数。
sizeof(char) == 1 なので、この差は(おそらく)可能な最小値であり、
strcut x の alignment そのもの。

# 最小値でなくても align されることに変わりはない。

こんなとこでどーよ。

256 :デフォルトの名無しさん :02/11/29 17:44
int main()ってどうゆう効果なの?main()じゃだめなの?

257 :デフォルトの名無しさん:02/11/29 17:49
関数宣言/定義の戻り値の型は省略可能で、その場合int。
だから等価だが省略するのは古い書き方。

258 :デフォルトの名無しさん:02/11/29 17:55
mainのintはくだらねえことで金切り声をだして時間と気力を浪費するバカよけだ

259 :デフォルトの名無しさん:02/11/29 18:18
ファイル名を持つChar型の変数をファイル名にしようと次のように
組んだのですがエラーが出てしまいます。
char str[256];
char *fname="data.txt";
FILE *f=fopen(fname,"rt");
while(fgets(f,255,str)!=NULL) ← ここでアラー




どうか助けてください、お願いします

260 :デフォルトの名無しさん:02/11/29 18:29
fgets() のプロトタイプを確認すれば原因はすぐわかると思います。
ところで、どんなアラーメッセージが出ますか?

261 :259:02/11/29 18:43
'fgets' : 1 番目の引数を 'struct _iobuf *' から 'char *' に変換できません。

262 :デフォルトの名無しさん:02/11/29 18:44

              ア ラ ー 

263 :デフォルトの名無しさん:02/11/29 18:49
あらー>260ちゃんじゃないのぉ。大っきくなったわねぇ。

264 :デフォルトの名無しさん:02/11/29 18:56
>>261
'struct _iobuf *' とは、FILE* のことです。
コンパイラがどうしてそれを char* に変換しようとしているかわかりますか?

ところで、260 の 1 行目は検討していただけましたか?

265 :デフォルトの名無しさん:02/11/29 18:58
while(fgets(str,255,f)!=NULL)

266 :259:02/11/29 19:03
ああ、わかりました・・・相当勘違いをしてました。
助言ありがとう御座います。

267 :デフォルトの名無しさん:02/11/29 19:08
宗教板に「アラーメッセージ」ってスレ立てていいですか?

268 :デフォルトの名無しさん:02/11/29 19:10
>>267
この板に立ててください。
そして、荒らされてください。

269 :デフォルトの名無しさん:02/11/29 19:10
>>258
禿同

270 :デフォルトの名無しさん:02/11/29 19:14
アラーメッセージ
http://pc.2ch.net/test/read.cgi/prog/1038564845/

271 :デフォルトの名無しさん:02/11/29 19:16
そっちに立てたか・・・。
アラーされてください。

272 :デフォルトの名無しさん:02/11/29 19:21
ム板はよっぽどの事が無い限りアラーされないからナー。

273 :デフォルトの名無しさん:02/11/29 20:03
今度初めてCを学ぶのですが
環境はどうすればいいですか?
メモ帳+コンパイラがあればできると聞いたのですが
もっと便利に使いやすいもので学びたいのですが
そういうC用ツールってありますか?
なるべくフリーがいいのですが。
お願いします。

274 :デフォルトの名無しさん:02/11/29 20:18
>>273
emacsで検索しろ

275 :273:02/11/29 20:31
>>274見てきましたが結構使いにくそうです・・・。
別スレで聞いたほうがいいですかね?

276 :デフォルトの名無しさん:02/11/29 20:36
>>275
いや、ふつーemacsです。
最初は他のエディタと違う雰囲気という観点で
使いにくいと錯覚しますが、それも最初の2,3日だけです。

277 :JPS ◆M0LaMzf5rY :02/11/29 20:45
>>273
「CPad」で検索しる!bccがいるけどね。どっちもフリーでつ。
初心者向けで分かりやすいでつ。
それで足りなくなったらBccDev

278 :デフォルトの名無しさん:02/11/29 21:00
>>273
シェアウェアだけどエディタは秀丸がいいよ。
ただでも使いつづけられるけど、
grep画面からタグジャンプするときとかうざいので、
ケチらずに4000円払った方がいいよ。


279 :デフォルトの名無しさん:02/11/29 21:08
>>273
xyzzyも挙げておこう。

280 :デフォルトの名無しさん:02/11/29 21:40
TeraPad

281 :デフォルトの名無しさん:02/11/29 21:48
テストコード程度ならNotepad使ってます。
むかしはEDLIN使ったけどね・・・

282 :デフォルトの名無しさん:02/11/29 22:02
WinならVC++を使えよお前ら。

283 :デフォルトの名無しさん:02/11/29 22:06
使ってますが何か?

284 :デフォルトの名無しさん:02/11/29 22:07
VC++ってフリーなんですか?

285 :デフォルトの名無しさん:02/11/29 22:23
一応 BCC Developer も挙げておこう。

286 :デフォルトの名無しさん:02/11/29 22:29
.NET Framework 付属の最適化かからないコンパイラなら VC++ でも無料。

287 :デフォルトの名無しさん:02/11/29 22:49
この文脈では、「VC++のIDE」の話ではないのか?

288 :デフォルトの名無しさん:02/11/29 22:50
>>273ですが、みなさん、こんなにレスありがとうございます・・・!
本当に感謝です。
で、自分なりにググって見たのですが
TeraPadはフリーで高機能というもので
かなりいい評判でした。

秀丸は超有名ですがこのフリーのエディタがいくつもあるなか
4000円はちょっと高い気がします。しかし学生なので
無料になるということなのでこの機会にやってみるのも
いいかなぁと思いました。

CPadもなかなか使いやすそうです。
個人的にはこれがいいかなと思ってるのですが
機能面ではどうなのですか?それについては分からないのです。

あと、VC++も調べてみたのですがフリーなのかシェア
なのかよく分からないんです。(本当に)
教えていただけないでしょうか?

長文読みにくくてすいません。
ではお願いします。

289 :デフォルトの名無しさん:02/11/29 22:54
しゃぁからスレ違いやっちゅうに

290 :デフォルトの名無しさん:02/11/29 23:04
>289
ちょ、まてや。
確かに>289の言いたいことは分からんでもないが
漏れはスレ違いとは思わんが
スレタイよく見てみ

291 :デフォルトの名無しさん:02/11/29 23:05
>GUIなどの標準Cではできない事の質問は使用している開発環境のスレへ行け。
とかかれてますが?

292 :デフォルトの名無しさん:02/11/29 23:09
>>287
MSDEV (Developer Studio) は VC++ を呼ぶが VC++ じゃない。

293 :デフォルトの名無しさん:02/11/29 23:17
>>292
プ

294 :デフォルトの名無しさん:02/11/29 23:42
>>293
ttp://www.seiki21.com/img/img-box/img20021124224653.jpg
これでも見てもちつけ (・∀・)

295 :デフォルトの名無しさん:02/11/29 23:55
>>294
ブ

296 :デフォルトの名無しさん:02/11/30 00:17
猫でもわかるプログラミングを見ても難しくてわからなかった
猫以下の超下等生物でもわかるようなC言語の入門サイト教えてください。

297 :デフォルトの名無しさん:02/11/30 00:22
家の猫(マイケル)に、そのサイトを見せても
マイケルにはC言語は理解出来なかったようだぞ

298 :デフォルトの名無しさん:02/11/30 00:37
>>286
それ「V」C++じゃないよ。

299 :273:02/11/30 00:43
スレ違いですか?
できることならこのスレでいいと思ってるんですが。

300 :デフォルトの名無しさん:02/11/30 01:05
>296
この辺りから適当なものを
ttp://www2.famille.ne.jp/~akio1998/l_cpp.html

301 :デフォルトの名無しさん:02/11/30 01:15
>>300
おお!ありがとうございます。
いろいろなサイトがあるようなので、これから見て回ります。


302 :デフォルトの名無しさん:02/11/30 01:47
結局、
入門書レベルの質問はC言語質問所スレへ行け。
てのは誰も言わないのな。ホントに誰も。

303 :デフォルトの名無しさん:02/11/30 01:51
>302
荒れまくってるようで使い物にならん。

304 :デフォルトの名無しさん:02/11/30 01:59
>>302
あそこは初心者用の質問所ではない

305 :デフォルトの名無しさん:02/11/30 01:59
今はもう、あまぐりスレになってるな。

306 :デフォルトの名無しさん:02/11/30 12:54
>>292
じゃあ何がVC++なの?
コンパイラだけ?

307 :デフォルトの名無しさん:02/11/30 13:00
質問っす。
ファイルを読み込み/書き込みの両方出来るモードで開いたときに
先頭から上書きしていって途中でファイルの終了にするにはどうすればいいの?

(例)

元データ

aaa
bbb
ccc
終了

変更後

aaa
bbb
終了

308 :デフォルトの名無しさん:02/11/30 13:05
環境によるが、POSIXなら
ftruncate(ftell(fp));

309 :デフォルトの名無しさん:02/11/30 13:10
>307
環境によるが、プログラムを実行させ、ハードディスクのアクセスランプが点灯す
る瞬間に、パソコンの電源を抜く。

310 :デフォルトの名無しさん:02/11/30 15:37
コンパイラをDLしてきた後の設定方法を教えてください。

311 :デフォルトの名無しさん:02/11/30 16:10
>>310
コンパイラはこの世に一つしかないとでも思っているのか?
ついでにスレ違い。

312 :名無しさん@カラアゲうまうま:02/11/30 16:47
>>310
ドキュメントを読む。

313 :デフォルトの名無しさん:02/11/30 17:33
_outp _inp を使って内部スピーカーを鳴らすソースを教えてください。

314 :デフォルトの名無しさん:02/11/30 17:55
>>313
そこまで知ってるなら逆にこっちに教えてくれ

315 :デフォルトの名無しさん:02/11/30 18:39
>>313
Unix系OSだったらUnixUser読めばわかるのにね、といってみる

316 :デフォルトの名無しさん:02/11/30 19:21
>>301
遅レスだが、参考書を一冊買った方がいい。

317 :デフォルトの名無しさん:02/11/30 19:21
>>314
putchar('\007');
間接的にoutポートも使うだろ。

318 :デフォルトの名無しさん:02/11/30 19:59
>>317
out ポートは使ってるとは思うが、_outp を使ってるとは限らんぞ。

319 :デフォルトの名無しさん:02/11/30 22:08
>>317
\a

320 :デフォルトの名無しさん:02/11/30 22:45
GNU diff のソースがよくわかりません。
解説してください。

321 :デフォルトの名無しさん:02/11/30 22:48
GREPってなんやねん〜〜

322 :デフォルトの名無しさん:02/11/30 22:56
>>320
256回嫁

323 :デフォルトの名無しさん:02/11/30 23:16
>>321
上エプ 中エプ 下エプ

大文字を使った番外なオマエはさしずめビチアス海淵

324 :デフォルトの名無しさん:02/12/01 00:14
>>320
動的計画法を使った編集距離アルゴリズムについて勉強しろ。
http://www.csse.monash.edu.au/~lloyd/tildeAlgDS/Dynamic/Edit/

325 :デフォルトの名無しさん:02/12/01 00:17
何を偉そうに

326 :デフォルトの名無しさん:02/12/01 00:31
>>325
戦わなきゃ、現実と。

327 :デフォルトの名無しさん:02/12/01 00:49
GNU のソースって、やたら面倒だよね。


328 :デフォルトの名無しさん:02/12/01 00:53
「GNUの」と一括りにできる程読んでるのかと小一時間。

329 :デフォルトの名無しさん:02/12/01 01:02
>>327
根本のアルゴリズムやルーチンだけでなく、
統一されたインタフェースやエラー処理、不正入力処理、等の方が随分長いからね。
コアだけ抜き出すとかなり短い。

330 :デフォルトの名無しさん:02/12/01 01:53
grepについて。

Boyer-Moore-Mosesの検索アルゴリズムについて勉強汁。
http://www.geocities.co.jp/SiliconValley-Oakland/1680/zsaru/zsaru13.html

# しかし、有用な情報を提供できる奴はほんとに少ないな。

331 :デフォルトの名無しさん:02/12/01 01:53
int read(int *ip){
scanf("%d",ip);
return *ip;
}

insert( &g[vect], read(&val), read(&ch) );

問題点は何かと聞かれましたが,上の関数では問題点はなさそうです。
下の関数は,実行する時の動作がおかしいと言うことだろうとは思うのですが,
readを呼び出して,戻り値を引数として渡すから大丈夫だと思うのですが,
どこが問題点なのでしょうか?

332 :デフォルトの名無しさん:02/12/01 01:57
>>331
#include <stdio.h>
int read(int *ip){
scanf("%d",ip);
return *ip;
}
int main(void) {
int a, b;
printf( "%d %d\n", read(&a), read(&b) );
return 0;
}
このプログラムを動かして
100 200
を入力したときの出力はどうなるでしょう?

333 :デフォルトの名無しさん:02/12/01 02:03
100 200がでたが・・・
VC++とCマシーンで

334 :デフォルトの名無しさん:02/12/01 02:05
Σ(゚д゚lll)ガーン

335 :デフォルトの名無しさん:02/12/01 02:07
>>332
gcc 2.95.3, glibc 2.2.4では
200 100

336 :333:02/12/01 02:07
scanfの呼び出しが,引数評価の後にくるかもしれないってこと?

337 :デフォルトの名無しさん:02/12/01 02:08
>>336
お前、もう少し考えてから書けよ。

338 : :02/12/01 02:09
あ,ごめん。
200 100だった・・・
なぜ?

339 :デフォルトの名無しさん:02/12/01 02:12
>>338
引数の評価順序は未規定。

340 :デフォルトの名無しさん:02/12/01 02:12
関数の引数の評価順序は規定されていない。

341 :340:02/12/01 02:13
>>339
ケケケ、ケコーンしてくだちい


342 :デフォルトの名無しさん:02/12/01 02:15
>>339-340
ありがとう
自己嫌悪だす
出なおしてくるです

343 :デフォルトの名無しさん:02/12/01 03:11
int main(void)
{
char **s1=("ABC\0""DEF\0""GHI\0" "JKM\0"
"NLO\0""PQR\0""STU\0""VWX\0""YZ\0");
int i;
int j;
++s1;
printf("%s",s1);

return 0;
}
char **s1=("ABC\0""DEF\0""GHI\0""JKM\0"
"NLO\0""PQR\0""STU\0""VWX\0""YZ\0");

 で、文字リテラルの多次元配列を実現しようとしました。
  でも、こんな警告でる
   間接参照のレベルが 'char ** '
      と 'char [36]' で異なっています。
 また、別の見方をすると
  *s1[]={"ABC","DEF","HIJ","..","YZ"};

公書いたら↑のように宣言せねばならない。
 だけど、こう書くと文字リテラルではなくなる。

 

344 :デフォルトの名無しさん:02/12/01 03:13
成り立ってる理由はchar *s1=("ABC\0""DEF\0""GHI\0"
"JKM\0""NLO\0""PQR\0""STU\0""VWX\0""YZ\0");

 こう宣言して、++s1;すると一文字づつしかアクセス
 できない。 だが、上記のようにchar **s1="etc";
 とすると++s1;は、リテラル単位でアクセスする。
  
   すなわち、僕が考えた形は成り立ってるのだ。
 じゃあ、いったいなんで警告されるのだ。


345 :デフォルトの名無しさん:02/12/01 03:15
キティガイデタ━━━━━━(゚∀゚)━━━━━━ !!!!!

346 :デフォルトの名無しさん:02/12/01 03:17
signal()とかでタイマーで再帰的に呼び出す処理をさせる場合、親スレッドと子スレッド
がいて、子スレッドの方でこのsignalでタイマーをセットして処理させることは可能ですか?


347 :デフォルトの名無しさん:02/12/01 03:32
>>346
落ち着け。
signalはタイマーをセットしないし(たぶんalarmのことか?)、
タイマーは再帰的になにかを呼び出したりもしない。

ちゃんと説明して。

348 :デフォルトの名無しさん:02/12/01 06:07
>>343-344
最初に、何がやりたいのを書け。
char s1[][4]={"ABC","DEF","GHI"..."YS"};
char *p=(char*)&s1;
これで済む話か?

349 :デフォルトの名無しさん:02/12/01 07:28
> ++s1;は、リテラル単位でアクセスする

この間違った思い込みが元凶か。

350 :デフォルトの名無しさん:02/12/01 09:49
>>331>>332>>333
stackが効いたりしたのでしょう。

351 :デフォルトの名無しさん:02/12/01 10:38
>>350
(゚Д゚)ハァ?

352 :デフォルトの名無しさん:02/12/01 12:41
誰か 350 を翻訳してくれ。

353 :超初心者。:02/12/01 13:38
Warning: illegal pointer combination (param)
ってエラーが出るんですが何を直せばいいんでしょうか。


354 :デフォルトの名無しさん:02/12/01 14:48
346です。すみません。説明が混乱してました。

>>347
OSはLinuxなのですが、例えば signalでSIGALRMでコールバック関数
を設定してsetitimerである時間待ってから実行させる処理を再帰的に繰り返
すとします。
通常、タイマー処理(といういいかたでいいのかな)を単一スレッド内で行い
たい場合の一つの方法だと思うのですが、これを子スレッド内で
同じようにできるのでしょうか?(子スレッド内でsignal/setitimerする)
その場合、その子スレッドが終了した時にそのタイマー処理も終了するの
でしょうか?といった事が質問したかったのですが。


355 :デフォルトの名無しさん:02/12/01 14:49
>>353
お前の書いたソースコード。

356 :デフォルトの名無しさん:02/12/01 15:20
>>353
まるち。

357 :デフォルトの名無しさん:02/12/01 15:21
>>354
pthreadではsignalはメインスレッドが受けると思ったが。

358 :714:02/12/01 17:12
それは分かるんですが・・確かに2つのスレに聞いたけど。。

359 :超初心者:02/12/01 17:14
うあ、714とかいって恥ずかしい。すみませんでした。

360 :デフォルトの名無しさん:02/12/01 18:08
>>358
マルチポストが何故いけないか調べてこい。

361 :デフォルトの名無しさん:02/12/01 20:26
調べた結果マルチポストはかまわないということが分かった

362 :デフォルトの名無しさん:02/12/01 20:34
結果的にマルチ

363 :クレアラ汁:02/12/01 21:04
質問です:1kΩの抵抗に10vの電圧をかけ、流れる電流を20回計測した結果を
処理しその平均を求めるプログラムを作成してください。ただし許容差は±5%で、
電圧源の出力電圧の誤差は最大で±10%であるとする。
これらのパラメータから理論上ありえない計測値がでたら、入力データの番号と
「計測値が不正」のメッセージを出し、その回の計測は無視する。・・・・是非教えて下さい

364 :デフォルトの名無しさん:02/12/01 21:14
このスレとC言語質問所スレってどう違うんですか?

365 :デフォルトの名無しさん:02/12/01 21:16
>>363
許容差の意味がわからん。

366 :デフォルトの名無しさん:02/12/01 21:25
許容誤差のことであろう。

367 :デフォルトの名無しさん:02/12/01 21:35
>>366
ただいま電気科だがワカラン。まあ、それがわかれば簡単だすな。

368 :デフォルトの名無しさん:02/12/01 21:47
> プログラムを作成してください

(・∀・)カエレ!

369 :デフォルトの名無しさん:02/12/01 22:02
>>367
そうか?
他にも解決しなきゃいけない問題があるんじゃないか?
「電圧をかけ」「計測」「理論上ありえない計測値」

370 :デフォルトの名無しさん:02/12/01 22:04
つーか、思いっ切り環境依存の話じゃないか?
おまいら、対応は 「未定義」 でおながいします。

371 :デフォルトの名無しさん:02/12/01 22:25
電源:10v±1v
抵抗:1kΩ
電流:電源/抵抗=10±1mA
許容差:±5%
よって、9mA*±5%〜11mA±5%となり、
8.55mAから11.55mAの範囲で正常とみなす。

372 :クレアラ汁:02/12/01 22:26
電圧をかけ:電源を入れる。
許容誤差のことは気にしないで下さい。
よろしくお願いします

373 :デフォルトの名無しさん:02/12/01 22:27
許容差って平均とったときの許容誤差のことじゃなかったの?

374 :デフォルトの名無しさん:02/12/01 22:33
すれ違いなのでその話は雑談スレにでも行ったほうがいい。

375 :デフォルトの名無しさん:02/12/01 23:21
電源:10v±1v
抵抗:1kΩ
電流:電源/抵抗=10±1mA
許容差:±5%
よって、9mA*±5%〜11mA±5%となり、
8.55mAから11.55mAの範囲で正常とみなす。

376 :デフォルトの名無しさん:02/12/01 23:51
>>375
それは実効値か? 理論値か?

377 :デフォルトの名無しさん:02/12/02 00:20
>8.55mAから11.55mAの範囲で正常とみなす。
実験して取ったデータが入力された時に、
上の、正常値にならなければ、
「再度入力して下さい。許容誤差範囲外です」
とか書けば良い。



378 :377:02/12/02 00:40
「計測値が不正」のメッセージを出し
って書いてあったな。すまん。

379 :デフォルトの名無しさん:02/12/02 01:53
inline void a()
{
//作業
}

と言う関数を,ヘッダーファイルの中で,
inline void a();
void a();
のふたつで,プロトタイプ宣言してみましたが,未解決ですと表示されてコンパイルできませんでした。
そこで,関数の実体の方のinlineを取ったらコンパイルできました。
inline関数の時は,どうすればコンパイルできるようになるのでしょうか?

win98
VC++6.0
です

380 :デフォルトの名無しさん:02/12/02 02:31
低レベルだとは思いますがご教授ください
visualc++を使ったプログラミングの課題をやるのに
(まだDOS窓しか使ってないので、)文字に色をつける等ができる
関数が使えるヘッダファイル(拡張子がhのもの)を学校側からもらってるんですが

/*マクロ定義*/
#define KEY_UP (0x48)
#define KEY_DOWN (0x50)

こういったことが書いてあって
これを利用すると、キーボードの↑を押した時に
何か処理をさせるみたいなことができるらしいんですが
使い方がわかりません、どう使うんでしょうか?

381 :デフォルトの名無しさん:02/12/02 02:31
スレ違いやん?

382 :デフォルトの名無しさん:02/12/02 02:35
いつから宿題丸投げスレになったんだ?

383 :380:02/12/02 02:41
>>382
一応ポインタ変数とか構造体までやってて
操作がまだscanfで何か入力しかできないので、入力してEnter押す
では味気ないからってことで使えるようになってるだけです
課題そのものはデーターベースみたいのを作ることで全然丸投げではないです

384 :デフォルトの名無しさん:02/12/02 02:47
>>383
スレタイ分かってるか?

  「C言語のことは俺に聞け」

つまり裏を返せば

 「C言語と関係ないことは俺に聞くな」

ってこった。分かるな?

385 :380:02/12/02 02:49
>>384
C言語と関係ないなら何と関係あるんですか?

386 :デフォルトの名無しさん:02/12/02 02:51
>>385
タダの煽りなので気にしないほうがよろし。

387 :380:02/12/02 02:52
>>386
いえ、知識がないからホントにわからないんですが…

388 :デフォルトの名無しさん:02/12/02 02:55
ウィンドウプロシージャって知ってる?

389 :デフォルトの名無しさん:02/12/02 02:56
>>387
(゚Д゚)ハァ?おまえが授業中に情報聞き逃すかなんだしたんだろ?
>>380だけで使い方分かるやつなんていねーよ。

390 :デフォルトの名無しさん:02/12/02 02:56
VBすら挫折する糞SE。
PGを数人原子炉現地デバッグに缶詰にさせ数億円の被害
【八千代】ソレすら作れないってヤバいだろ【市民】
http://pc.2ch.net/test/read.cgi/prog/1038753020/l50

391 :380:02/12/02 02:56
>>388
聞いたこともないです…

392 :380:02/12/02 02:58
>>389
いえ、その使い方(全部の内容)は説明してないんです
プログラミングの経験がある人が何人か使っててできることがわかっただけで

393 :デフォルトの名無しさん:02/12/02 03:00
>>392
宿題丸投げは宿題スレへ。
WindowsでのC/C++プログラミングは、VC++スレとかで聞いてみれば?

394 :ぬるグラマー(初心者):02/12/02 03:20
>>380さんのはこんな感でできそうな感じですけど。
もっと良い方法知ってる人居たら教えて。
#include <stdio.h>
#include <conio.h>
/*マクロ定義*/
#define KEY_UP (0x48)
#define KEY_DOWN (0x50)
int main(void)
{
int c;
if(getch()==0){
c = getch();
if(c == KEY_UP)printf("KEY_UP!");
if(c== KEY_DOWN)printf("KEY_DOWN!");
}
getch();
return 0;
}


395 :ぬるグラマー(初心者):02/12/02 03:21
>>394でだめなとこも教えて。

396 :デフォルトの名無しさん:02/12/02 04:34
>>380
かわいそう…

397 :デフォルトの名無しさん:02/12/02 04:36
>>394
まともに動かねーぞゴルァ

398 :デフォルトの名無しさん:02/12/02 07:34
>>394
はっきりいってスレ違い。

>1 GUIなどの標準Cではできない事の質問は使用している開発環境のスレへ行け。


399 :デフォルトの名無しさん:02/12/02 10:20
>>394
↓ここを見ろ
http://pc3.2ch.net/test/read.cgi/tech/1038414493/10

400 :デフォルトの名無しさん:02/12/02 12:24
getsとgetline、どちらを使うほうがカッコイイ?


401 :デフォルトの名無しさん:02/12/02 12:28
>>400
getlineなんてC言語の標準ライブラリにはない。

402 :デフォルトの名無しさん:02/12/02 12:34
getlineだろ、当然

403 :403:02/12/02 13:01
UNIXでネットワークプログラミングをしているんですが、

サーバがlistenで待って、クライアントがconnectで接続。
その後、クライアントがshutdownすると、
「パイプが切断されました」と言って、サーバも終了してしまいます。

どうすればクライアントの切断(予期しない切断も含める)を
正常処理できるでしょうか?

お願いします。

404 :デフォルトの名無しさん:02/12/02 13:06
EPIPEをトラップ

405 :デフォルトの名無しさん:02/12/02 13:06
SIGPIPEをトラップ

406 :デフォルトの名無しさん:02/12/02 13:08
POSIXってなんですか?UNIXの仲間ですか?

407 :404-405:02/12/02 13:08
すまん、404は間違い。


408 :デフォルトの名無しさん:02/12/02 13:10
>>406
板違いっぽいが、UNIXベースのOSの規格。

409 :403:02/12/02 13:10
>>405さん
ありがとうございます!やってみます!

410 :デフォルトの名無しさん:02/12/02 13:12
>>406
POSIX: Portable Operating System Interface
OSのAPIの国際標準規格。

411 :デフォルトの名無しさん:02/12/02 13:12
>>408
Unixに限らない。Windows NT/2000もPOSIXに準拠してる。

412 :デフォルトの名無しさん:02/12/02 13:21
>>411
どこがどのように準拠しているのかと。

413 :デフォルトの名無しさん:02/12/02 13:34
>>403-412
スレ違い。

414 :デフォルトの名無しさん:02/12/02 13:37
どうしてgetchはWin32s およびWin32 GUI のアプリケーションでは使用
してはいけないのですか?

415 :デフォルトの名無しさん:02/12/02 13:39
>>413 逃げた!

416 :デフォルトの名無しさん:02/12/02 13:46
>>411
UNIXをベースにしてるだろが。

417 :デフォルトの名無しさん:02/12/02 13:47
>>414
これもかなりスレ違いだが、コンソールを持ってないからじゃないか?

418 :デフォルトの名無しさん:02/12/02 13:51
>>416
NT/2000がUNIXベースのOSとは初めて聞いた。

419 :デフォルトの名無しさん:02/12/02 13:53
Java や C# は C++ をベースにしているが、C++ ではない。
それと同レベルの話。

420 :デフォルトの名無しさん:02/12/02 13:56
>>419
つまり>>411は正しいということだな。

421 :デフォルトの名無しさん:02/12/02 13:58
>>420
Microsoft の言を信用するなら正しい。
一般には、完全準拠ではないと言われている。
漏れは確かめていないので分からない。

422 :デフォルトの名無しさん:02/12/02 16:36
http://support.microsoft.com/default.aspx?scid=KB;en-us;q149902



423 :デフォルトの名無しさん:02/12/02 19:01
つまり>>411は正しいということだな。

424 :デフォルトの名無しさん:02/12/02 19:03
激しくボッキ!!

425 :デフォルトの名無しさん:02/12/02 19:04
micro kernel

426 :デフォルトの名無しさん:02/12/02 19:19
>>423
>408は、POSIXがUNIXをベースにして制定されたということ。
NTが準拠してるかどうかは別問題で、>416はそのへんを誤読している。
でもNTってmachベースって話じゃなかったっけ。

427 :デフォルトの名無しさん:02/12/02 19:28
符号なし整数を使いたいのですが、
unsigned int i;
と宣言しても、符号付き整数になってしまいます。
どうやったら符号なし整数を使うことができるのでしょう?

428 :デフォルトの名無しさん:02/12/02 19:31
>>427
つーか、どうやって符号付き整数になったかどうかわかったの?

429 :デフォルトの名無しさん:02/12/02 19:39
符号付整数がとれる最大の値に1足すと、マイナスの値
になってしまうのです。

430 :デフォルトの名無しさん:02/12/02 19:42
>>429
いや、だから・・・どうやってマイナスだとわかったのかと。
もしかしてprintf("%d", i); で表示してたってオチじゃないだろうな。

431 :デフォルトの名無しさん:02/12/02 19:43
>>426
マイクロカーネルと言う意味ではmach的ともいえるけど
VMSを設計したデビッドカトラーをVAXから引き抜いて作らせたから
内部構成はVMSに似ているらしい。
(VMSを一文字ずらすとWNTになるというのはヨタ話くさいと思うけど。)

POSIXは準拠でないと一時期米政府機関がシステムを納入させてくれなかった関係で
形だけ最低限対応したというのが実態にちかいんじゃなかろか。

432 :デフォルトの名無しさん:02/12/02 19:46
そのオチでございます。
printf("%d", i);
だとあかんのですか。。。それは知りませんでした。
で、どうやって表示すればいいのでしょうか?

433 :デフォルトの名無しさん:02/12/02 19:48
>>432
printf("%u", i); デス。

434 :デフォルトの名無しさん:02/12/02 19:53
>>433
ありがとうございました!
(しかし、それは知らなかった。。。)


435 :デフォルトの名無しさん:02/12/02 20:24
>>431
実態はたぶんそんなとこだろうが、それ以前に使いようがない。
Interixってんがそうなのかなぁ。

436 :デフォルトの名無しさん:02/12/02 21:09
C言語はどうやって作ったんですか?

あとB言語ってのがあったそうですけど難しいんッスか?

437 :デフォルトの名無しさん:02/12/02 21:10
処理系や解説書の入手自体難しい。

438 :デフォルトの名無しさん:02/12/02 21:19
ってか入手できるの?

439 :デフォルトの名無しさん:02/12/02 21:30
無理なんじゃねーのB言語の発展版がC

440 :デフォルトの名無しさん:02/12/02 22:47
>>439
常識

441 :デフォルトの名無しさん:02/12/02 22:48
Bのそのまた前の
BCPLの本ならまだ売ってるが。共立出版。

442 :デフォルトの名無しさん:02/12/02 22:51
VMSをずらしたらWNTってのは本当だろう。
VMSの設計者David Cutlerが
Win NTも設計したんだから。

443 :デフォルトの名無しさん:02/12/03 00:23
>>436

↓ ここに全部書いてある
http://www.cs.bell-labs.com/who/dmr/

444 :雑談:02/12/03 00:36
「Cの次はP。その次はLである。」(DやEではない!!)
「C言語はそれ自身でかかれた言語である」

445 :デフォルトの名無しさん:02/12/03 02:45
C FAQ 20.38 そもそも、「C」という名前の由来は。
http://www.catnet.ne.jp/kouno/c_faq/c20.html#38

446 :デフォルトの名無しさん:02/12/03 15:42
変な質問なんですけど・・・。
Cで変数やら配列をたくさん使いすぎると、
変数や配列の中身が変わったりしませんか?

447 :デフォルトの名無しさん:02/12/03 15:46
>>446
メモリリークでも起こしてるだけじゃないのか?


448 :446:02/12/03 16:01
>>447
初心者なのでメモリリークの意味もあまりよくわからないです。
mallocを一切使わずにプログラムを書いているので、
その辺が原因なんじゃないかと踏んでいるんですが・・・。

とりあえず、a[50]→a[100]とかにして宣言し直したら、
配列の中身は変わらなくなりました。

449 :デフォルトの名無しさん:02/12/03 16:03
Cってそういうとこ原因わかりにくいからなぁ。

450 :デフォルトの名無しさん:02/12/03 16:04
>>448
配列の添え字外をアクセスしているに100カノッサ。

451 :デフォルトの名無しさん:02/12/03 16:13
>>445の脳ミソをオーバーフローしてるに1000pF。

452 :446:02/12/03 16:18
>>450
それはないはずです。
今まで普通に動いていたのに、配列を増やしたら急におかしくなった。
その配列はプログラムの最初以外はアクセスしないのに、
最後で出力すると中身が変わっていた。
でも、使うギリギリまでしか添字の範囲を取っていなかった。

453 :デフォルトの名無しさん:02/12/03 16:20
>>452
環境とソース。

454 :446:02/12/03 16:27
>>453
環境はよく分かりません。スイマセン。
プログラムは600行ぐらいあるのでちょっと・・・。
外部変数としての配列は20種ぐらいです。

455 :デフォルトの名無しさん:02/12/03 16:32
配列の種類増やしたぐらいでもし中身が書き変わってしまうとすれば、
俺は職を失うことになる(((( ;゚Д゚))))ガクガクブルブル

456 :デフォルトの名無しさん:02/12/03 16:33
初期化ミスに1.2ml

457 :デフォルトの名無しさん:02/12/03 16:37
>>454
関係ないとこぶち壊してたのが、配列広げたせいでそこまでカバーしちまった
とかかも。
いずれにせよ、コンパイラのバグよりも自分の環境も分からない香具師のバグ
のほうに3000nxt。


458 :デフォルトの名無しさん:02/12/03 16:40
文字列操作とかしていない?
for(i=0;i<=N;i++)
とかのNの部分とか変更ミスってない?

459 :デフォルトの名無しさん:02/12/03 16:41
Borland C++Builderとかなら、CodeGuardかければ一発でわかるんだけどな。

460 :446:02/12/03 16:47
>>457
スイマセン。

>>458
文字列は全く使っていません。
for文の中身もほとんど、for(i=0;i<N;i++) で統一しているので。
Nの部分もすべてマクロ定義にしています。

461 :デフォルトの名無しさん:02/12/03 16:49
>459
あれだ、BoundsCheckerってば、体験版あったはず

462 :デフォルトの名無しさん:02/12/03 16:54
>>446
> Cで変数やら配列をたくさん使いすぎると、
> 変数や配列の中身が変わったりしませんか?
ansi準拠な処理系かつansi準拠ななソースだと仮定すれば
「そ ん な こ と は 絶 対 に 起 こ ら な い」
よって処理系がバクっているか君のソースがバグっている
可能性から言うと君のソースがバグっている可能性が高い

463 :デフォルトの名無しさん:02/12/03 16:55
>>460
すごくまさかとは思うが・・・・
LSI-C86試食版のような、16bitコンパイラ使ってないだろな。それで
配列が1セグメントを超えてしまったような。今時ないよな。

464 :446:02/12/03 16:56
とりあえず直ったのでもう大丈夫です。
回答していただいた皆さん、ありがとうございました。

465 :デフォルトの名無しさん:02/12/03 17:24
>463
セグメント超えるような配列は、
コンパイラがさじ投げる気がするけど、、、

466 :デフォルトの名無しさん:02/12/03 17:25
>>464
いったいどう直したのか聞いてみたいのは漏れだけか?

467 :デフォルトの名無しさん:02/12/03 17:27
>>466 変数増やしたりしてたらメモリリークが気づかない箇所にうつっただけだろ。


468 :デフォルトの名無しさん:02/12/03 17:34
>>467
バグが隠れただけだってことは間違いないだろうが、malloc()は使ってないっ
つてるから(信用するなら)メモリリークじゃないだろう。つーかメモリリーク
で関係ない所を壊すって症状は、あまり聞いたことないんだが。


469 :デフォルトの名無しさん:02/12/03 18:00
スタックオーバーフローだろ。

470 :デフォルトの名無しさん:02/12/03 18:48
テスト

471 :デフォルトの名無しさん:02/12/03 20:03
>>469
446が再帰なんて使ってるとも思えんのだが。

まぁうだうだいってもソース晒す気がないのなら無駄だがな。

472 :デフォルトの名無しさん:02/12/03 20:43
>>471
スタックオーバーフローの要因なんぞ再帰以外にもあるがな。

473 :デフォルトの名無しさん:02/12/03 22:24
>>446
何度も連続してコンパイルして居ると、*.objが、前のデータを流用して、
容量増やした時に、配列の先頭を変えずに、確保しようとして、ほかの配列で
使って居る所を、上書きしたりする事もあるから、*.objを消してから
コンパイルした方が良い。

474 :デフォルトの名無しさん:02/12/03 23:31
>>473
そりゃコンパイラかリンカのバグってこと?
つーか処理系は何

475 :デフォルトの名無しさん:02/12/03 23:39
>>473
ネタか ?
インクりメンタルコンパイルかなんかでコンパイラがバグってたらあるかも知れんが、俺は聞いたことない。
ネタじゃないなら、ソースキボン。

476 :デフォルトの名無しさん:02/12/04 00:39
>>473
VC6の統合開発環境でよく起こるな。
あのバカメイクのせいで。

477 :デフォルトの名無しさん:02/12/04 01:57
構造体のポインタにつぃて聞きたいのです。

配列でない要素をポインタで扱う時
data->a=100;
と言う風にできるんですが配列の場合はどうすればいいんでしょうか?
data->b[12]=100;
とかしたいんだけど


478 :デフォルトの名無しさん:02/12/04 01:59
> data->b[12]=100;
> とかしたいんだけど

本当にそうしたいのであればそのコードでOKなはずだが。

data[12]->b = 100
とか
data[12].b = 100
とかしたいのではないかと推測。

479 :デフォルトの名無しさん:02/12/04 02:12
>>477
mallocつかわないといけないらしい。

480 :デフォルトの名無しさん:02/12/04 05:36
>>477
struct Test
{
int a;
int b[20];
};
int main(void)
{
Test* data = (Test*)malloc(10);

data->a = 10;
data->b[12]= 10;

return 0;
}
こんな感じ?

481 :デフォルトの名無しさん:02/12/04 05:54
>>480
せめて
Test* data = (Test*)malloc(sizeof(Test));
とすべきでは?

482 :デフォルトの名無しさん:02/12/04 05:56
>>477
したらええがな。

483 :480:02/12/04 05:58
失礼!そうだね。

484 :デフォルトの名無しさん:02/12/04 06:00
クソどもの集りだな
struct Test *data = (struct Test *)malloc( sizeof(struct Test) );
だろーがヴォケが。

485 :デフォルトの名無しさん:02/12/04 06:05
struct A
{
 char str[ 100 ];
};

struct B
{
 char * str;
};

void main()
{
 struct A a;
 struct B b;

 char src[] = "ABCDE";
 int srclen = strlen( src ) + 1;

 memcpy( a.str, src, srclen );
 printf( "A string is \"%s\".\n", a.str );

 b.str = (char *)malloc( srclen );
 memcpy( b.str, src, srclen );
 printf( "B string is \"%s\".\n", b.str );
 free( b.str );
}

486 :480:02/12/04 06:06
>>484
普段、C++で組んでるから癖が・・・


487 :480:02/12/04 06:08
477さん。
見たら直しといて下さいね。

488 :デフォルトの名無しさん:02/12/04 08:02
>>486
それワカル
struct hoge{
hoge* p;
};
としたらえらい怒られた。

489 :デフォルトの名無しさん:02/12/04 08:10
C++ で struct ってそんな使う?

490 :デフォルトの名無しさん:02/12/04 10:05
interface

491 :デフォルトの名無しさん:02/12/04 12:28
>>486
そうです。C++だともはやstructなんてキーワードは型キャストやsizeofに
使わないので、完全に癖になっています。

492 :デフォルトの名無しさん:02/12/04 13:24
typedef struct hoge hoge;
struct hoge
{
hoge *giko;
};

493 :デフォルトの名無しさん:02/12/04 13:37
他の言語でどうのって言い訳カコワルイだけ
#define begin { と一緒

494 :デフォルトの名無しさん:02/12/04 13:48
拡張子を".c"にしてg++でなくてgccでコンパイルしてから投稿すればいいという罠。

495 :デフォルトの名無しさん:02/12/04 15:37
>>493
それはそれで痛いが、それはわかっていてやっているので違う問題だと思われ。

496 :初心者です。:02/12/04 20:19
#include<stdio.h>
void keisan1(int a,int b);
void keisan2(int *a,int *b);
int main(void)
{
int kazu1,ans1;
int *kazu2,*ans2;
kazu1=10;
ans1=9999;
kazu2=&kazu1;
ans2=&ans1;
keisan1(kazu1,ans1);
printf("%d\n",ans1);
keisan2(kazu2,ans2);
printf("%d\n",*ans2);
return 0;
}
void keisan1(int a,int b)
{
b=a*100;
}
void keisan2(int *a,int *b)
{
*b=*(a)*100;
}
このプログラムの実行結果は
9999
1000
になります。
9999になるのは、keisan1の関数がvoidだからということでよろしいのでしょうか。
それと、呼び出しがkeisan(*kazu2,*ans2);ではなく
keisan2(kazu2,ans2); なのはなぜですか?

497 :デフォルトの名無しさん:02/12/04 20:23
>9999になるのは、keisan1の関数がvoidだからということでよろしいのでしょうか。
よろしくないです。

498 :デフォルトの名無しさん:02/12/04 20:30
keisan1の方は値のみ、keisan2の方は値が
格納されているアドレスが渡されている。

499 :初心者です。:02/12/04 20:49
void keisan1(int a,int b);
int main(void)
{
int kazu1,ans1;

kazu1=10;
ans1=9999;
keisan1(kazu1,ans1);
printf("%d\n",ans1);
return 0;
}
void keisan1(int a,int b)
{
b=a*100;
}

このプログラムの間違いはどこなのですか?

500 :デフォルトの名無しさん:02/12/04 20:54
正しい。

501 :デフォルトの名無しさん:02/12/04 20:56
void keisan1(int a, int* b)
{
*b = a * 100;
}

int main(void)
{
int kazu1 = 10;
int ans1 = 9999;

keisan1(kazu1, &ans1);
printf("%d\n", ans1);

return 0;
}
このコードを見て自分で考えるべし!!

502 :初心者です。:02/12/04 20:57
>>499のプログラムはなぜ実行結果が1000にならないのですか?(半泣)

503 :デフォルトの名無しさん:02/12/04 21:06
>502
どんなCの本にでも載っていることだとおもうが。

504 :デフォルトの名無しさん:02/12/04 21:07
>>502
void keisan1(int a, int b)の
int a 10が格納された変数
int b 9999が格納された変数

void keisan1(int a, int* b)の
int a 10が格納された変数
int* b 呼び出し元のans1変数のアドレスが格納されている変数

呼び出し元の変数の中身を変えるには変えたい変数のアドレスが必要
よって呼び出し側に中身を変えたい変数のアドレスを渡す

説明が下手でごめん・・・

505 :初心者です。:02/12/04 21:07
>>501
はい。

1.まず、int型変数kazu1とans1が作られます。
2.kazu1に整数10、ans1に整数9999が入りました。
3.keisan1関数に10とans1のアドレスが飛びます。
4.keisan1関数で10×100、つまり1000が*bに格納されます。
5.keisan1関数から、10とans1のアドレスが帰ってきました。
6.ans1の中身は1000なので、printfの実行結果は1000になります。

あってますか?


506 :デフォルトの名無しさん:02/12/04 21:11
>>505

> 5.keisan1関数から、10とans1のアドレスが帰ってきました。

アドレスなんかどこで返してるか?



507 :デフォルトの名無しさん:02/12/04 21:11
OK!!


508 :デフォルトの名無しさん:02/12/04 21:13
>>507
訂正。
>>506さんが言うようにそこはおかしい。


509 :初心者です。:02/12/04 21:17
じゃあ何が帰ってきてますか?

510 :デフォルトの名無しさん:02/12/04 21:17
>>476
nmake.exe のせいと言うことか ?
nmake.exe のバグで、>>473 みたいなことするのは難しいと思うぞ。
それとも、お前のバカメイクと言う奴は *.obj の中身を触ってるのか ?

511 :デフォルトの名無しさん:02/12/04 21:21
>>509
帰るというニュアンスがおかしい。
keisan1関数に値を渡しているだけ。


512 :511:02/12/04 21:23
「渡す」より「教えている」の方が分かりやすいかな?

513 :初心者です。:02/12/04 21:24
>>511
keisan1関数はmainになにも値を返していない?

514 :デフォルトの名無しさん:02/12/04 21:25
何も返さないから、voidっていうことにしたいんですね :-)

515 :デフォルトの名無しさん:02/12/04 21:26
>>513
VBと混同していない?
C言語では引数で「返す」ことはできない。

516 :511:02/12/04 21:27
>>513
そう。
返すとは、
int keisan1(int a)
{
return a*100;
}
のようにする事。

517 :デフォルトの名無しさん:02/12/04 21:28
>>515
引数で返すことができないと言い切ってしまうと間違いになるが。

518 :初心者です。:02/12/04 21:28
やはり誤解していました。
値を返すにはreturnが必要なのですね!

519 :初心者です。:02/12/04 21:29
値を二つ返したい場合は、
return (a,b)ですか?

520 :デフォルトの名無しさん:02/12/04 21:31
>>519
そうきたか、やっぱり。

521 :511:02/12/04 21:32
いや、値を複数返すのは不可能だから、
引数で*を使用してやるしかない。

522 :デフォルトの名無しさん:02/12/04 21:33
さてポインタの話になるわけだが。

523 :デフォルトの名無しさん:02/12/04 21:33
>>520
予想通りでしたか?
最初はみんな考えそうなことですね。

524 :初心者です。:02/12/04 21:36
なるほど〜。だからポインタが必要になるわけですね。

ポインタだと、変数の中身を関数で変更してしまうから値を返す必要がないというわけですね。

525 :デフォルトの名無しさん:02/12/04 21:37
さてここからポインタ厨の講釈が始まるわけだが。

526 :JPS ◆M0LaMzf5rY :02/12/04 21:37
ローマ字を日本語に直すプログラムを作ろうと思うんだけども。
最初は半角カタカナでやったほうがいいよえね?
全角って2バイト?

527 :デフォルトの名無しさん:02/12/04 21:37
とりあえずこの初心者は話にならんから、
K&Rでも真っ当に読み直せ。以上。

528 :デフォルトの名無しさん:02/12/04 21:38
>>524
そうだね。

529 :初心者です。:02/12/04 21:38
ああ、わかった。うれしい!

みなさま、感謝です!
試験まであと4日、がんばります!

530 :JPS ◆M0LaMzf5rY :02/12/04 21:41
あ。なんでgetchar使うときはint型の変数使うんでつか?

531 :デフォルトの名無しさん:02/12/04 21:41
>>529
がんばれよ!!

532 :デフォルトの名無しさん:02/12/04 21:43
>>530
charだと0xffとEOFの区別がつかないから。


533 :デフォルトの名無しさん:02/12/04 21:43
>>530
初心者は素直にFAQよんどれ。なんども厨房な質問すんな。

534 :デフォルトの名無しさん:02/12/04 21:44
>>529
他人事ながら心配になってきた。もしかしてネタ?

535 :初心者です。:02/12/04 21:44
>>531
はい!ありがとうございます!
あと4日でポインタ配列まではマスターしなければならないので、
また教えてくださいね。

536 :JPS ◆M0LaMzf5rY :02/12/04 21:47
>>532
0xffって具体的に何?

537 :初心者です。:02/12/04 21:48
>>534
日曜日に情報処理活用能力検定2級受けてきます。

538 :デフォルトの名無しさん:02/12/04 21:49
>>536
だからFAQ読めって。お前は自分の都合の悪いことは無視して、
質問することしかできんのか?

539 :532:02/12/04 21:50
…。
これ以上どう具体的にしろと……。


540 :デフォルトの名無しさん:02/12/04 21:51
>>536
ASCIIコード表でも見れや。


541 :デフォルトの名無しさん:02/12/04 21:51
つーか、>>1
>入門書レベルの質問はC言語質問所スレへ行け。
って書いてあんのにさ。きっちり誘導すれば厨房初心者は向こう
行ったろうに。気まぐれで答えてやったりするから収拾つかなくなる。

542 :デフォルトの名無しさん:02/12/04 21:53
>>536
16進数 0xff
10進数 255
2進数 11111111

543 :デフォルトの名無しさん:02/12/04 21:54
さてJPSはまたしても無視するわけだが。

544 :質問に答えてきた者:02/12/04 21:55
>>541
すまん、>>1を読んでなかった・・・

545 :初心者です。:02/12/04 21:56
C言語質問所 <45>
http://pc3.2ch.net/test/read.cgi/tech/1038324550/

↑こちらで質問したほうがよかったですか?
ずいぶん荒れていたので・・・。すいません。

546 :デフォルトの名無しさん:02/12/04 21:58
「C言語のことは俺に聞け」とあれば聞きたくなる気もする。

でも入門書レベルの質問は以下にお願いします。

C言語質問所 <45>
http://pc3.2ch.net/test/read.cgi/tech/1038324550/

547 :JPS ◆M0LaMzf5rY :02/12/04 21:59
255?それがなにか意味あるの?
unsigned charだったら表現できるしょ?

548 :デフォルトの名無しさん:02/12/04 22:00
>>546
正直言って「C言語のことは俺に聞け」とあればネタスレだと思ってしまう。
でもあっちは荒らされているのでこっちにも書きたくなる。

549 :デフォルトの名無しさん:02/12/04 22:01
やはりJPSは無視し続ける訳だが。氏ね。

550 :デフォルトの名無しさん:02/12/04 22:03
>>548
あっちは
>まずは腕立て伏せ100回。
>話はそれからだ。
だもんなあ〜。

551 :JPS ◆M0LaMzf5rY :02/12/04 22:05
だれか教えてくれええええ
入門書に書いてないYO!
K&Rに任意の可能なcharってあるけど
charだと256種類表現できるわけでしょ?
そこには英数字いれても十分空きがあるわけだから
0xffはcharで表現できるんでないの?

552 :デフォルトの名無しさん:02/12/04 22:08
>>551
EOFを入れて257種類だってば。

553 :JPS ◆M0LaMzf5rY :02/12/04 22:09
>>552
ってことはcharで256個の文字を保持してるってこと?
ANSCIIのコード表だと127個しかないけどもどゆこと?

554 :デフォルトの名無しさん:02/12/04 22:10
>>553
ASCIIしか相手にしないの?


555 :晒しage:02/12/04 22:10
ANSCII

556 :デフォルトの名無しさん:02/12/04 22:12
>charで256個の文字を保持してる

重症だな

557 :デフォルトの名無しさん:02/12/04 22:13
>>551
getchar() の入力が必ずキーボードであると想定するな。

558 :JPS ◆M0LaMzf5rY :02/12/04 22:14
いま色々みてたら、EOFの値は処理系依存で、大抵-1だけど
charが符号付かどうかも処理系依存だから、符号なしの場合は
EOFを認識できないからintを使うって書いてたけど、これであってんの?

559 :デフォルトの名無しさん:02/12/04 22:15
>>557
身近なところだとファイルからリダイレクトってのがあるな。

560 :デフォルトの名無しさん:02/12/04 22:15
JPS ってさ、出てきた時は、正直、こいつちょっと頭悪いんじゃないか
って思ってたけどさ。そうじゃなかったよ。








ものすごく頭悪い。

561 :デフォルトの名無しさん:02/12/04 22:17
まあ、色々な疑問を持つのは良いことだけど・・・

562 :JPS ◆M0LaMzf5rY :02/12/04 22:19
ていうかchar型で256種類もどんな文字あるの?


563 :デフォルトの名無しさん:02/12/04 22:19
>>560
お前も昔は同じようなもんだったんだろ?プ

564 :ためしに誘導してみるテスト:02/12/04 22:20
>JPSさん
厨房な質問はこちらでお願いします
c言語質問所
http://pc3.2ch.net/test/read.cgi/tech/1038324550/l50

565 :デフォルトの名無しさん:02/12/04 22:20
>>558
何のページをみてるんだか知らんけど、その説明じゃ大嘘だ。
(よりによってなんでまたそんな説明のページを…)
charが符号つきだろうが符号なしだろうが関係ない。


566 :デフォルトの名無しさん:02/12/04 22:22
カレー

567 :デフォルトの名無しさん:02/12/04 22:22
>>564
あっちでは逆にこっちに誘導しているみたいだけど
どうなってんの?

568 :JPS ◆M0LaMzf5rY :02/12/04 22:23
>>565
この説明が一理あるのも分かるけど。
EOFって文字じゃないわけでしょ?ただの整数値だよね?
それだったらEOFもchar型の文字にしてって事はなんでしないの?


569 :JPS ◆M0LaMzf5rY :02/12/04 22:25
getcharによって入力された文字がAだったとします。
しかし変数に記憶されるデータは65という数値データになるのです。
この65という数値はAに対応する「文字コード」になっています。
getcharは取得した文字を文字コードに変換して変数に記憶させるため、
int型を利用します。

この説明で正しい?

570 :デフォルトの名無しさん:02/12/04 22:25
>>568
じゃあお前のプログラムが読むファイルに 0xff が出てきたら
そこがファイルの終端ってことにしろよ。絶対しろよ。

571 :デフォルトの名無しさん:02/12/04 22:27
>>568-569
557 や 559 は完全無視か?
getchar() の正常値は、char が取りうる全ての値。
そのどれかを EOF にすると、正常値なのか EOF なのか判断できなくなる。

572 :デフォルトの名無しさん:02/12/04 22:27
>>568
まあchar型を8bitと仮定しよう
そうするとchar型のとり得る値には256通りあるわけだ。
よって必然的にgetchar()の返す値も最低256通り必要になる。
そしてそれに加えてEOFという特殊な印を1種類返す必要があるわけだ。
そうするとgethcar()は最低257通りの値を返さないといけないことになる。
つまりchar型では不可能なんだよ。分かる?

573 :デフォルトの名無しさん:02/12/04 22:29
JPS に一言。
getchar() が返すのが文字であって、数値ではないと思っているのなら間違っているから改めてくれ。

574 :デフォルトの名無しさん:02/12/04 22:30
>>572
おっ、分かりやすい。

575 :デフォルトの名無しさん:02/12/04 22:30
>>571-572
お前ら優しいな。

576 :JPS ◆M0LaMzf5rY :02/12/04 22:31
ああ!わかりますた。256種類使うかどうかに関係ないんでつね。
0〜255の値を返すから、それ以外の整数地をEOFにするんでつね?

577 :デフォルトの名無しさん:02/12/04 22:32
>572
ふと思ったけど、sizeof(char) == sizeof(int)な環境はどうなるんだろう...?

578 :デフォルトの名無しさん:02/12/04 22:33
>>576
0〜255かどうかは処理系依存だが
まぁだいたい理解できたみたいだからOK

579 :JPS ◆M0LaMzf5rY :02/12/04 22:35
ありがとございました。
>>577
色々調べてたらこんなのがありますた。

getchar は文字を返す関数なのだから、 char の変数に戻り値を受けた。なぜこれが非難の的になるのか。

 あまり難しく考えることはありません。マニュアルを見てください。どのマニュアルにも、 getchar() の型は int と書かれているし、ANSI Cではそのように定義されています。従って、 getchar() の戻り値は int の変数で受けるのです。
 getchar() は、実際、0〜255の値と、 EOF という値(おそらく-1)の、合計257通りの値を戻します。これは char の範囲では受け切れません。あえて char の変数で受けるなら、 EOF と255は区別できないことになります。

 「私の処理したいファイルの中には255などという文字コードは使われていないから char で受けても実害はない」という主張を見たことがありますが、 int で受ければさらに実害はないはずです。



580 :デフォルトの名無しさん:02/12/04 22:36
つまり色々調べずに質問してた、と。

581 :デフォルトの名無しさん:02/12/04 22:37
>580
まあ調べもしないヴァカな質問にも、答える香具師がいるからな。

582 :JPS ◆M0LaMzf5rY :02/12/04 22:40
調べてもわからないんです。
自分で確認しながらじゃないと、理解できないんで。
ここでみんなと語らい、確かめてますた。

583 :JPS ◆M0LaMzf5rY :02/12/04 22:42
ふと思ったけど、もしね、char型がgetchatのためにあったとしたら、
0xffをEOFとすれば、int使わなくてもいいんだよね?


584 :デフォルトの名無しさん:02/12/04 22:43
>>583
言いたいことは分かるが。

585 :デフォルトの名無しさん:02/12/04 22:43
ISO/IEC 9899:1999
7.19.7.6 The getchar function
Synopsis
1 #include <stdio.h>
int getchar(void);
Description
2 The getchar function is equivalent to getc with the argument stdin.
Returns
3 The getchar function returns the next character from the input stream pointed to by
stdin. If the stream is at end-of-file, the end-of-file indicator for the stream is set and
getchar returns EOF. If a read error occurs, the error indicator for the stream is set and
getchar returns EOF.

getchar() が返す正常値については何も記述がない。

586 :デフォルトの名無しさん:02/12/04 22:43
>>582
アセンブラ勉強すると理解度UP

587 :デフォルトの名無しさん:02/12/04 22:46
>>583
分からん。どゆこと?

588 :デフォルトの名無しさん:02/12/04 22:46
>>584
わかるのか、すごいな。
漏れは分からなかったぞ。

589 :JPS ◆M0LaMzf5rY :02/12/04 22:47
>>585
getchar()が返す正常値ってchar型の文字のコードでないの?

590 :デフォルトの名無しさん:02/12/04 22:49
>>577
getchar()が返す正常値は処理系のchar型の範囲じゃないのではないか。

The byte input/output functions those functions described in this subclause that
perform input/output: fgetc, fgets, fprintf, fputc, fputs, fread,
fscanf, fwrite, getc, getchar, gets, printf, putc, putchar, puts,
scanf, ungetc, vfprintf, vfscanf, vprintf, and vscanf.


591 :デフォルトの名無しさん:02/12/04 22:51
ちなみに、EBCDIC 942 では、~ は 0xFF だな。

592 :デフォルトの名無しさん:02/12/04 22:51
>>590
??

593 :デフォルトの名無しさん:02/12/04 22:52
>>589
だから何度も文字とは限らんと言っているだろう。
大体文字コード体系も限定されとらん。
0〜255まですべて文字で使うコード体系の環境で動くプログラムをC言語で組むかもしれないだろ。

594 :デフォルトの名無しさん:02/12/04 22:55
ちなみに、Wingdings では 0xFF は Windows ロゴだな。

ASCII 系の環境でも、あるコードが ASCII に定められていないからと言って
文字として使われていないとは思わない方がいい。

595 :JPS ◆M0LaMzf5rY :02/12/04 22:55
>>593
591みたいにね。文字とは限らんって他にはたとえば何があるのかな?

596 :デフォルトの名無しさん:02/12/04 22:55
>>585
> getchar() が返す正常値については何も記述がない。

それは...

> The getchar function is equivalent to getc with the argument stdin.

だから記述がないだけ。getchar() → getc() → fgetc() にある。

If the end-of-file indicator for the input stream pointed to by stream is not set and a
next character is present, the fgetc function obtains that character as an unsigned
char converted to an int and advances the associated file position indicator for the
stream (if defined).

597 :デフォルトの名無しさん:02/12/04 22:58
>>595
111111111111111100000000000000111111
みたいな文章でなくて何かのデータを
getchar() で読み込むことだってあるのよ。

598 :JPS ◆M0LaMzf5rY :02/12/04 23:00
>>597
ああ。それがさっき言ってたファイルの話か。
ベンキョウになりますた。

599 :デフォルトの名無しさん:02/12/04 23:01
>>549
プ

600 :デフォルトの名無しさん:02/12/04 23:02
>>597
それ文字やん。誰も「文章」云々は議論しとらん。話をややこしくするなよ。

>>598
何の勉強になったんだ ?


要は、バイナリデータを getchar() で読むこともあるってこと。あまりお勧めではないけどね。

601 :デフォルトの名無しさん:02/12/04 23:03
>>600
>>597の1111・・・ってのはそういう文字列のことを言っているわけではないと思うんだが・・・

602 :デフォルトの名無しさん:02/12/04 23:05
本当に分かったのか…?

603 :JPS ◆M0LaMzf5rY :02/12/04 23:05
バイナリデータを読み込むのに使うんだなって勉強になりますた。

604 :デフォルトの名無しさん:02/12/04 23:05
>>600
>要は、バイナリデータを getchar() で読むこともあるってこと。あまりお勧めではないけどね。
なんで?フツーに大丈夫だと思うが。お勧めでない理由は?根拠は?

605 :JPS ◆M0LaMzf5rY :02/12/04 23:08
>>602
わかったYO!なんとなくだけど。
バイナリデータだったらそのまま0と1の羅列でしょ?
8bitをフルに使う可能性は120%あるってことか!

606 :デフォルトの名無しさん:02/12/04 23:09
漏れも、fread() を使って 1 文字ずつ読むとか一気に読んでバッファリングして
プログラムを複雑にしたりするくらいなら、getchar() や fgetc() のがいいと思う。
元々 FILE はバッファを持っているし。

607 :デフォルトの名無しさん:02/12/04 23:10
ブランクって空白文字のこと?
タブとかいれないで。いわゆるスペースか?

608 :デフォルトの名無しさん:02/12/04 23:10
定義による

609 :デフォルトの名無しさん:02/12/04 23:16
すっとこどっこい

610 :デフォルトの名無しさん:02/12/05 00:02
厨房だった俺はオヤジの洗濯屋けんちゃんを発見して
サルの様に抜きまくっていたのはいいんだが、
なぜか自己嫌悪に駆られてビデオを捨ててしまったのだよ(オヤジのなのに)。

あれから15年近く経つけど、オヤジは何も言ってこない。
でもひょっとしてオヤジも大切にしてたのかも…と思うと、やっぱり返してあげたいんだよね。


611 :デフォルトの名無しさん:02/12/05 00:03
ええ話あげ

612 :デフォルトの名無しさん:02/12/05 00:07
すれ違いサゲ

613 :デフォルトの名無しさん:02/12/05 00:27
>>610
泣けました・・・

614 :デフォルトの名無しさん:02/12/05 00:28
ビデオデッキを捨てたのか・・・

615 :デフォルトの名無しさん:02/12/05 00:28
泣けるか!ヴォケ。

616 :デフォルトの名無しさん:02/12/05 00:34
質問。
今、VC6 でこんなコードが通るのを確認してしまった。

int $ = 123;
printf("%d\n", $);

変数名に $ は OKなの??

617 :デフォルトの名無しさん:02/12/05 00:43
>>616
漏れも通った

printf("%d\n", $_);

Perlっぽいな

618 :デフォルトの名無しさん:02/12/05 00:44
VCで通るからといって規格上正しいコードと思ったら大間違い。

619 :デフォルトの名無しさん:02/12/05 00:48
VC++的には正しいコードなんだろ。

620 :デフォルトの名無しさん:02/12/05 00:50
規格上正しいコードだからといって
メジャーなコンパイラで通ると思ったら大間違い。

621 :デフォルトの名無しさん:02/12/05 00:52
>>616
gccでも通るよ。

622 :デフォルトの名無しさん:02/12/05 00:55
>>617
「漏れも」 じゃなくてコンパイラを書いてくれ。

gcc-2.95.1 で通った。
BCC 5.5.1 では通らなかった。

まあ、C では $ はメタ文字じゃないから、通ってしまうのもわからんでもないが・・・。

623 :デフォルトの名無しさん:02/12/05 00:56
template<typename $> hoge(){$ $$}

よし、今日からこうしよう。
Tはもう古い。通はこれ。

624 :デフォルトの名無しさん:02/12/05 01:00
しかし規格にも MSDN にも、識別子に $ が使えるなんてちっとも書いてないんだよなあ・・・。

625 :デフォルトの名無しさん:02/12/05 01:03
>>623
ほんとにPerlみたいだよ…

626 :デフォルトの名無しさん:02/12/05 01:10
std::string A$;

627 :デフォルトの名無しさん:02/12/05 01:19
結論:
$はperlっぽい。


      $   は   p   e   r   l   っ   ぽ   い   。

628 :デフォルトの名無しさん:02/12/05 01:25
>626はBASICっぽいがな。


629 :デフォルトの名無しさん:02/12/05 01:27
>>616
というか、どういう経緯でそういうコードを書こうと思ったのか知りたい。

そういえば、昔、知り合いが _ だけの変数を使っていて、間違いじゃないけど、
ちょっとショックを受けた。

630 :デフォルトの名無しさん:02/12/05 01:29
>>629
知り合いは MLer!!

631 :デフォルトの名無しさん:02/12/05 01:30
int _;
_= --_ - _--;

632 :デフォルトの名無しさん:02/12/05 01:31
>>631
禿しく未定義!!

633 :デフォルトの名無しさん:02/12/05 01:32
>>631
nxt?

634 :デフォルトの名無しさん:02/12/05 01:32
モールス信号みたいね。

635 :デフォルトの名無しさん:02/12/05 01:34
_ は Splus だヴぁー?(・┏┓・)

636 :デフォルトの名無しさん:02/12/05 01:37
BrainFacker

637 :デフォルトの名無しさん:02/12/05 01:41
日本語変数名使用可能なC処理系ってあったよね?
int  =2,(・,┏,┓,・),; /* 全角スペースは使用できるだろうか? */
char *ヴァー="(・┏┓・)";
printf("%d\n", );

638 :相互リンク:02/12/05 01:42
http://pc3.2ch.net/test/read.cgi/tech/1038031395/266-

>>622 が gcc で通ったと報告しなかったらうんちMSが
「これだから VC++ は…」と言っていたに5600万ガバス!

639 :デフォルトの名無しさん:02/12/05 01:47
GCC.EXE (GCC) 3.2 (mingw special 20020817-1)
でも通りました。>$

640 :デフォルトの名無しさん:02/12/05 01:48
>>627
perlなら$_を使え!

$_ = 2;
main(){
 printf("%d\n",$_);
}

641 :デフォルトの名無しさん:02/12/05 02:00
>>640 それだ!(gcc 3.2 on Cygwin)

$_=1,*$=&$_,$1;
main() {
 *$='#'%~!&$1;//
 printf("%d\n",*$);
}

642 :デフォルトの名無しさん:02/12/05 02:07
_;main(){printf("%d\n",
  (6^_^9)
);}

643 :デフォルトの名無しさん:02/12/05 02:08
>>642
そろそろつまらん

644 :デフォルトの名無しさん:02/12/05 02:11
C言語始めたいんだけど、お勧めの参考書あります?

645 :デフォルトの名無しさん:02/12/05 02:16
/* Hello world */
#include <stdio.h>
int main(){
printf("Welcome to HellWorld!");
return 0;
}

646 :デフォルトの名無しさん:02/12/05 02:17
ここは参考になるかも。
ttp://homepage2.nifty.com/rohizuka/ka/pa_003_a.htm

647 :デフォルトの名無しさん:02/12/05 02:20
呪いは始まったとか書いてあったんですけど・・

648 :デフォルトの名無しさん:02/12/05 03:03
pa_003_a はもういいでつ

649 :デフォルトの名無しさん:02/12/05 03:18
$は規格が出来る前のコンパイラで使えた。
gccは互換性のため$を使えるようにしているが、オプション指定でエラーにすることも出来る。

ってことだったような。

650 :デフォルトの名無しさん:02/12/05 06:04
わかった、こうだ!!

double A = 12.345;
char A$[] = "abcde";

651 :デフォルトの名無しさん:02/12/05 13:29
>>650
外出

652 :デフォルトの名無しさん:02/12/05 16:02
ちょっと質問。

for(...) {
 for(...) {
  if(...) {
   処理1;
   goto next_loop;
  }
 }
 処理2;
next_loop:
 ;
}

これをgotoもフラグも使わずに書ける?
関数を分けるとかも無しで。

653 :652:02/12/05 16:07
ちなみに、ifや2番目のforの条件式の中身は、
その上のループカウンタに依存します。

654 :デフォルトの名無しさん:02/12/05 16:07
setjmp...longjump...

655 :デフォルトの名無しさん:02/12/05 16:20
そんな制御文作るやつの宿命だ > goto hell

656 :652:02/12/05 17:19
>>653
こうですか?

for(...) {
 jmp_buf mark;
 if(setjump(mark) == 0) {
  for(...) {
   if(...) {
    処理1;
    longjmp(mark,1);
   }
  }
  処理2;
 }
}


657 :652:02/12/05 17:21
× >>653
>>654

658 :デフォルトの名無しさん:02/12/05 19:25
>>652
for(...) {
  for(...;式;...) {
    if(...) {
      処理1;
      break;
    }
  }
  if (!式) {
    処理2;
  }
}
式はフラグとみなすか?

659 :デフォルトの名無しさん:02/12/05 19:34
処理1の中で式の値が変わるかも。

660 :658:02/12/05 19:53
for(...) {
  for(...;;...) {
    if (!式) {
      処理2;
      break;
    }
    if(...) {
      処理1;
      break;
    }
  }
}

661 :デフォルトの名無しさん:02/12/05 20:33
さっさとbreak label;を仕様に盛り込め

662 :デフォルトの名無しさん:02/12/05 21:15
bolandのコンパイラの設定の方法を優しく教えてくれるサイトはありませんか?
なければ誰か教えてください

663 :デフォルトの名無しさん:02/12/05 21:31
質問があります。
私は、C言語でDOS/VマシンのCOM1ポート(RS232C)を
DOSモードで制御して外部機器へ命令したいと考えています。
しかし、ネットや本で調べたところVBなどで書くのが主流のようで
プログラムの方法がわかません。

なんらかの情報でもよいので教えていただけませんか?
よろしくお願いします。

664 :デフォルトの名無しさん:02/12/05 21:34
プリプロセッサに対して、
#error "逝ってよし"
みたいなことが出来ますが、
これをメッセージだけ表示するようにすることは
できますか?

665 :デフォルトの名無しさん:02/12/05 21:52
if((fp=fopen("a.txt","r"))==NULL) exit(-1);
これで、exitをfflushにしてファイル操作をやめてプログラムを続行するのは駄目ですか?

666 :デフォルトの名無しさん:02/12/05 21:53
>>663
DOS/VではVBは動かんと思われ


667 :デフォルトの名無しさん:02/12/05 21:55
>>665
何をfflushするんだよ。stdoutか?
意味のある処理が続行できるんなら続行しろよ。
そんな一行だけ見せられても、お前のプログラムの仕様なんて分からん。


668 :デフォルトの名無しさん:02/12/05 22:10
>>667
いや、こういうのをよく見るんだけど、exitでは全てのファイルバッファをフラッシュするというから
そういうことをする必要があるのかなと思って…
そのまま続行したい場合は何もしなくていいのですか。

というか変なこと言ったみたいですね。スマソ

669 :デフォルトの名無しさん:02/12/05 22:11
Pythonを基礎の基礎の基礎から始めたいんですが、本とかじゃなくてサイトで学習したいです。
オススメのサイトってありますか?

670 :デフォルトの名無しさん:02/12/05 22:14
はいネタおもしろい〜

671 :669:02/12/05 22:16
>>670
え?誰に言ってるの?俺?
全然ネタじゃないですが・・・
Pythonって駄目なんですか?

672 :668:02/12/05 22:17

折れ?
だとしたらもういいや、鬱だ寝よう

673 :デフォルトの名無しさん:02/12/05 22:18
WindowsMEを使用しているのですが、
Cドライブのなかの「AUTOEXEC.BAT」にパスを書込めば完成なのでしょうか

674 :デフォルトの名無しさん:02/12/05 22:20
・・・

675 :673:02/12/05 22:21
ダメです。コンパイラ動きません。

676 :デフォルトの名無しさん:02/12/05 22:22
>>1 も見ないようなクソ共に一体何を教えろというのだ

677 :673:02/12/05 22:40
間違えてBAKのほうに書いていました。

678 :デフォルトの名無しさん:02/12/05 23:11
bak all right. bak all right!

679 :デフォルトの名無しさん:02/12/05 23:23
つい先日Cを始めたんです。
今勉強してるんですがどうしても
for文、while文が理解できません。
どなたか教えていただけないでしょうか?
あと、for文ってCを学ぶ上でそんなに重要なものなんですか?
よろしくお願いします。

680 :デフォルトの名無しさん:02/12/05 23:31
for(A;B;C)D;

A;label:if(B){D;C;goto label;}

while(A)B;

label:if(A){B;goto label;}

681 :デフォルトの名無しさん:02/12/05 23:31
>>679
なくてもプログラムは書ける
…が、絶対覚えたほうがいい。
書き直すとこうなる

for( i = 0; i < 5; i++ ) {....}

i = 0;
while( i < 5 )
{
  i++;
}

682 :679:02/12/05 23:41
いろいろ自分なりにも勉強してるんですけど
難しいですね。

for(式1,式2,式3){...}

式1=初期化の式
式2=繰り返すかどうか調べる式
式3=変化のための式

こう書いてあるのを理解しようとしているのですが・・・。
高校一年生には難しいです。
それとも深く考えすぎですかね?

あと、もう一つせっかくなので質問させていただきますが
for文、while文はどちらも似た様なものなんですよね?
ということはどちらか一つだけ覚えれば十分てことですか?
よろしくお願いします。

683 :JPS ◆M0LaMzf5rY :02/12/05 23:45
>>679
for文はwhileぶんと似てるよね。たとえばさ

for(i = 0 ; i < MAX ; i++)
  printf("%d",i);
っていうのは

int i = 0;
while(i < MAX)
{
  printf("%d",i);
  i++;
}

ってなるしょ?whileに+αしたのがforって感じかな。
この場合はforの方がすっきりしてみやすいけど、
whileの方がずっと見やすい事もある。初期化が不要だったり、ポインタ演算使うときとか。
だから両方覚えたほうがいいYO!

684 :デフォルトの名無しさん:02/12/05 23:45
>似た様なもの...ということはどちらか一つだけ覚えれば十分

それ言ったらifとgotoでも十分だが最も意味的に
分かりやすいのを書くのが定石

685 :デフォルトの名無しさん:02/12/05 23:48
exitの仮引数って意味はあるんですか?
どんな値を渡しても、ちゃんと終了してくれるんでしょうか?
あと、returnに1とか渡して、main関数を終わらせるのは、間違ってますか?

686 :デフォルトの名無しさん:02/12/05 23:48
htmlファイルの解析したいんですけど
例えばソースファイル内に<B>があるが探したい場合
どうすれば効率よく検索できますか?

687 :デフォルトの名無しさん:02/12/05 23:49
char *stringがあって、stringの中に\が含まれていたら、それを\\に置き換えたいです。

string = "hoge\\hoge\"
処理後↓
string = "hoge\\\\hoge\\"

stringを1文字目から見ていって、\があったら、それ以降の文字を1つずらして、\を挿入するように
したいのですが、文字列をずらす、もしくは文字を文字列に挿入するといった関数はありますか?

688 :デフォルトの名無しさん:02/12/05 23:51
>>685
exitの引数はシェルへ返す値だったとも終われ。
どちらの方法も間違いではない。

689 :デフォルトの名無しさん:02/12/05 23:52
>>685
mainが0以外を返すというのはエラーが起こったと言うことですね。

690 :デフォルトの名無しさん:02/12/05 23:53
>>687
それ、文字列の長さとかを拡張したりしなきゃいけないんでかなり大変。がんばって!

691 :デフォルトの名無しさん:02/12/05 23:53
>>686
exitのときは、色々処理をしていますよね?
私も詳しい事はわかりませんが、りふぁんれすに書いてありました。
return 1とした場合、どんな意味があるんですか?
異常終了してことを教えているんでしょうか?

692 :デフォルトの名無しさん:02/12/05 23:53
>>686
文字列 検索 アルゴリズム
でGoogle検索。

>>687
ない。
ずらすときは確保したメモリからはみださないようにな。

693 :デフォルトの名無しさん:02/12/05 23:53
>>689
一概には決まってなかった気が。結局環境依存になると思われ。

694 :デフォルトの名無しさん:02/12/05 23:54
>>689
ありがとうございます。
exitの方が好ましいということはないんでしょうか?
返す値は1とかでいいんですね?

695 :デフォルトの名無しさん:02/12/05 23:56
>>687
別領域にコピーしながらやるがよろし。

>>691
0なら正常、非ゼロなら異常終了という以外は
なにも決まっていない。1として良いかどうかも処理系定義。

完全にポータブルにしたければEXIT_SUCCESS(=0)と
EXIT_FAILURE(値は処理系定義)以外は使えない。

696 :デフォルトの名無しさん:02/12/05 23:58
やはりCは文字列の扱いがめんどくさいね。

697 :デフォルトの名無しさん:02/12/05 23:58
MSDNより

exit 関数と _exit 関数は値を返しませんが、
親プロセスが待ち状態の場合は、呼び出し側プロセスの終了後に、
親プロセスが status の下位バイトを受け取ります。
status は、オペレーティング システムのバッチ コマンド
ERRORLEVEL で参照でき、次の 2 つの値のどちらかで示されます。
EXIT_SUCCESS は 0 です。EXIT_FAILURE は 1 です。

# statusはexitの引数のことね


698 :デフォルトの名無しさん:02/12/05 23:59
>>694
まあ、あれだ、シェルスクリプトを書くときにコマンドの返り値によって処理を変える
とかそういった使い方かな。

699 :デフォルトの名無しさん:02/12/06 00:07
>>C言語でやるのだったらはどうすればよいでしょうか?

700 :デフォルトの名無しさん:02/12/06 00:12
>>699
意味不明

701 :デフォルトの名無しさん:02/12/06 00:15
>>700
それを言いたいためだけに2レスも消費したんですか?


702 :デフォルトの名無しさん:02/12/06 00:18
>>699
GetExitCodeProcess


703 :デフォルトの名無しさん:02/12/06 00:18
main関数がintを返すのって規格だよね?
return 書いてないのは、だめなんでないの?

704 :デフォルトの名無しさん:02/12/06 00:20
おっと、ここはWinスレじゃなかったか

705 :デフォルトの名無しさん:02/12/06 00:21
C99ではmain関数の終端は勝手にreturn 0;になる

706 :デフォルトの名無しさん:02/12/06 00:23
>>703
mainに限ってはreturnがなくても0を返すとみなすっていう話題が最近あったような・・・

707 :デフォルトの名無しさん:02/12/06 00:25
>>706
前橋はreturn しろと言っているが・・・
K&Rがreturn書いてないのは問題ないの?
main()ってvoid main(void)って事でないのか?

708 :デフォルトの名無しさん:02/12/06 00:26
>>707
int mainだと思われ。

709 :デフォルトの名無しさん:02/12/06 00:27
>>707
またその話題かよ。と言われるのが落ちだぞ。というか俺が言った。

710 :デフォルトの名無しさん:02/12/06 00:28
K&Rは糞という結論に。
あのmainの書き方は、ANSI準拠を詠う資格はない!
mainはreturnすべき、絶対に。

711 :デフォルトの名無しさん:02/12/06 00:29
えーと、C言語でチンコの勃起角を求める方法おしえてください。

712 :デフォルトの名無しさん:02/12/06 00:33
>>711
こうでつ。

main()
{
  int std_length,bokki_length;

  scanf("%d %d",&std_length,&bokki_length);
  printf("勃起角は%f度でつ。",(bokki_length - std_length) * 19.19072);
}

公式でつ。試験に出ます。


713 :デフォルトの名無しさん:02/12/06 00:34
>>706
return文書かずにgccでコンパイルして実行したら3が返ってきたぞ。
int main(){}


714 :デフォルトの名無しさん:02/12/06 00:36
>>713
それがゴミじゃないって保証は?

715 :デフォルトの名無しさん:02/12/06 00:38
>>713
何も帰ってきませんが?


716 :デフォルトの名無しさん:02/12/06 00:40
>>713
嫁が帰ってきませんが?

717 :デフォルトの名無しさん:02/12/06 00:41
>>716
こんなところで遊んでないで実家言った方が良いって。

718 :デフォルトの名無しさん:02/12/06 00:43
>>714
この場合ゴミだから問題あるわけだが。

719 :デフォルトの名無しさん:02/12/06 00:44
>>718
ほんとだ。714をさらりと読んでた。


720 :デフォルトの名無しさん:02/12/06 00:45
>>717
実家いったら,袋にされそう・・・
首輪がいけなかったか・・・
SEなんで給料がいいんだが,それでは補えなかったか

721 :デフォルトの名無しさん:02/12/06 00:46
C89ではたぶん決まってないんだろうな。
でも、K&Rがreturn書かなかったものだからそれに合わせるように
C++/C99で変なルールを作ったと。

722 :デフォルトの名無しさん:02/12/06 00:48
首輪プレイですか

723 :714:02/12/06 00:49
ん?いや、だからゴミだから問題あるんだろ?

724 :デフォルトの名無しさん:02/12/06 00:52
>>714
だからゴミなんだよ。
だから明示的にreturn 0;としなければいけない。

725 :デフォルトの名無しさん:02/12/06 00:55
>>723
ゴミじゃないっていう保障は?
じゃなくて、
ゴミだっていう保障は?
って聞くべきだったって事

726 :714:02/12/06 00:58
ああ、そうかごめん。706見て無かったよ。

727 :デフォルトの名無しさん:02/12/06 00:59
アセンブラレベルで考えれば、実に明白。

728 :デフォルトの名無しさん:02/12/06 01:02
>>727
ソース載せてもらえませんか?

729 :デフォルトの名無しさん:02/12/06 01:04
なにガベってんだYO!

730 :デフォルトの名無しさん:02/12/06 01:05
(´-`).。oO(本だったらスキャンして…

731 :デフォルトの名無しさん:02/12/06 01:09
>>713
ちゃんとgcc -fstd=c99オプションつけた?

732 :デフォルトの名無しさん:02/12/06 01:11
>>731
その前にgccのバージョンを聞かなくて良いんですか?さっきから疑問なんですが。

733 :デフォルトの名無しさん:02/12/06 01:14
>>731-732
2.95です。
cc1: Invalid option `-fstd=c99'


734 :デフォルトの名無しさん:02/12/06 02:48
C言語は終わったはずなのに、なんでこのスレは好調なんだ?宿題か??

735 :西門 ◆J1DLkSnXwI :02/12/06 02:56
>>733
ドキュメントに載ってない?
昔は何だっけ… -std=c9x だっけ。

736 :デフォルトの名無しさん:02/12/06 07:56
>>734
ご自分のスレッドに帰るのが身のためです。

737 :デフォルトの名無しさん:02/12/06 09:01
16進数なら0x、8進数なら0を前につけますよね。
2進数ならどう書けばよいのですか?お教えください。

738 :デフォルトの名無しさん:02/12/06 09:04
>>737
Cでは表現できませんよ。


739 :デフォルトの名無しさん:02/12/06 09:07
>>737
規格では出来ない。
コンパイラによっては拡張機能として0bで指定できるものもある。

そういう機能がない場合は↓みたいなのを定義するとか。
#define Ob0000_0000 0
#define Ob0000_0001 1
#define Ob0000_0010 2


740 :デフォルトの名無しさん:02/12/06 09:44
>>739
マクロで表現すれば使えそうですね。

741 :デフォルトの名無しさん:02/12/06 10:32
#define Ob0000_0000 0
#define Ob0000_0001 1
#define Ob0000_0010 10

742 :デフォルトの名無しさん:02/12/06 10:59
LCC-Win32なんですが、>>2でライセンスや機能などに問題あり、とありますが
どのように問題があるのでしょうか。

英語め…。

743 :デフォルトの名無しさん:02/12/06 11:35
>>742
漏れも英語わからんがダウンロードしてみた。
インストーラに出てくる Licence Agreement で、商用禁止をうかがわせる
文があった。
学術研究に関してなら制限無しのようだ。
機能についてはまだわからない。

744 :デフォルトの名無しさん:02/12/06 11:49
機能については、日本語に対応していないこと、C++ が使えない事以外は問題なさそうだ。

745 :デフォルトの名無しさん:02/12/06 13:25
>>743-744
おおお、どうもです。
機能の問題はやっぱりそれだけですよね。
商用禁止か、
これで作ったものをフリーで配布することに関しては問題無いのだろうか…?
実際使ってるのですがね。

746 :デフォルトの名無しさん:02/12/06 13:26
free()に配列の配列を渡した時、
その配列が作られた過程を問わず、全ての領域を解放してくれますか?

つまり、

/********* 以下、プログラム(headerファイルのincludeは省略) **********/
int i;
int num_of_strings = 123, len_of_a_string = 1024;
char **strings;

strings = (char **)calloc(sizeof(char *),num_of_strings);
for(i=0;i<num_of_strings;i++)
strings[i] = malloc(len_of_a_string);

free(strings);
/****************************** 以上 *********************************/

としたとき、
最後のfreeは、その上のforの中でmallocした領域も解放してくれるか?
ということです。
それとも、for(〜〜) free(strings[i]); をその前にやらなきゃいけませんか?

よろしくお願いします。

747 :デフォルトの名無しさん:02/12/06 13:35
>>746
解放しません。自分でやりなさい。

748 :デフォルトの名無しさん:02/12/06 13:42
>>746
Cがそんなに便利な言語なわけなかろう。

749 :747:02/12/06 13:48
ありがとうございます!

750 :デフォルトの名無しさん:02/12/06 13:50
>>744
すまん、読み間違えていた。
LCC 本体および付属品を転売してはいけない、と書いてあった。
雑誌の付録につけたりするのが NG なのかな。

LCC でコンパイルされたプログラムはその作者に属し、LC 作者の許可を得る事なく
販売できる、と書いてあった。

751 :デフォルトの名無しさん:02/12/06 14:12
>>750
ああ、そうなのですか。
では自由に配布もできますね。
落としてわざわざ見ていただいて、感謝です。ありがd。

752 :デフォルトの名無しさん:02/12/06 14:26
>>746よ、お主が提示したもの配列の配列ではない

753 :60cm浮き上がるストレート:02/12/06 15:50
進数チェンジャーできました。どうでしょう。
#include <stdio.h>
#include <string.h>
#define BEFORE_NUM "60cm" //前の数値
#define BEFORE_SIN 23 //前の進数
#define AFTER_SIN 10 //後の進数
int main(void)
{
 long i,s,r,n;
 char bC[]=BEFORE_NUM;
 long bN,bS=BEFORE_SIN,aS=AFTER_SIN;
 printf("%s(%ld)\n↓\n",bC,bS);
 s=strlen(bC)-1;
 for(i=0,r=1,bN=0;i<=s;i++,r*=bS)
 {
  n=bC[s-i];
  bN+=(n>'9'?n-'a'+10:n-'0')*r;
 }
 for(i=1;i<=bN/aS;i*=aS)
  ;
 for(;i>=1;i/=aS)
 {
  n=bN/i%aS;
  printf("%c",n>=10?'a'+n-10:'0'+n);
 }
 printf("(%ld)\n",aS);
 return 0;
}

754 :デフォルトの名無しさん:02/12/06 15:59
読み込みは strtol()

755 :60cm浮き上がるストレート:02/12/06 16:12
>>754
知りませんでした。そういうのがあったのですね。
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/strtol.3.html

756 :デフォルトの名無しさん:02/12/06 17:07
>>687
コンソールプログラムで置き換えしながら、printfで順次文字出力するプログラムを作って、
リダイレクトでテキストに出しなされ。

757 :デフォルトの名無しさん:02/12/06 18:39
char hoge[40];

if(hoge == ' ',' ',' ',・・・・){

hogeの中身がスペースだったら、っていう
ショリするときってこうするしかないのでしょうか?

758 :デフォルトの名無しさん:02/12/06 18:44
>>757
その通り

759 :デフォルトの名無しさん:02/12/06 18:44
>>757
不思議なコードだね

760 :757:02/12/06 18:47
>>758 >>759

──■──■──────■─────────■────────────
─■─■─■────■■■■■─────■■■■───────────
■■■■─■■■■───■──■■─────■─■■■■──■■─■■
──■─■───■───■─■──■───■──────■─■■─■■
■■■■────■───■■───■───■─────■───■■■─
──■──■──■──■■────■──■───■──────■■■─
■─■■──■─■─■─■────■──■──■────────■──
─■■─────■───■────■─────■────────■──
■■────■■────■─────■─────■■■■■──────


761 :デフォルトの名無しさん:02/12/06 18:47
またアホが沸いた

762 :デフォルトの名無しさん:02/12/06 19:26
int Recv(char *pbuf)
{
char recvbuf[16384];
while(1) {
 recv(socket, recvbuf, 16384, 0);
}


}
みたいなプログラムがあって、この時どれくらいのサイズのファイルを
受信するか分からないので、mallocでバッファを確保したいのですが
この時に、関数Recv内ではなく、呼び出した側でmallocで確保したいのですが
何か良い方法はありませんでしょうか?

763 :デフォルトの名無しさん:02/12/06 19:39
いまさらC?

764 :デフォルトの名無しさん:02/12/06 19:46
>>763
Cをやってからほかに移るって手さ。

765 :デフォルトの名無しさん:02/12/06 19:47
> if(hoge == ' ',' ',' ',・・・・){

常に成り立ちそうだ。

766 :デフォルトの名無しさん:02/12/06 19:50
763
そ、そうか
そ、そういうかんがえがあるのか・・・
俺は今猛烈に感動している

767 :デフォルトの名無しさん:02/12/06 19:51
>>762
どれくらいのサイズを受信するのか分からない場合は、普通どのくらいの
バッファを確保して言いか決定できない。
従って、とりあえず適当なサイズのバッファを確保し、受信してみて、
足りなかったら realloc() で拡張していく。
Recv() を呼び出した側で malloc() したいなら、そうして、ポインタを
Recv() に渡せば良いが、そうする意味はない。

768 :757:02/12/06 20:07
初心者をいじめんといてください。。。

スペース入ってたら、という条件は
どうすればいいんですかー!!
ヽ(`Д´)ノ ウワァァン!!

769 :デフォルトの名無しさん:02/12/06 20:13
>>757
strchr() じゃだめなの?

770 :デフォルトの名無しさん:02/12/06 20:14
>>768
strchr

771 :770:02/12/06 20:15
>>769
僕と結婚してくれませんか?

772 :デフォルトの名無しさん:02/12/06 20:15
>>768
769 は無視しろ。

配列の内容は一気に比較できない。
for ループで回して 1 要素ずつ調べろ。

773 :769:02/12/06 20:17
無視されてしまった・・・。

774 :757:02/12/06 20:17
>>772
僕と結婚してくれませんか?

ガムバッテミマス!

アリガdゴザイマスタ

スマター!!

775 :デフォルトの名無しさん:02/12/06 20:19
>>774
結婚してもスマタかよ


776 :769:02/12/06 20:20
>>770
家事は分担ね。

777 :デフォルトの名無しさん:02/12/06 20:21
>>770-771
どうして strchr() でいいと思ったんだ?

778 :デフォルトの名無しさん:02/12/06 20:34
>>777
へ?strchrで駄目な理由って何?
char buf[256];
fgets(buf, sizeof buf, stdin);
if(strchr(buf, ' ') != NULL)
  printf("スペースが見つかった\n");
else
  printf("スペースが見つからなかった\n");
なんでわざわざループで回す必要があるのか小一時間問いつめたい。

779 :769:02/12/06 20:34
>>777
これじゃダメなの?
#include <stdio.h>
#include <string.h>

int main(int argc, const char * argv[]) {
 char hoge[40];
 if (argc > 1) {
  strcpy(hoge, argv[1]);
  if ((strchr(hoge, ' ')) == NULL) {
   printf("エn");
  } else {
   printf("エn");
  }
 }
 return 0;
}

780 :769:02/12/06 20:37
>>777
さっきの失敗。
こっちね。
#include <stdio.h>
#include <string.h>

int main(int argc, const char * argv[]) {
 char hoge[40];
 if (argc > 1) {
  strcpy(hoge, argv[1]);
  if ((strchr(hoge, ' ')) == NULL) {
   printf("あった\n");
  } else {
   printf("なかった\n");
  }
 }
 return 0;
}



781 :769:02/12/06 20:39
ああ、また間違ってるし。
「あった」と「なかった」逆だね。
そこのケーブルで首t(略

782 :757:02/12/06 20:51
char hoge[3];
char piyo[5];
int i, t;
for( i=0; hoge[i] !=0x20; i++ )
memset(hoge, NULL, 3);
for( t=0; piyo[t] !=0x20; t++ )
memset(piyo, NULL, 5);

/*以下スペース入ってなかったら本ショリ*/

こんな感じでできますかね・・・?

783 :デフォルトの名無しさん:02/12/06 21:02
>>782
hoge, piyoの中にスペースが入ってないと暴走するぞ
あと0x20とかせずに素直に文字リテラル' 'を使え
ちなみに' 'と" "は意味が違うんで教科書を良く読んどけよ

同じようにNULLと'\0'は意味が異なる、
あとhogeやpiyoの大きさを変えたときわざわざmemsetの第3引数を
変えるのは面倒だろ。文字列を'\0'で初期化したいならば、
> memset(hoge, NULL, 3);
> memset(piyo, NULL, 5);
memset(hoge, '\0', sizeof hoge);
memset(piyo, '\0', sizeof piyo);
とした方が良い。

784 :デフォルトの名無しさん:02/12/06 21:03
>>778-780
「hoge の中身がスペースだったら」 をどうすれば 「hoge の中にスペースが
見つかったら」 に曲解できるんだ?

785 :784:02/12/06 21:07
ごめん、782 のコメント見る限り strchr() でよさそうだ。

786 :デフォルトの名無しさん:02/12/06 21:09
つまり>>757はC言語の前に日本語を(ry

787 :デフォルトの名無しさん:02/12/06 21:09
>>784
> 「hoge の中身がスペースだったら」
了解、では意地でもループは使わずにやってやる
hoge[40];
cmp[40];
memset(cmp, ' ', sizeof cmp);
if(strcmp(hoge, cmp) == 0)
  printf("全てスペース\n");
else
  printf("スペース以外が入ってる\n");
で、こんなの作ってどうするんだ?

788 :769:02/12/06 21:11
>>784
うん、最初はhogeが" \0"だったらとかhogeがスペースのみの集合だったらとか考えたよ。
でも>>768で?スペース入ってたら」となってるから
「hoge中に一つでもスペースが入ってたら」と解釈したんだが。
実際>>782見てもこれであってると思うけど。

789 :757:02/12/06 21:11
>>783サソ
ご丁寧にアリガdゴザイマス

このままじゃ暴走いたしますか・・・
どうするか・・・?
コマータコマータ
漏れやぱりPGには向いてないなぁ。。。

790 :デフォルトの名無しさん:02/12/06 21:13
んなこたぁーない
がんがれ

791 :769:02/12/06 21:17
>>789
向き不向きはかなりの部分努力で補えるよ。
また困ったらここにおいで。

792 :757:02/12/06 21:28
>>790-791サソ
アリガdゴザイマス

2chデハジメテ
カンドウシター!!
誰もいないオフィスで゙チョイナキソウニナッタ・・・

またきます!

793 :デフォルトの名無しさん:02/12/06 22:09
いや、ちょっと待った。
757 は hoge の中にスペースが見つかったら何をしたかったんだ?
782 ははっきり言って目的不明な処理だぞ。

794 :デフォルトの名無しさん:02/12/06 22:47
hoge でなく moe はどうか?

795 :デフォルトの名無しさん:02/12/06 23:40
>>794
何が言いたいのか説明してくれないか?

796 :デフォルトの名無しさん:02/12/06 23:45
>>795
ノリで言ってみただけ。

797 :デフォルトの名無しさん:02/12/07 00:43
>>1-1000
All green!

798 :デフォルトの名無しさん:02/12/07 00:44
カコイイ

799 :デフォルトの名無しさん:02/12/07 00:51
moe はいいが nae はいかがなものか。

800 :デフォルトの名無しさん:02/12/07 01:02
お前らいつか死ぬぞ。

801 :デフォルトの名無しさん:02/12/07 01:45
知ってます。

802 :デフォルトの名無しさん:02/12/07 01:46
そりゃまあ。

803 :デフォルトの名無しさん:02/12/07 01:47
苦しゅうない、朕は不滅じゃ。

804 :201:02/12/07 10:49
int value = 任意;
if (0 <= value) {
 value = 0;
}
これ、ifを使わないで計算だけでかけますか?

805 :デフォルトの名無しさん:02/12/07 11:06
>>804
value = (0 <= value)?value:0;

俺って天才!

806 :デフォルトの名無しさん:02/12/07 11:08
>>805
逝ってよし

807 :デフォルトの名無しさん:02/12/07 11:17
//面倒くさいからintは32bitと仮定
int val;
{
unsigned int i = val & 0x80000000;
i = i | (i >> 1) | (i >> 2 ) | (i >> 3 ) | ...略.. | (i>>31) ;
return val & i;
}

808 :デフォルトの名無しさん:02/12/07 11:32
>807
じゅうぶん面倒だろそれ。
value * ((value >> 31) & 1);


809 :デフォルトの名無しさん:02/12/07 11:33
>>805
逆じゃん

>>807
実装依存

0<=value && value=0 ;

810 :デフォルトの名無しさん:02/12/07 11:37
>>804
value = value * (value < 0);

でも、素直に参考演算子か if 文使って書いた方がいいよ。

811 :804:02/12/07 11:38
説明不足でした。
可読性、速度、汎用性などを考慮したコードでは?

1000万回連続実行した場合の合計時間(debug build)。
>>804 31(ms)
>>805 94(ms)
>>807 313(ms)

812 :804:02/12/07 11:50
沢山の回答ありがちょう。
全てにおいて >>804 のコードが勝っていると認定されますた。
漏れって天才!

813 :デフォルトの名無しさん:02/12/07 12:02
なるほど、こういう釣り方もあるのか。。_φ(..;)メモメモ

814 :デフォルトの名無しさん:02/12/07 12:33
釣りとか嫌

815 :デフォルトの名無しさん:02/12/07 12:40
>>813
(゚Д゚)ハァ?

816 :デフォルトの名無しさん:02/12/07 12:41
構造体について疑問。

struct DATA {
 int a;
}

とした後、

struct DATA d1,d2,d3;

とした場合と、

DATA d1,d2,d3;

のようにstructを省略した場合とでは、どんな違いが出るんでしょうか?

817 :デフォルトの名無しさん:02/12/07 12:41
>>812
よかったね。

もうくるなよ。

818 :デフォルトの名無しさん:02/12/07 12:42
>>816
C++ スレに逝け。

819 :デフォルトの名無しさん:02/12/07 12:45
>>812
君の言う天才は他人からみれば馬鹿以下なんだよ

820 :デフォルトの名無しさん:02/12/07 12:48
>>816
前者は問題なくコンパイルできるが、後者はエラーになる。

821 :デフォルトの名無しさん:02/12/07 12:52
>>820
VC++6.0だとエラーにはなりませんが…

822 :デフォルトの名無しさん:02/12/07 12:59
>>821
ここはC言語スレですが何か。

$ cat a.c
struct DATA {
    int a;
};
DATA d1, d2, d3;
$ cl -c a.c
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.

a.c
a.c(4) : error C2061: 構文エラー : 識別子 'd1' がシンタックスエラーを起こしました。
a.c(4) : error C2059: 構文エラー : ';'
a.c(4) : error C2059: 構文エラー : ','
$ mv a.c a.cpp
$ cl -c a.cpp
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.

a.cpp


823 :812:02/12/07 13:01
>>817 >>819
誰もが書くであろう基本的なコードが1番早かった。ちゃんちゃん。
って落ちなんだよ。反抗期さんわかった?

>>816
CとC++の違いだな。

824 :デフォルトの名無しさん:02/12/07 13:13
>>823
ほう、それはよかったな。

満足したら、もうくるなよ。

825 :デフォルトの名無しさん:02/12/07 13:25
>>823
氏ねよ。マジで。
お前みたいな社会の屑は迷惑だ。


826 :デフォルトの名無しさん:02/12/07 14:05
何が天才なんだか。
else 無しの if が一番速いのは実行しなくてもわかるだろうに。

827 :デフォルトの名無しさん:02/12/07 14:16
つーかこうせんかな。
if (value < 0) value = 0;


828 :デフォルトの名無しさん:02/12/07 14:30
はっ!?

829 :デフォルトの名無しさん:02/12/07 14:32
ひっ!?

830 :デフォルトの名無しさん:02/12/07 14:34
(゚Д゚)ハァ?

831 :デフォルトの名無しさん:02/12/07 14:35
( ´_ゝ`)プッ!

832 :デフォルトの名無しさん:02/12/07 14:36
( ゚Д゚)h?


833 :デフォルトの名無しさん:02/12/07 14:37
ふーん( ´_ゝ`) <=> (´<_ ` )そっか

834 :45:02/12/07 14:40
(゚Д゚)ィェーッ

835 :デフォルトの名無しさん:02/12/07 14:56
Σ(゚д゚lll)ガーン

836 :デフォルトの名無しさん:02/12/07 14:59
('_`)ソウカ・・・

837 :デフォルトの名無しさん:02/12/07 15:10
・・・

838 :デフォルトの名無しさん:02/12/07 15:11
クソすれ

839 :デフォルトの名無しさん:02/12/07 15:23
>>827
つっこんでいいもんやら...。

840 :デフォルトの名無しさん:02/12/07 15:27
>>839
迷うくらいなら突っ込め。

841 :デフォルトの名無しさん:02/12/07 15:29
てか >>828-838 は全て >>827 へのツッコミだと思ふ、

842 :デフォルトの名無しさん:02/12/07 16:51
>>823
なぁさ、最適化OFFにしたときはきっと結果は変わると思うんだがどうだろう?
そら、もっとも使用頻度の高いifがかりかりにチューンされているのは当たり前であって。

やっぱりお前は凡人だな。

843 :デフォルトの名無しさん:02/12/07 17:57
つまらん。

844 :デフォルトの名無しさん:02/12/07 18:28
> 使用頻度の高いifがかりかりにチューンされているの

(゚Д゚)ハァ?
そんな特別な事してねーよ。
単に if で書くと必要な演算量が減るだけだ。

845 :デフォルトの名無しさん:02/12/07 18:30
つーか、827 は何がいけないんだ?

846 :デフォルトの名無しさん:02/12/07 18:31
>>845=827ですか?( ´,_ゝ`)プッ

847 :デフォルトの名無しさん:02/12/07 18:34
>>845
間を外したところ。

848 :デフォルトの名無しさん:02/12/07 18:41
フルートが鳴りません。どうしたらいいですか?

849 :デフォルトの名無しさん:02/12/07 18:43
>>845
ハァ ? >>805 を改良してどーする。

850 :デフォルトの名無しさん:02/12/07 18:45
>>849
>>805じゃなくて>>804だろ。


851 :デフォルトの名無しさん:02/12/07 18:50
いや、827 は value == 0 の時に代入が発生しないからより高速に動く事を
期待できるはずなんだが、みんな何をそんなに一生懸命叩いているんだ?

847 のような理由は置いといて。

852 :デフォルトの名無しさん:02/12/07 18:52
間違ってるから。

853 :デフォルトの名無しさん:02/12/07 18:56
ああ、比較の向きか。やっと気付いた。

854 :デフォルトの名無しさん:02/12/07 18:57
>>850
なんか熱くなってない ?
冷静になって、>>804-805, >>827 のコード見た方がいいよ。
そうすれば、>>849 の言いたいことがわかるよ。

855 :デフォルトの名無しさん:02/12/07 19:00
>>854
> なんか熱くなってない ?
いや全然。でも>853を見るまで気づかなかったよ。

856 :デフォルトの名無しさん:02/12/07 19:19
848 に誰か答えてください

857 : ◆F52DmOxJlc :02/12/07 19:22
>>848
ちゃんと充電したか?

858 :デフォルトの名無しさん:02/12/07 19:31
電気を使わないタイプのフルートのようです。

859 :デフォルトの名無しさん:02/12/07 19:33
>>848
実はフルーツ

860 :デフォルトの名無しさん:02/12/07 19:34
つまんねーー!!!

861 :デフォルトの名無しさん:02/12/07 19:36
>>848
実はフノレート。

862 :デフォルトの名無しさん:02/12/07 19:37
>>858
だったら不良品だから、交換してもらってください。

863 :デフォルトの名無しさん:02/12/07 19:39
フルートですが、マジでドとレとミの音が出ません。
クラリネットではありません。

864 :デフォルトの名無しさん:02/12/07 19:44
実はプルート

865 :デフォルトの名無しさん:02/12/07 19:45
実はプルーン

866 :デフォルトの名無しさん:02/12/07 19:45
実はぷるるん 

867 :デフォルトの名無しさん:02/12/07 19:46
実はぬるぽ

868 : ◆F52DmOxJlc :02/12/07 19:54
>>863
思いっきりがんばればミは出るだろ。

869 :デフォルトの名無しさん:02/12/07 20:17
>>863
ド・レ・ミ抜きで演奏!

870 :デフォルトの名無しさん:02/12/07 20:28
>>863
マジレスするが、ド とか言うなよ。恥ずかしいぞ。
十二音全て、ド になることができるんだからさ。

871 :デフォルトの名無しさん:02/12/07 20:32
じゃあ何て言うの?

872 :デフォルトの名無しさん:02/12/07 20:34


873 :デフォルトの名無しさん:02/12/07 20:35
ラだよ馬鹿

874 :デフォルトの名無しさん:02/12/07 20:39
わかった!!
C だ!!

875 :デフォルトの名無しさん:02/12/07 20:48
>>874
じゃあシはなんて言うのさ?

876 :デフォルトの名無しさん:02/12/07 20:49
>>874
ピン・ポ〜〜〜ン。
もちろん「シー」なんて言っちゃ駄目だよ。

877 :デフォルトの名無しさん:02/12/07 21:05
>>876
>>872 も正解にしてあげて下さい。

878 :デフォルトの名無しさん:02/12/07 21:26
西洋では CDEFGAB ...
日本では ハニホヘトイロ ...

879 : ◆F52DmOxJlc :02/12/07 21:34
>>878
CDEFGAH の方が好き。

880 :デフォルトの名無しさん:02/12/07 22:17
ドボルザークが

881 :デフォルトの名無しさん:02/12/07 23:33
>>870
マジレスするが、そんなことは初めて聞いた。

882 :デフォルトの名無しさん:02/12/07 23:39
>>881
相対的な話だろ。それが調にもつながるという。
だとするとAの周波数が厳密に決められてるのはおかしいわけだがw

883 : ◆F52DmOxJlc :02/12/07 23:40
>>881
それぞれの調の主音をドと読むんだよ。
ニ長調ならレをドと読み替える。
楽典読んでごらん。

884 :デフォルトの名無しさん:02/12/07 23:53
>>881
音楽のことを知らないくせに偉そうなこというな。
黙ってろヴォケが。

885 :デフォルトの名無しさん:02/12/07 23:55
同志である>>883>>884のレベルの差がおもしろい。



886 :デフォルトの名無しさん:02/12/07 23:56
>>882
A の周波数ってどっかで決まってんの ?
普通は、440Hz〜445Hz ぐらいの幅持ってたと思うが。

887 :デフォルトの名無しさん:02/12/07 23:57
つーか、これ何のスレだ?

888 :デフォルトの名無しさん:02/12/08 00:03
ツェー

889 :デフォルトの名無しさん:02/12/08 00:03
>>886
ここで調律論をやる気か?
440Hzと覚えておけば充分。

890 :デフォルトの名無しさん:02/12/08 00:12

<             >858-889ハァァァ???

  ∨∨∨∨∨∨∨∨∨∨∨\  /∨∨∨∨∨∨∨∨∨∨
          /:|.       | |     /:|
        /  .:::|       ∨    /  :::|
        |  ...:::::|           /   ::::|
       i       ̄ ̄⌒゙゙^――/    ::::::::|
      /_,,___       . _,,,,__,_     :::::::::::\
      /   ゙^\ヽ..  , /゙   ¨\,.-z   ::::::::::\
      「 ●    | 》  l|  ●    ゙》 ミ..   .::::::\
     /i,.      .,ノ .l|  《       ..|´_ilト    ::::::::::\
    / \___,,,,,_/ .'″  ^=u,,,,_ v/..       :::::::::::::l!
    |            ̄ ,,、         i し./::::::::.}
   |  /  ,,____ _,/ ̄ \ \      ノ (  ::::::::::|
    |  |.. | /└└└└\../\  \    '~ヽ ::::::::::::::}
    |   .∨.|llllllllllllllllllllllllllllll|          ::::::::::{
    |    |.|llllllllllll;/⌒/⌒  〕         :::::::::::}
     |   |.|lllllllll;   ./ .   . |          ::::::::::[
     .|   |.|llllll|′  /    . |    .|      :::::::::::|
     .|   |.|llll|    |     .∧〔   /    :::::::::::::/
    / }.∧lll    |    ../ /  /   :::::::::::::::::\
   /   /| \┌┌┌┌┌/./ /:::      :::::::::::::::::\
      ( ゙゙^^¨^¨゙゙¨  ̄ ̄ ̄ /:::::::::::         ::::::::::\



891 :デフォルトの名無しさん:02/12/08 00:12
>>889
何言ってんのこの人 ?
俺は、A の周波数が (* 厳密に *) 決められているかどうかか知りたいだけだよ。

892 :デフォルトの名無しさん:02/12/08 00:16
>>891
それをしってどうなる?
人間の耳は5Hzの違いなんて聞き分けられないぞ。
プログラム的には450でじゅうぶんじゃねーの。
それ以上のことを言うヤシは町立論(略

893 :デフォルトの名無しさん:02/12/08 00:20
>>892
2行目に単位書いて3行目にそれがないのって不思議。

894 :デフォルトの名無しさん:02/12/08 00:23
>>893
int に単位は不要だから。

895 :デフォルトの名無しさん:02/12/08 00:23
ラの音は周波数が上がってきているんだよ。
昔は400Hzくらいだった。

896 :デフォルトの名無しさん:02/12/08 00:24
でも地球の自転速度は徐々に遅くなってきてるぜ。

897 :デフォルトの名無しさん:02/12/08 00:25
>>896
だからどうしたよ。ワラタけど。

898 :デフォルトの名無しさん:02/12/08 00:28
>>892
> それをしってどうなる?

単なる興味だよ。ウィーン音楽協会みたいなとこが決めてんのかなぁって思っただけ。

> 人間の耳は5Hzの違いなんて聞き分けられないぞ。

フシ耳ですか ? 440Hz に対して、5Hz と言うと半音の約 1/5 だよ。
素人でも、なんとなく分かるぐらいのところだよ。
絶対音感持ってる奴なら、確実にわかるぞ。

899 :デフォルトの名無しさん:02/12/08 00:28
ちょ球の自転速度が遅くなるはずはありません。
なぜなら地球は宇宙エネルギーをもらって動いているので
永久不変なのです。
もし自転速度が遅くなる時は宇宙がビッグバンになる時くらいです。

900 :デフォルトの名無しさん:02/12/08 00:29
>>899
>>896のが正しい。

901 :デフォルトの名無しさん:02/12/08 00:30
>>898
何cent?20cent位なら聞き分けられるYO!

902 :デフォルトの名無しさん:02/12/08 00:32
秒の定義はもう変わったよ。

903 :デフォルトの名無しさん:02/12/08 00:34
1分の1/60が1秒です。

904 :デフォルトの名無しさん:02/12/08 00:35
>>903
じゃあ1分の定義は?

905 :デフォルトの名無しさん:02/12/08 00:37
1時間の1/60が1分です。

906 :デフォルトの名無しさん:02/12/08 00:43
嵐どもはさっさと氏ね

907 :デフォルトの名無しさん:02/12/08 00:50
>>905
じゃあ1時間の定義は?

1日の1/24が1時間です。


じゃあ1日の定義は?


908 :デフォルトの名無しさん:02/12/08 00:52
>>907
詰めが甘いな。1年の365文の1だ

909 :デフォルトの名無しさん:02/12/08 00:52
>>907
太陽が南中してから翌日再び南中するまでの時間。

910 :デフォルトの名無しさん:02/12/08 00:56
>>901
おお、久しぶりに cent なんて単位を聞いたよ。
既に定義を忘れてたので、ググッたら 100cent = 半音 ということのようだ。

つーことは、440Hz と 445Hz の違いは...

(log(445/440) / log(2)) * 1200 = 19.562174794920598517900518817139

やね。>>898 にも書いたけど、普通の人ならなんとなくわかるぐらいだよ。

911 :デフォルトの名無しさん:02/12/08 01:15
DETUNEでちゅーん

912 : ◆ZtXjKqCmiQ :02/12/08 01:18
C言語の話題は?

913 :912:02/12/08 01:20
#include と打ったらトリップになっちまった(T_T)

914 : ◆g/ZMVdytmo :02/12/08 01:21
本物はボキです?

915 :デフォルトの名無しさん:02/12/08 01:24
話を蒸し返すようで悪いんだけどさ
英語での
CDEFGAB
ドイツ語での
CDEFGAH
日本語での
ハニホヘトイロ
をイタリア語では
ドレミファソラシ
って発音するんだよ。
だから >>883 は真赤な嘘。

916 :デフォルトの名無しさん:02/12/08 01:39
あとは音楽板のほうでどうぞ

917 :デフォルトの名無しさん:02/12/08 01:58
Javaしか触ってなくて、Cのソースがイマイチ読めないんだけど、何とか上手に読む方法ない?
木生成のアルゴリズムなんだけどね。


918 :デフォルトの名無しさん:02/12/08 02:01
>>915
もしそうだとしても、それが通用するのはイタリアだけじゃないのか?
普通は調によってドそのものが変わる・・・
これ以上は音楽板逝くべきだな

919 :デフォルトの名無しさん:02/12/08 02:07
そろそろ、次スレなんだが・・・
>入門書レベルの質問はC言語質問所スレへ行け。
入れる?
ここはどうしても荒れてしまうから。なんか。

920 :デフォルトの名無しさん:02/12/08 02:15
配列の最大数は決まってるのですか?
最大数を大きくしたい場合どうすればよいですか?

921 :デフォルトの名無しさん:02/12/08 02:24
>>920
INT_MAXまで。

922 :920:02/12/08 02:32
int型の最大値と同じって事ですか?

923 :デフォルトの名無しさん:02/12/08 02:45
>>922
INT_MAXは、多分論理アドレスのMAX値ということが言いたいんだと思うが、
実際にはそこまで取れないと思う。


924 :923:02/12/08 02:47
ごめん。論理アドレスのMAX値だったらUINT_MAXだ。
ただしintとポインタの大きさが同じ処理系に限る。

925 :デフォルトの名無しさん:02/12/08 04:36
>>919
入れちゃダメ。諸悪の根源。

926 :デフォルトの名無しさん:02/12/08 04:39
>>924
規格では、どの処理系でも最低限65535バイトのオブジェクトは作れることが
保証されている。それ以上大きいのは作れない処理系でも規格準拠といえる。

だから、「絶対安全」と保証されている配列のサイズは65535バイトまで。

927 :デフォルトの名無しさん:02/12/08 05:05
>>919
偽スレは必要なし。いい加減ウザい。

928 :60cm浮き上がるストレート:02/12/08 05:11
440Hzがラ?下のプログラムを見てください。ファになるのですが。DOS/V、ANSI.SYSが必要と思われます。ポート入出力なので注意してください。
#include <stdio.h>
#include <conio.h>
#include <time.h>
int main(void)
{
 int Hz=440,int key=0,pM=1;clock_t t;
 printf("\x1b[12;5H+:+ -:- *:*2 /:/2 0:増減値増加 .:増減値減少 Enter:♪ p:End");
 printf("\x1b[14;37H増減値:%-5d\x1b[16;37HHz:%-5d",pM,Hz);
 for(;;)
 {
  key=getch();
  if(key=='+')Hz+=pM;if(key=='-')Hz-=pM;if(key=='*')Hz*=2;if(key=='/')Hz/=2;if(key=='0')pM++;if(key=='.')pM--;
  if(Hz<=-1)Hz=0;if(Hz>=32768)Hz=32767;if(pM<=-1)pM=0;if(pM>=32768)pM=32767;
  if(key=='\r')
  {
   _outp(0x43,0xb6);_outp(0x42,Hz%256);_outp(0x42,Hz/256);
   _outp(0x61,_inp(0x61)|0x03);
   for(t=clock();t+500>=clock(););
   _outp(0x61,_inp(0x61)&0xFC);
  }
  printf("\x1b[14;44H%-5d",pM);printf("\x1b[16;40H%-5d",Hz);if(key=='p')break;
 }
 return 0;
}

929 :デフォルトの名無しさん:02/12/08 05:13
素数のプログラムを作らないと単位が取れないです。
誰か作り方を教えてください。

930 :デフォルトの名無しさん:02/12/08 05:14
>>929
素数スレがあるぽ

931 :デフォルトの名無しさん:02/12/08 05:15
>>930
ありがとうございます

932 :デフォルトの名無しさん:02/12/08 05:18
http://yahooo.s2.x-beat.com/linkvp/linkvp.html

933 :デフォルトの名無しさん:02/12/08 05:18
>>929
素数をどうしたいんだ?
具体的なプログラムが欲しいなら宿題スレへ
http://pc3.2ch.net/test/read.cgi/tech/1036572120/l50

934 :デフォルトの名無しさん:02/12/08 05:18
ここは C のスレだから A の話はいかんのだろうが、A = 465 Hz というべらぼう
なチューニングもあるらしいぞ。

それは置いといて、移調楽器の基音をドと呼ぶ事でずらすことはよくあるみたい
だけど、曲調によってドが変わるという話は聞いたことないぞ。
友人に、音大卒もプロで楽器やってる人もイパーイいるが、みんな例えばニ長調なら
レミファソラシドレと言っているし、そんな事は教わらなかったと言っている。
第一、ドレミファソラシドはイタリア読み、CDEFGABC は英語読み、CDEFGAHC は
ドイツ読み、ハニホヘトイロハは和読みというだけで、それ以上の違いはないだろう。

935 :デフォルトの名無しさん:02/12/08 05:20
>>934
レミ 「ファ#」 ソラシ 「ド#」 レ

936 :デフォルトの名無しさん:02/12/08 05:25
>>934
「固定ド」と「移動ド」くらい中学校で習うだろ。
な〜にが音大だYO!

悔しかったから一生懸命調べたんだろうが
もっぺん出直して来いや。他の板でナー。
ここには2度とくるな!

937 :デフォルトの名無しさん:02/12/08 05:35
>>936
中学レベルの音楽知識で大口叩くとは真性キティだな。
音名と階名を混同してると思われ。
実際問題として音名の意味で「ド」とか「レ」とか言うことのほうが多いし、
「音合わせしたいからラの音出して」と言われて「調は何ですか」
なんて聞くやつはおらん。

938 :デフォルトの名無しさん:02/12/08 05:58
音合わせするときにわざわざ○○の音出してなんて言うか?

939 :デフォルトの名無しさん:02/12/08 06:01
>>937
ハイハイ、もう分ったから他の板逝って。

検索してみれば分るけど「固定ド」「移動ド」どちらを
使うかはコミュニティの流儀による。「あんたのまわりでは」
そういう決まりなのかもしれんが、他では違うかもしれん。
少なくとも中学高校の音楽では「移動ド」で教えているから
アマチュアの大部分にはそちらのほうが馴染みがある。

ハニホ…やCDE…ならそういう混乱の余地は無い。

940 :デフォルトの名無しさん:02/12/08 06:04
>>937
「ハ長調」とか「C Major」とかは言うけど、「ド長調」とは言わない。
「ド」は移動する(ことがある)から。

君の理屈では「ド長調」「ラ短調」があるはずだが?

941 :デフォルトの名無しさん:02/12/08 06:07
>>937
知ったか氏ね。

942 :デフォルトの名無しさん:02/12/08 06:11
そういえば、「ハ長調のソがト長調ではドになる」というように
習ったな…「トがドになるのがト長調」と覚えた。

943 :デフォルトの名無しさん:02/12/08 06:24
>>937は中学で音楽を落第しますた。
「ド長調」(ププ

944 :デフォルトの名無しさん:02/12/08 06:33
階名という言葉を知っているのに意味を知らないとは変な奴だな >>937 って。
「ドレミ」は音階によって呼び名が変わる(移動する)から階名と言うんだけど。

945 :デフォルトの名無しさん:02/12/08 06:41
音楽理論の教科書とかにはI II III IV〜とか数字で書いてあるけど、
そういうのは実生活で使わないのですか>薀蓄垂れしてる人

946 :デフォルトの名無しさん:02/12/08 08:06
新たなミュージックシーンが誕生する予感。
   "ド長調" from ム板@2ch

947 :デフォルトの名無しさん:02/12/08 10:11
>>945
コード教えてる本に載ってたなぁ。

Iをトニックにして後は相対的にって漢字の。

948 :デフォルトの名無しさん:02/12/08 10:18
>>915>>934 は間抜けだが、>>937 はそう変な事は言ってないように見える。

>>945
それは和音の話では…?

949 :デフォルトの名無しさん:02/12/08 10:20
動的に音階を生成

950 :デフォルトの名無しさん:02/12/08 10:25
>>948
>中学レベルの音楽知識で大口叩くとは真性キティだな。

いらんこと書かなきゃ良かったのにな(藁

951 :デフォルトの名無しさん:02/12/08 10:59
うんち君垂れている人

952 : ◆F52DmOxJlc :02/12/08 11:49
まだ音楽話やってたのか…。
話の腰折って悪いけどちょっと教えて。

任意の文字列 char str[] 中に %02d のような型指定子があるかないか調べたくて

char s1[], s2[];
sprintf(s1, str, 1);
sprintf(s2, str, 2);
if (strcmp(s1, s2) == 0) {
 /* 型指定子なし */
} else {
 /* 型指定子あり */
}

ってやったんだけどこれって問題ある?
str[] によっては sprintf() で 1 や 2 が変換されないじゃない。
行き場のない引数を与えていいものか気になるんだけど。

953 :デフォルトの名無しさん:02/12/08 11:51
>>952
str = "%2d%s%s%s%s%s%s%s";
で試してみ。

954 : ◆F52DmOxJlc :02/12/08 12:05
>>953
納得。多謝。

955 :デフォルトの名無しさん:02/12/08 13:27
普通はト長調について言う。

956 :デフォルトの名無しさん:02/12/08 15:18
>>934=>>937

957 :デフォルトの名無しさん:02/12/08 15:25
http://pc3.2ch.net/test/read.cgi/tech/1039328710/
新スレ

958 :デフォルトの名無しさん:02/12/08 15:28
>>957
それは偽スレ。↓こっちが本物。

C言語のことは俺に聞け<46>
http://pc3.2ch.net/test/read.cgi/tech/1038324550/l50

959 :デフォルトの名無しさん:02/12/08 15:29
>>958
45って書いてあるけど・・・

960 :デフォルトの名無しさん:02/12/08 15:30
>>959
ごめん。46の間違い。

961 :デフォルトの名無しさん:02/12/08 16:03
>>958
いい加減にしろクソヤロウ。
もうこれ以上荒らすな。

962 :デフォルトの名無しさん:02/12/08 17:59
>>937
> 「音合わせしたいからラの音出して」と言われて「調は何ですか」
> なんて聞くやつはおらん。

お前、楽器のこと知らんだろ。ラの音出してなんて言うわけないじゃん。
指揮者が間違えてそんなこと言ったら、金管楽器、サックスとビオラ奏者に「ざけんなよ」と言われてもしょうがないぞ。
(他の楽器もあるかも知れんがなにぶんにも記憶が曖昧だ。)
これらの楽器は、>>934 が移調楽器と書いてある通り、普通に言う「ラ」の音が既に移調されている。
だから、オーケストラの楽譜等では楽器に合わせて移調して書いてある。
確かフルートがハ長調で書いてあったら、トランペットはニ長調で書いてあるはず。
(中には、C 管なんて言うトランペットもあるけどね。)

普通の楽団なら、「音合わせしまーす。」とか言うだけで、みんな A の音を出すよ。
(つーか、みんなの準備が揃った頃に第一オーボエ奏者が「ポェ〜〜〜」と吹き始めて、それに合わせるんだと思う。)

963 :デフォルトの名無しさん:02/12/08 18:04
>>962
ブラバン限定の話などしていませんが。

964 :デフォルトの名無しさん:02/12/08 18:14
C言語って音楽に関係する言語だったんですね。

965 :デフォルトの名無しさん:02/12/08 18:20
>>962
いや、もう 915=934=937 がタダのクズヤロウであるという
結論は既に出ているわけで…

966 :デフォルトの名無しさん:02/12/08 18:25
>>937には
http://instruments.hp.infoseek.co.jp/ongaku/on-kai.html
このへんのやさし〜いあたりから勉強しなおしてもらうということで。

967 :デフォルトの名無しさん:02/12/08 18:29
C言語スレは軒並み壊滅だな。


968 :デフォルトの名無しさん:02/12/08 18:31
「質問所」スレを立てた1は、
思い通りに荒らせてさぞ満足してるだろうな…

969 :デフォルトの名無しさん:02/12/08 18:47
http://pc3.2ch.net/test/read.cgi/tech/1039328710/
本物の新スレ

970 :デフォルトの名無しさん:02/12/08 18:49
もう埋めてしまいませんか?
誘導書き込み荒らしがうざいので。
協力者求む


969ゲット!

971 :デフォルトの名無しさん:02/12/08 18:50
がーん。
970 ニナッテシマッタ・・・

972 :デフォルトの名無しさん:02/12/08 18:51
http://pc3.2ch.net/test/read.cgi/tech/1039328710/
本物の新スレ

973 :デフォルトの名無しさん:02/12/08 18:55
>>972
いい加減にしろクソヤロウ。
もうこれ以上荒らすな。


974 :デフォルトの名無しさん:02/12/08 19:00
埋め埋め

975 :デフォルトの名無しさん:02/12/08 19:00


976 :デフォルトの名無しさん:02/12/08 19:00


977 :デフォルトの名無しさん:02/12/08 19:00
977ゲトズザー

978 :デフォルトの名無しさん:02/12/08 19:01
  ,〜'~`〜'~`〜'~`〜'~` 、  。 ∧_∧。゚
 (  ひぃえぇぇぇぇぇ   )  ゚( ゚´Д`゚)っ゚
  (  誰か助けてぇ〜!!! >  (つ■  /
  `、_,〜、_,〜 、_,〜 、_,〜'     |  (⌒)
                   し⌒^
                     '''''


979 :デフォルトの名無しさん:02/12/08 19:01
\モウ/    \ね/  \ アボカド /  \ 馬 /  \ 鹿 /  \ カト /
                                    ∩   ∩
                                    | つ  ⊂|
    ∩;;;∩                      ∧ノ~       ! ,'っ _c,!
  (Y;;;;;;;;;;ヽノ)               ヽ      ミ| ・  \    ⊂/  ・  \
   i;;;;;;;;;;゚;;;゚ヽ           γ⌒^ヽ    ミ|   ... '_)   | __,,▼    ∫
/;;;;;;\;;;;'⌒)          /::::::::::::::ヽ   ミ| (,,゚Д゚)    |・ (,,゚Д゚)   (,,゚Д゚)
 )|;;;;;;;;(,,゚Д゚)    (⌒)(⌒)  /.:::::::::(,,゚Д゚)    | (ノ  |)     | (ノ  |)  ⊂三つ: つ ババンバ
ι|;;;;;;;つ ;;;/つ   ( ・Å・)  i::::::(ノDole|)   |  馬 |      |・・ .鹿 |      ||||||||   バン
  ヽ..;;;;;;;;/  γ⌒ ( ゚Д゚))  ゙、:::::::::::::ノ    人.._,,,,ノ     ι・,,__,ノ     |  |     バン
    U"U  乂_) UU     U"U       U"U       U"U      U"U


980 :デフォルトの名無しさん:02/12/08 19:05
 何このスレ・・・・・?
             /ヽ       /ヽ
            / ヽ      / ヽ
  ______ /U ヽ___/  ヽ
  | ____ /   U    :::::::::::U:\
  | |       // ___   \  ::::::::::::::|
  | |       |  |   |     U :::::::::::::|
  | |      .|U |   |      ::::::U::::|
  | |       | ├―-┤ U.....:::::::::::::::::::/  
  | |____ ヽ     .....:::::::::::::::::::::::< 
  └___/ ̄ ̄      :::::::::::::::::::::::::|
  |\    |           :::::::::::::::::::::::|
  \ \  \___      ::::::::::::::::::::::::|


981 :デフォルトの名無しさん:02/12/08 19:14
誘導:

次スレ 「C言語のことは<46>」http://pc3.2ch.net/test/read.cgi/tech/1039328710/

982 :デフォルトの名無しさん:02/12/08 19:14
なんかここ二三日で激しく荒れてるな。

983 :デフォルトの名無しさん:02/12/08 19:15
誘導:

次スレ 「C言語のことは<46>」http://pc3.2ch.net/test/read.cgi/tech/1039328710/


984 :デフォルトの名無しさん:02/12/08 19:17
       へ ヘ        へ ヘ        へ ヘ
      \| /       \| /       \| /
      ';: ":;.       ';: ":;.       ';: ":;.
  ∧∧⊂.;'、 :つ  ∧∧⊂.;'、 :つ  ∧∧⊂.;'、 :つ
 ;'゚Д゚、":、.: :;:'   ;'゚Д゚、":、.: :;:'   ;'゚Д゚、":、.: :;:'
 '、;: ...: ,:. :.、.: '    '、;: ...: ,:. :.、.: '   '、;: ...: ,:. :.、.: '
  `"∪∪''`゙    `"∪∪''`゙    `"∪∪''`゙


985 :デフォルトの名無しさん:02/12/08 19:17
                ._
                |:::::|
                |:::::|
     ∧_∧.  ∧_∧|:::::|
      ( ´∀`∩(・∀・ )___|
 | ̄ ヽ ( つ   ノ ( ⌒つ| ..|  /  ̄.|
 |      ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄    .|
 |_______________.|
 |::::::::__   __  __ __ __:::::::::|
 |::::::`.! !´ ./△ ! `l D )`l l//´::::::::|
 |:::::::::| |_// ̄!.!__| |\ヽ,,| !\\_ :::::::|
 |::::::::´――'  '――` ´―― ´―` :::::!
 |_;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;_|
 |  SPECIAL. MILD. TOBACCOS.  |   (
 |――――――――――――――‐|    )  ノノ
 |       ______         |  ((   )             (
 |       ヽ     /          |    ) ノ                )    (
 |        | .∧ ∧ |          |   ( _⌒)              ( (    )
 |        | (゚д゚,,) |          |     )ノ               ヽヽ  ノ
 |        |       .|          |     ( (                 ) ))
 |        . ̄ ~~  ̄           | ∧ ∧ )ノ ウマー            (,, (
 |        MILDS           | (,,゚д゚)O_____________)ノ
 |     CHARCOAL FILTER.     | ( ⊃(;;;;;;;;;;;;;;;;;;;;;;;(           ((;;)
 |____________________|〜(,,⌒⊃⊃ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                           ̄


986 :デフォルトの名無しさん:02/12/08 20:01
                    \
                      \
                       \
                         \            /|   。.
                       ,,-'―\       _,/ノ   . .
        ___,,-―――='' ̄ ̄    _,,-'―=''' ̄_,/|  o    *
_,,-―=''' ̄      ___,,-―――='' ̄ __,-―='' ̄   / .   . .
   _,,-―=''' ̄        _,,-―='' ̄ ヽ       /  +
 ̄ ̄        _,,-―=''' ̄          \    /  . . .  .
      ,,-='' ̄                   ヽ  /    .  。. ★  ☆
    ,,,-''                          ヽ/     。.    .
-―'' ̄       /\     ___,  /\   |   . ☆  +
.   |        ..::::::::::::...       |     /    ..:::::::... | + .   . .
   |                    |     /        |    . .   ☆
  ヽ    γ´~⌒ヽ.        |   /          /☆ . *  +.  . 
――ヽ   /      ヽ      |  /         /⌒ヽ、.  .  . .
    \/       |       |_/          /    ヽ +★
      /         |              /     ノ *  ☆


987 :デフォルトの名無しさん:02/12/08 20:29
埋め立て

988 :デフォルトの名無しさん:02/12/08 20:34
♪きのこっのっこーのこげんきのこっエリンーギマイタケブナ(゚д゚)シメジ!

    /⌒ヽ      γ´⌒`ヽ
   /  ●  ヽ    ./Oo〇oOヽ     ,-''"¨ ̄¨`'‐、
  (●/⌒ヽ●)   (Oγ⌒ヽOo)   (,,(,,i,,,i,,,,,,,,i,,,,i,,),)
   ヽ|´∀` |ノ ))  ヾ(゚Д゚ )゚ノ ))    )  (    ))
    .ゝ___ノ       ゝ_ノ.       (゚ー゚* )



989 :デフォルトの名無しさん:02/12/08 20:40
>>988
腹減ったじゃねーか(゚Д゚)ゴルァ

990 :デフォルトの名無しさん:02/12/08 20:46
>>986
梨華たん(*´Д`)ポワワ

991 :デフォルトの名無しさん:02/12/08 21:02
埋め立て

992 :デフォルトの名無しさん:02/12/08 21:07
>>988
どうも左と真中が毒キノコに見えるわけだが・・

993 :デフォルトの名無しさん:02/12/08 21:10
>>962
オーケストラの音合わせは指揮者の口笛を基準にするんだよ。
ウソだけど。

994 :デフォルトの名無しさん:02/12/08 21:15
1000間近なのに静かだなぁ。
1000は誰かに譲るよ。
お前ら、今までに何回1000取った事ある?
俺は2回

995 :デフォルトの名無しさん:02/12/08 21:20
俺1回。
っていうか前から疑問なんだけど1000取ると何が嬉しいの?
俺は別に嬉しくなかった。普通に会話しながら1000逝っちゃったし。

996 :デフォルトの名無しさん:02/12/08 21:24
1000

997 :デフォルトの名無しさん:02/12/08 21:24
1000

998 :デフォルトの名無しさん:02/12/08 21:24
1000

999 :デフォルトの名無しさん:02/12/08 21:24
1000

1000 :デフォルトの名無しさん:02/12/08 21:25
偽スレに騙されないように。↓こっちが本物の次スレ。
スレタイちょっとミスった。ごめんね。

C言語のことは俺に聞け<46>
http://pc3.2ch.net/test/read.cgi/tech/1038324550/l50

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

203 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)