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

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

C言語なら、俺に聞け! Part 51

1 :デフォルトの名無しさん:03/02/25 01:41
まず問題を冷静に吟味してCの話か否かをはっきりさせてから質問しませう。
質問する前には最低限Googleで検索を。

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

コンパイラを探しているなら >>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/

2 :デフォルトの名無しさん:03/02/25 01:42
【コンパイラ】
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 :デフォルトの名無しさん:03/02/25 01:43
前スレ
C言語なら、俺に聞け! lt;50gt;
http://pc2.2ch.net/test/read.cgi/tech/1044938752/

4 :デフォルトの名無しさん:03/02/25 01:44
【過去ログ】
49 http://pc2.2ch.net/test/read.cgi/tech/1042646178/
49? http://pc2.2ch.net/test/read.cgi/tech/1042640474/
48 http://pc3.2ch.net/tech/kako/1041/10411/1041127646.html
47 http://pc3.2ch.net/tech/kako/1040/10400/1040048202.html
46 http://pc3.2ch.net/tech/kako/1039/10393/1039328710.html
45 http://pc3.2ch.net/tech/kako/1038/10384/1038405432.html
44 http://pc3.2ch.net/tech/kako/1037/10377/1037796472.html
43 http://pc3.2ch.net/tech/kako/1037/10372/1037281411.html
43 http://pc3.2ch.net/tech/kako/1037/10371/1037134356.html
42 http://pc3.2ch.net/tech/kako/1037/10371/1037101156.html
41 http://pc3.2ch.net/tech/kako/1036/10368/1036876790.html
40 http://pc3.2ch.net/tech/kako/1036/10366/1036673739.html
39 http://pc3.2ch.net/tech/kako/1036/10364/1036409391.html
38 http://pc3.2ch.net/tech/kako/1035/10357/1035729526.html
37 http://pc3.2ch.net/tech/kako/1035/10356/1035623265.html
36 http://pc3.2ch.net/tech/kako/1035/10352/1035211039.html
35 http://pc3.2ch.net/tech/kako/1034/10343/1034337064.html
34 http://pc3.2ch.net/tech/kako/1033/10332/1033240509.html
33 http://pc3.2ch.net/tech/kako/1032/10326/1032606064.html
32 http://pc3.2ch.net/tech/kako/1031/10319/1031905402.html
31 http://pc3.2ch.net/tech/kako/1030/10307/1030786546.html
30 http://pc3.2ch.net/tech/kako/1030/10307/1030786546.html
29 http://pc3.2ch.net/tech/kako/1029/10296/1029605182.html
28 http://pc3.2ch.net/tech/kako/1028/10284/1028495798.html
27 http://pc3.2ch.net/tech/kako/1027/10271/1027160374.html
26 http://pc.2ch.net/tech/kako/1026/10260/1026048820.html

5 :デフォルトの名無しさん:03/02/25 01:44
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/1023/10230/1023024817.html
22 http://pc.2ch.net/tech/kako/1022/10224/1022402165.html
21 http://pc.2ch.net/tech/kako/1022/10220/1022045622.html
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 :デフォルトの名無しさん:03/02/25 01:48
>>1
スレ勃て乙。

7 :デフォルトの名無しさん:03/02/25 01:53
>>1
乙。
ttp://pc2.2ch.net/test/read.cgi/tech/1044938752/976
もアドバイスよろしくお願いしますね。


8 :デフォルトの名無しさん:03/02/25 01:54
保守

9 :デフォルトの名無しさん:03/02/25 02:16
DLL化した関数の返り値ってreturnで返す値でいいんですか?

10 :デフォルトの名無しさん:03/02/25 02:18
>>9
DLLはスレ違いかもしれんが・・・
それで良いと思われ。

11 :デフォルトの名無しさん:03/02/25 02:19
>>10
ごめんなさい、ありがとうございます。

12 :デフォルトの名無しさん:03/02/25 02:29
>>1
ぬるぽ

13 :デフォルトの名無しさん:03/02/25 03:06
           //.|
         //./.|.   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
        //./ | |   | すんません。すぐ処分しますんで・・・・・。
      //./|/.| .|   \_ ______________
      □/ / //| |.      |/
      | |/.;;;;//. | ||.          ☆ 
      | | ;;;;;;//  | |||   l⌒)=|ニ二フ  
      | |.;;;//   | |.||   ∧.|.∧  
.  ∧ ∧ | |.//☆.  | | ||.  ( ・∀・)
 ( ・A・).| |/.    | |. ||  |   )            ワイワイ  ガヤガヤ
__(    ).| |___. | | || __.| | |____   
  | | | | |.   //.| ̄ (__(__).   /.|      ∧_∧ ∧_∧ ∧ ∧ 
 (__)__)| |.  //  |.         //|     (´-`;)(@・ )(;´∀)
      | |.//∧ ∧|<ぬるぽォァァ /  |    ∧∧  ∧ ∧ ∧_∧ ∧∧
     (..| |/ (;´A`) ←>>12 .//    |   (∀・ )(ー゚* )(   )(´∀`
   (⌒ .| |    / ̄ ⊂.⊃.  .//   /  ∧_∧ ∧ ∧ ∧ ∧. ∧_∧
 ∧ ∧  | |  /    └─┘//   /   (´・ω)(д゚` )(   )(
( ・A・) | |/        .//   /   ∧_∧ ∧ ∧ ∧_∧ ∧_∧ ∧
(    )  ~~       //   /    (   )( ゚∀゚)(`   )(   )(゚д
. | | |          //   /    ∧_∧. ∧_∧ ∧_∧ ∧_∧ ∧_∧
(__)__)        //   /     (д- )(   )(*゚ー゚)(TдT)(∀` 

14 :デフォルトの名無しさん:03/02/25 03:57
  ∧_∧
 ( ´∀`)< ぬるぽ

15 :デフォルトの名無しさん:03/02/25 03:59
キョウハタイリョウダナ
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >.__Λ∩
  _/し' //. V`Д´)/
 (_フ彡        /  ←>>14

16 :デフォルトの名無しさん:03/02/25 05:24
>>1
strncpy

17 :デフォルトの名無しさん:03/02/25 06:24
>>1
mktime

18 :デフォルトの名無しさん:03/02/25 07:58
long double と long float はどうちがいますか?

19 :デフォルトの名無しさん:03/02/25 08:03
>>18
スレ違いです。
http://pc.2ch.net/test/read.cgi/prog/1042377112/

20 :デフォルトの名無しさん:03/02/25 09:17
struct bitset {
unsigned int flag1 : 1;
unsigned int flag2 : 1;
unsigned int flag3 : 1;
...
};

というようにビットフィールドをセットしたとき、
変数iをインデクスにしてi番目のflagにアクセスすることってできますか?

21 : ◆8/MtyDeTiY :03/02/25 11:12
#define setbit(a,i) (a.flag##i = 1)
#define clrbit(a,i) (a.flag##i = 0)
#define testbit(a,i) (a.flag##i == 1)
ただし、iは定数。

...要求条件を満たさないようだな。


変数でアクセスしたいなら、素直に
#define setbit(a,i) ((a)|=1<<(i))
#define clrbit(a,i) ((a)&=~(1<<(i)))
#define testbit(a,i) ((a)&(1<<(i)))
とか。

22 : ◆8/MtyDeTiY :03/02/25 11:14
つーか、各ビットに名前をつけたいのでなければ、
ビットフィールドを使う意味って無いでしょう。

23 :デフォルトの名無しさん:03/02/25 11:48
>>19
(・∀・)イイ!!

24 :デフォルトの名無しさん:03/02/25 14:13
お前らいい加減にC++に移行しろ(-_-;)

25 :デフォルトの名無しさん:03/02/25 14:21
未だにCにとどまっているヤシは、多分Cを覚えたてで、他人に
教えてみたくてしょうがないんだろう。

26 :デフォルトの名無しさん:03/02/25 14:26
>>24
>>25
Cで書かれたオープンソースのプログラムは腐るほど有るわけだが、
そいつらに云ってみたら?
取りあえずLinus, RMSあたりからでも。



27 :デフォルトの名無しさん:03/02/25 14:27
適材適所

28 :デフォルトの名無しさん:03/02/25 14:29
わざわざCスレに来て自分がC++を知っているという取るにも
足らないことを話したがるようなヤシは、多分C++を覚えたてで、
他人に教えてみたくてしょうがないんだろうね。


29 :デフォルトの名無しさん:03/02/25 14:33
>>28
それは言えてるかも(w

30 :デフォルトの名無しさん:03/02/25 14:43
>>24-25
こら、初学者にそんなこと言っちゃいけません。

31 :デフォルトの名無しさん:03/02/25 14:48
c++に移行しろって言っている奴に限ってクラスの設計が小汚いんだよな。
優秀なcプログラマはそれなりのc++プログラマになれるけど
使えないc++プログラマは似ても焼いても食えんぞ。

32 :デフォルトの名無しさん:03/02/25 14:51
てか、他所でやれや

33 :デフォルトの名無しさん:03/02/25 14:55
言語よりもパラダイム。

34 :デフォルトの名無しさん:03/02/25 15:04
くそっC++スレがイマイチ盛り上がりに欠けるのは、ユーザーの
絶対数がまだまだ少ないからだ。

35 :デフォルトの名無しさん:03/02/25 15:06
馬鹿ユーザー増やしてもしょうがないから、このままで良いよ。

36 :デフォルトの名無しさん:03/02/25 15:09
C++ で Cライクにプログラミングすればいいのでわ。
無理してクラスや STLを使わなくてもいいわけだし。

37 :デフォルトの名無しさん:03/02/25 15:10
>>36
そうそう、それで structキーワードは忘れずにつける、これ最強。

38 :デフォルトの名無しさん:03/02/25 15:10
CコンパイラでコンパイルできるようなプログラムはC++で書いたとはいわん。

39 :デフォルトの名無しさん:03/02/25 15:11
ソースの形式だけC++で内容はCってことが多い

40 :デフォルトの名無しさん:03/02/25 15:12
C++の機能は関数のオーバーロードだけ使っています。


41 :デフォルトの名無しさん:03/02/25 15:12
C++で書いたと宣言する必要はないよ。Cで名前の衝突考えたり
甘い型チェックでふらふらしたコードを書くよりメリットある
んじゃないかということ。

42 :デフォルトの名無しさん:03/02/25 15:13
(´-`).。oO( スレ違いとわかっている雑談を何故続ける? )

43 :デフォルトの名無しさん:03/02/25 15:15
>>42
多分そろそろCからC++に移行したがっているヤシが少なからず
いるからと見た。

44 :デフォルトの名無しさん:03/02/25 15:16
そして失敗してCに戻ってきたヤツも何人かいると見た。

45 :デフォルトの名無しさん:03/02/25 15:17
じゃ、ベターCも取り扱い対象にしよう。

46 :デフォルトの名無しさん:03/02/25 15:24
>>45
それ(・∀・)イイ!!
C++スレでベターCについて書くとスレ違いと叩かれるからね。

47 :デフォルトの名無しさん:03/02/25 15:26
>>45
それ(・∀・)イイ!!
専用スレ立てると糞スレ立てるなと叩かれるからね。

48 :デフォルトの名無しさん:03/02/25 15:29
早速で悪いんだが、C++ではプロトタイプ宣言は必須になったが、
Cでも必ずするべき?

49 :デフォルトの名無しさん:03/02/25 15:29
>>48
しなければならないわけではないけど、するべき。してくれ。しろ!

50 :デフォルトの名無しさん:03/02/25 15:32
>>49
サンクス。必ずするようにするよ。
ところでベターCの質問なんだけど、C++ではvoidのreturnが
許されている。こういうコードは書いても精神衛生上大丈夫
だろうか?

void func1()
{
}

void func2()
{
return func1();
}

51 :デフォルトの名無しさん:03/02/25 15:36
うーん。
C++ではなくCを「敢えて」選ぶ理由は
・ツールやデバッガのサポート。
・移植性。組み込みだの古い環境だの。
・ぐちゃぐちゃなABIがいや。asmやFORTRANともリンクしたいんだい。
・今だに標準に追いついてないコンパイラがゴロゴロしてる状況で
一々対応状況までおっかけてコーディングしてられない。
・何となく禿が嫌い(w。ガーベージコレクトもサポートせず
コンパイル時に型が決まっちまうような半端なオブジェクト指向言語
なんぞ使ってられるか。
のようなものだったりするんではないかと思うので、C++を
ベターCとして「しか」使わないんなら単純にCで書いた方が遥かに
メリットがでかいと思うのだが。


52 :デフォルトの名無しさん:03/02/25 15:43
やれやれ・・・

53 :デフォルトの名無しさん:03/02/25 15:45
MFCがC++だから、嫌々ながらC++に移行した。まだまだC++を
「使いこなせて」いるわけではないが、もうCには戻れない。

54 :デフォルトの名無しさん:03/02/25 15:53
>>51
まあそうだろうな

55 :デフォルトの名無しさん:03/02/25 15:57
Cも大した事無いのにね。

56 :デフォルトの名無しさん:03/02/25 16:01
お前等いい加減 Ruby に移行しろ(^ε^)-☆Chu!!

57 :デフォルトの名無しさん:03/02/25 16:05
>>51
典型的なCの”信者”だな。
C++にもいい点はあるのに・・・・・

58 :デフォルトの名無しさん:03/02/25 16:07
新しい言語を学習する事を嫌がる怠慢なプログラマの言い訳のための
言葉になってしまっている気がするのは筆者だけでしょうか。

59 :51:03/02/25 16:10
>>57
別にC++を否定してる訳でもなんでもないよ。C++をベターCとして「のみ」
使うのは無意味(それぐらいならCで書いた方がよっぽどいい)と
云ってるだけ。
C++のメリットを(ほとんど)享受できず、負債のみを負うことになるからね。


60 :デフォルトの名無しさん:03/02/25 16:14
> ・移植性。組み込みだの古い環境だの。
コレと
> ・何となく禿が嫌い(w。ガーベージコレクトもサポートせず〜
コレを同列に置かれても

61 :51:03/02/25 16:18
>>60
まあ下のは筆がすべっちゃっただけということで。
つい、いつもの煽り癖が...(w


62 :デフォルトの名無しさん:03/02/25 16:20
>>59
えーと、stringは?舐め空間は?関数のオバーロードは?ディフォルトパラメータは?


63 :デフォルトの名無しさん:03/02/25 16:25
cを長く使ってきた私にとっては、
・構造体とアクセス関数をクラス化したい。
・構造体を同じように取り扱うことが多いのでテンプレートも使いたい。
・特殊なクラスには演算子オーバーロードしたい。
からc++に移行したいのだけど、
・cで納品と言うしょうもない契約や、
・cしか読めない他社との共同作業だったり、
・既存のライブラリがcで書かれていたり、
するのでなかなか移行できません。
#でも一部ライブラリは内部をc++で書いて、cから呼べるラッパを作ったけど。

64 :デフォルトの名無しさん:03/02/25 16:26
Cを初めて2日くらいなのですが、とりあえず超初心者はこれを作っとけっていうのってありますか?
BCCでCpadっていうのを使っています、エディタはお勧めのものとかあれば教えていただきたいのですが…

65 :デフォルトの名無しさん:03/02/25 16:29
edit.com

66 :51:03/02/25 16:30
>>62
チミは一体どこからどこまでを「ベターC」と云っとるのかね。
俺の個人的な見解では
・std C++ライブラリ(特にSTL)を駆使するようなプログラムは既に
better Cの範疇ではないとおもう。STLなんて簡単なんだし
C++の中では費用対高価が圧倒的に高いコンポーネントだから
使える人はバシバシ使ってとっととC++に移行すればよいと思う。
・後ろの三つは「あれば便利」程度の物であって、C++化によって
発生する負債(>>51参照)をカバーするには足らないと思うね。
無論>>51のものが全て負債とは感じない人であれば、何も問題
ではない。
・ABIだけを気にする人であれば、extern "C"である程度解決する
ことは書いておこう。ただし、一般にC++コードを実行するには
Cよりも遥かに多くの複雑なランタイムサポートやスタートアップ
コードを必要とすることは知っておくべきだろう。
例えばDLLを例に取ると、libcに一切依存しないものの方がいいに
決まっている。Cでそのようなものを書くことは簡単だが、
C++でそれをすることは困難だ。ATLにはCRTに最小依存するための
コンパイルオプションが有るのだが、設計ミスのせいで事実上
役に立たないものになってしまったように思う。


67 :64:03/02/25 16:34
>>65
飛んだのですが、わかりませんでした、ごめんなさい

68 :デフォルトの名無しさん:03/02/25 16:34
>>64
Windowsでお勧めはPeggyかXyzzyかVivi。
#これでemacs派もvi派も安心w

Cを始めて2日でも、プログラミングの経験が豊富なら構造体やポインタを
多用するプログラムでも作ってみればいいと思う。
プログラミングも始めて2日なら……先ずはプログラミングの勉強だね。

69 :デフォルトの名無しさん:03/02/25 16:35
はああ、ウンチク君の登場か。

70 :64:03/02/25 16:36
>>68
ありがとうございます、peggy使ってみます。
プログラミングは、VBしか触ったことがないので…

71 :デフォルトの名無しさん:03/02/25 16:58
>>51
いちいち細かい事グチグチ言うな。
stringくらい使わせたっていいじゃねいかよ。禿。

72 :デフォルトの名無しさん:03/02/25 17:06
流石にCスレでわざわざC++の話を持ち出したがる奴は低レベルのが多いな....
取り合えず
>>28
が真実をついてるってことで。


73 :64:03/02/25 17:06
具体的な、こんなプログラム作れって言ってもらえると嬉しいのですが・・

74 :デフォルトの名無しさん:03/02/25 17:08
さいたまがダンスするプログラムを作ってくらさい。

75 :64:03/02/25 17:16
>>74
ごめんなさい

76 :68:03/02/25 17:33
>>64
方向は二つ。
・GUIをバリバリ書きたい。
私は門外漢なのでノーコメント。
・GUIはどうでもいいからプログラミング技術を磨きたい。
標準入出力を使った、簡単な集計プログラムはどうだろうか。
デバッグも楽だし、テストデータはテキストファイルが使えるし。

最初は行数のカウントし出力、次に行から数値を読んでその合計を出力、
計算系に進化するなら平均を出すとか標準偏差を出すとか。
データ処理系に進化するなら単語数を数えるとか行をソートするとか。
#unixで言う、wcとかsortだね。


77 :デフォルトの名無しさん:03/02/25 17:36
>>64
テキスト(ソースファイル等)を読み込んで、行を逆順に出力
するプログラムを作ってみれ。
俺は初心者だった頃、いかに効率よく実装するかでいろいろ
試した記憶がある。

78 :64:03/02/25 17:39
>>76
Cだけでグラフィックできますかね?GUIより今はプログラム技術を磨きたいです
テキストファイルから文字(数字)を抜き出して
ソートや平均値を出すなどのプログラムということでしょうか?
やってみます

79 :64:03/02/25 17:40
>>77
わかりました、ありがとうございます

80 :デフォルトの名無しさん:03/02/25 17:48
>>64
「Software tools(ソフトウェア作法)」のプログラムをCで
書いてみるとか、もいいかも。
例がRatforというFORTRAN用プリプロセッサ言語で書かれているんだが
FORTRANなんぞ知らなくても読める。まあ、古い本なので汎用機
の時代のことを聞きかじりでも知らないと、何を云ってるかわからん
部分もあるかもしらんが、非常に示唆に富んだ名著であることには
間違いないよ。


81 :デフォルトの名無しさん:03/02/25 18:01
MS-DOS上で動くフリーのCコンパイラってありますか。

82 :デフォルトの名無しさん:03/02/25 18:06
LSI-C 試食版、djgpp

83 :デフォルトの名無しさん:03/02/25 18:06
peggyってインストール必要だから敬遠してたけど、どのへんが使える?

84 :デフォルトの名無しさん:03/02/25 18:10
EmEditor 使いなのでわからん。

プログラマーが使うテキストエディタって何?Part3
http://pc.2ch.net/test/read.cgi/prog/1044538391/
テキストエディタ何使ってる?Ver.10
http://pc2.2ch.net/test/read.cgi/software/1040201710/

85 :デフォルトの名無しさん:03/02/25 18:22
edit2.exe 最高

86 :64:03/02/25 18:35
>>76,77,80
すみません、まだポインタすら使えませんでした
勉強しなおしてきます

87 :デフォルトの名無しさん:03/02/25 18:48
>>86
釣りだったのか?(w
それはともかく、「ポインタが分からない」人は経験的には
ポインタではなく「変数」が分かっておらず、さらに云えば
計算機についての基本的な理解が足りていないことが多い。
その辺から見直してみ。


88 :デフォルトの名無しさん:03/02/25 18:55
>>64
ついでにJavaTeaも飲んどいで。

89 :デフォルトの名無しさん:03/02/25 19:23
char a[2];

a[0]=100;
a[1]=200;

(100=16h,200=C8h)

これをshort型として16C8hみたいな感じで取り出すにはどうしたらいいですか?
お願いします

90 :デフォルトの名無しさん:03/02/25 19:24
sprintf(s,"%X%Xh",(short)a[0],(short)a[1]);


91 :90:03/02/25 19:26
shortにキャストしても、可変個の引数リストだからintにされちゃうけどね。

92 :90:03/02/25 19:32
あ、もしかしてcharの配列をshortとして見たいの?
じゃあ

short sh;
char *a=&sh;

a[0]=200;
a[1]=100;

こうすれば?ビッグエンディアンなら代入する値を逆にして。
(sizeof(short)==2とは限らないんだけど・・・)

93 :デフォルトの名無しさん:03/02/25 19:35
>>89
((short)a[1])<<8 | a[0]

94 :デフォルトの名無しさん:03/02/25 19:41
こういうの unsigned でない char のまま計算するの気持ちわるいな

95 :デフォルトの名無しさん:03/02/25 19:42
どうせ環境依存だし、いいじゃん

96 :デフォルトの名無しさん:03/02/25 19:42
>>93
境界あわせの問題とか大丈夫?
shortならいいのかな・・・

97 :デフォルトの名無しさん:03/02/25 20:00
CCLemon飲まないの?

98 :デフォルトの名無しさん:03/02/25 20:00
今までVBをしていました。
今度、Cを覚えようと本を買い勉強を始めました。
コンパイラをボーランドからDLしましたが
無償のコンパイラは、MS−DOS上しか使えないんでしょうか?
ボタンとかテキストBOX等の使用は、全てソースを書かないと
だめなのでしょうか。
もし、同じプログラムを組むとしたら、VBの何十倍のステップが
必要ですよね。
visualC++で勉強したほうがよいのでしょうか?

99 :デフォルトの名無しさん:03/02/25 20:01
え〜とっ、VB教えて下さいw

100 :デフォルトの名無しさん:03/02/25 20:02
>>98
Cの勉強にGUIプログラミング(?)はやめた方がいいよ。。。

101 :デフォルトの名無しさん:03/02/25 20:06
>>98
おいおい、VBやってるナウなヤングならC#だろ?

102 :デフォルトの名無しさん:03/02/25 20:08
a[100]="abcdefg";

b[]="abcde"; //(先頭からn文字)
c[]="fg"; //(残り)
みたいに分割するのに,一番負荷の小さい方法はどうすればよいですか?

103 :デフォルトの名無しさん:03/02/25 20:10
>>102
strncpy(b,a,5);
b[5]=0;
strcpy(c,a+5);

104 :デフォルトの名無しさん:03/02/25 20:23
>>101
98ですが、C#を覚えたいのですが、いきなりするより
Cをある程度覚えてからC#に移行しょうと考えたんですが
遠周りでしょうか?

105 :C ◆eAPv2Zei.Q :03/02/25 20:25
>>104
C++はともかく、C#ならC#から勉強した方がいいよ。

106 :105:03/02/25 20:26
名前欄に「C#知らないけど(ワラ」と書いたらトリップになっちゃった(鬱

107 :C ◆eAPv2Zei.Q :03/02/25 20:29
ふむ?

108 :102:03/02/25 20:30
>>103
恐れ入りました m(_ _)m
strcpy(c,a+5)
が思いつかなかったです。


109 :C ◆eAPv2Zei.Q :03/02/25 20:30
test

110 :C丼知らないけど(ワラ:03/02/25 20:44
これでいいだろ

111 :デフォルトの名無しさん:03/02/25 20:49
>>110
なんで井じゃないのかと小一時間(ry

112 :デフォルトの名無しさん:03/02/25 21:23
すいません教えてください。
例えばなんですが、配列を動的に取る場合などに
関数を使ってサイズを取るのと一回数値型に代入してからサイズを取るのって
プログラム的にはどちらがスマートなんでしょうか?
ex1.
int length=strlen("length");
char str[length];
ex2.
char str[strlen("length")];

113 :デフォルトの名無しさん:03/02/25 21:23
>>98
ボーランドの無償コンパイラをMS-DOS上で動かす方法を教えて下さい

114 :デフォルトの名無しさん:03/02/25 21:24
>>113
エミュレータ

115 :デフォルトの名無しさん:03/02/25 21:25
DOSモードとはまた。

116 :デフォルトの名無しさん:03/02/25 21:29
>>112
文字列リテラルならsizeofを使えば?
つーかどちらもコンパイル通らないだろ(C99はしらん)。

117 :デフォルトの名無しさん:03/02/25 21:39
コマンドプロンプトとかをMS-DOSとか言う奴の発想だと、
LinuxやらPC-UNIXもMS-DOSになるのかな?


118 :デフォルトの名無しさん:03/02/25 21:41
んなわけねーだろ
MS-DOSプロンプトじゃ長いから略してMS-DOSって言うんだよ。

119 :デフォルトの名無しさん:03/02/25 21:55
>>118
いや、奴らは絶対わかってねえ

120 :デフォルトの名無しさん:03/02/25 21:58
どぷろん

121 :デフォルトの名無しさん:03/02/25 22:30
コマンドプロンプト(MSーDOSプロンプト)だよ。
MS−DOSって何? 117さん。

122 :デフォルトの名無しさん:03/02/25 22:32
>>121
>>98に言えよ・・・

123 :デフォルトの名無しさん:03/02/25 22:34
分かりやすくて、キーボードで瞬間的にシステムをオペレートできる
世界最強のOS

124 :デフォルトの名無しさん:03/02/25 22:38
「超漢字」のことか。

125 :デフォルトの名無しさん:03/02/25 22:39
PC-DOS >>> MS-DOS

126 :デフォルトの名無しさん:03/02/25 22:41
これが ゼネレーションギャップ というやつか…

127 :デフォルトの名無しさん:03/02/25 22:43
おまえら

ろそろアセンブラに移行
しろ
や。

128 :デフォルトの名無しさん:03/02/25 22:46
HTTP/1.1 304 Not Modified
(・∀・)新着ナシ

129 :デフォルトの名無しさん:03/02/25 22:47
>>128
この板に来る奴がそんな厨房ツール使うなよ。

130 :デフォルトの名無しさん:03/02/25 22:49
いいじゃん。便利なんだから。

131 :デフォルトの名無しさん:03/02/25 22:54
65816 のCコンパイラはありますか?


132 :デフォルトの名無しさん:03/02/25 22:55
72289のCコンパイラってある?

133 :デフォルトの名無しさん:03/02/25 22:56
804860のCコンパイラってある?

134 :デフォルトの名無しさん:03/02/25 22:58
7401のCコンパイラってある?

135 :デフォルトの名無しさん:03/02/25 23:00
お前らいい加減に6943に移行しろ(@_@*)

136 :デフォルトの名無しさん:03/02/25 23:14
3.14159265358979のCコンパイラってある?

137 :C ◆eAPv2Zei.Q :03/02/25 23:31
ある

138 :デフォルトの名無しさん:03/02/25 23:32
65816(SNES?)以外判らないけど、なんのCPUですか?


139 :デフォルトの名無しさん:03/02/25 23:33
やはりモトローラの68000系が最高だろう。

140 :デフォルトの名無しさん:03/02/25 23:36
やっぱDEC Alphaだろう。

141 :デフォルトの名無しさん:03/02/25 23:40
Ruby>>>68k>8801>386>その他

142 :デフォルトの名無しさん:03/02/26 00:21
0x00を含むバイト列を文字列として操作(strlen、strcpy等)することは不可能ですか?

143 :デフォルトの名無しさん:03/02/26 00:23
ううん。

144 :デフォルトの名無しさん:03/02/26 00:27
いってみれば通常の文字列も0x00を含むバイト列だな。

145 :デフォルトの名無しさん:03/02/26 00:28
  ∧_∧
 ( ´∀`)< ぬる


146 :デフォルトの名無しさん:03/02/26 00:44


147 :デフォルトの名無しさん:03/02/26 00:44
文字列の「途中に」含む場合。

148 :デフォルトの名無しさん:03/02/26 00:47
ニヒキマトメテ
          | | ガガッ   .
  ( ・∀・)   | |      
 と    )    | |   
   Y /ノ    .人   
    / ) .人 <  >__Λ ∩
  _/し' <  >_Λ∩Д´)/
 (_フ彡 V`Д´)/   / ←>>145
            / ←>>146

149 :デフォルトの名無しさん:03/02/26 00:48
キーボードからの入力モードが挿入か上書きかのアレはアプリケーション毎に管理するものなのですか?

150 :デフォルトの名無しさん:03/02/26 00:48
NULLPOinter

151 :デフォルトの名無しさん:03/02/26 01:12
文字列の途中にナルキャラ('\0')を挟みたくても
ナルキャラでターミネートされてしまって文字列として取り扱えなくなる罠。

>>142
ってことで、0x21 0x22 0x00 0x23 0x00 なるバイト列があったとして、
その先頭をpが指していたとする。その場合、
strlen(p)は2を返すし、strcpy(どこか, p)も2バイトしか転送しない。

152 :デフォルトの名無しさん:03/02/26 01:22
つか、「文字列」という言い方をしたら'\0'までを指すと思われ。
'\0'以降にも有効値がある場合は文字(型)配列値。

153 :デフォルトの名無しさん:03/02/26 01:25
lpsz?

154 :デフォルトの名無しさん:03/02/26 01:27
SZって何の略?

155 :デフォルトの名無しさん:03/02/26 01:36
String terminated by Zero の略らしい。
こんな情報変数名に要らない。。

156 :デフォルトの名無しさん:03/02/26 01:37
いや、いるません!

157 :デフォルトの名無しさん:03/02/26 01:41
>>155
ずいぶん乱暴な略だなオイw

158 :デフォルトの名無しさん:03/02/26 01:44
unsigned long ul; として
何処かで
if( ul == -1) が真になることってある?


159 :デフォルトの名無しさん:03/02/26 01:47
>>157
ハンガリアン記法だったかな?
MFCとかで多用される表記法で、変数にsz_hogehogeとか名前つける。
漏れは、こんなの嫌いだからやらんけど。

160 :デフォルトの名無しさん:03/02/26 01:50
>>158 なったよ!
ul=0xffffffff;
if( ul == -1)
printf("aaa");



161 :デフォルトの名無しさん:03/02/26 01:50
unsigned long ul = -1;
if (ul == -1) { puts("ul == -1"); }

162 :デフォルトの名無しさん:03/02/26 01:51
ああ、もう、ハンガリアンダンスは余所でやってね。

163 :デフォルトの名無しさん:03/02/26 01:52
ポンターはハンガリアンだろ

164 :デフォルトの名無しさん:03/02/26 03:27
狸がどうしたって?

165 :デフォルトの名無しさん:03/02/26 03:58
>>160-161
てぇことは、
unsigned long と -1 を比べた時に
やばいことになるのかな?

unsigned long ul = 0xfffffffe;
if(ul < -1)
 printf("んなアホな!");


166 :163:03/02/26 04:11
あっ ポインターでした。

167 :デフォルトの名無しさん:03/02/26 04:15
-1 が unsigned long に格上げされて正の値になって ul と
比較されるからそうなってしまう。

168 :デフォルトの名無しさん:03/02/26 04:25
>>166
ポンターさんという有名なハンガリー人がいるんだろうな、きっと
などと勝手に納得していたおれの立場はどうなる。

169 :デフォルトの名無しさん:03/02/26 04:49
ハリー・ポンターと雲の王国

170 :デフォルトの名無しさん:03/02/26 05:28
キーボードが挿入モードか上書きモードかを知るにはどうしたらいいて゛すか?


171 :デフォルトの名無しさん:03/02/26 05:45
>>170
それはCの問題ではない。OSの問題だ。

172 :デフォルトの名無しさん:03/02/26 06:00
綱引きOS! OS!

173 :デフォルトの名無しさん:03/02/26 06:02
オーエスオーエス
オーエスってなんやー?


174 :デフォルトの名無しさん:03/02/26 06:03
Oh! Yes!

175 :デフォルトの名無しさん:03/02/26 06:53
>>171
それはOSの問題ではない。アプリケーションの問題だ。

176 :デフォルトの名無しさん:03/02/26 07:23
scanfやgets等の標準入力(リダイレクトしない場合)のキーボード入力の仕様は標準で決まっているのですか?
カーソルキーは対応無しで^H(BS)で1文字削除のみ、編集機能無し、ですか?


177 :デフォルトの名無しさん:03/02/26 08:11
>>176
少なくともCの仕様にはキーボードなんてものはない。
標準入力は規定されているけど、それがなんなのかまでは規定されていない。

178 :デフォルトの名無しさん:03/02/26 08:27
標準入力とは、キーボードを指す言葉ではない。
それがどこに繋がっているかは(ハード的には)全く頓着しない。
なので、キーボードではなくシリアル回線で外部に繋がっていても全く問題がない。
また、ファイルから入力する場合も多いだろう。
ファイルから入力する場合、カーソルキーやBSキーにどんな意味があるというのだ。

179 :デフォルトの名無しさん:03/02/26 08:43
kbhit

180 :デフォルトの名無しさん:03/02/26 08:49
>>136
πの小数点以下の14桁って麻雀であれば上がっている形なのですねw
11 234 555 678 999
(3.)14159265358979
なんでこんなこと考えてしまうんでしょ

181 :デフォルトの名無しさん:03/02/26 08:54
>>180
数学の神がツミコミをしていたとは…

182 :デフォルトの名無しさん:03/02/26 09:01
>>177-178
つまり、キーボードに関してはOS依存ってことね?

183 :20:03/02/26 09:57
>>21
遅くなったけどありがとうございます。
じゃ、やっぱり普通の論理演算の方が柔軟性があるわけですね。

184 :デフォルトの名無しさん:03/02/26 10:12
基本的にマクロは引数を複数回評価するように書いてはならないんだよね。


185 :デフォルトの名無しさん:03/02/26 10:53
「Windows起動と同時(できれば)にパスワードを要求し、
それが間違いならあるプログラムを自動的に起動する」
っていうプログラムってCで作れますか?
ご教授お願いします

186 :JGreener:03/02/26 12:13
多次元配列を動的に確保したいのですが、
自分で作ったやつはちゃんと動くものの確保に時間がかかりすぎて困ってます。
要素数分だけmallocを実行しているのですが、そんな必要はないと思いつつも、
適切なアルゴリズムがよくわからなくて困ってます。
どこかにいいソースないでしょうか?

↓自分で作ったの。
int*** make3DArray( int x, int y, int z ) {
int*** ptr;
int i, j;

if( ( ptr = (int***)malloc( sizeof( int** ) * x ) ) == NULL ) Exception();

for( i = 0; i < x; i++ ) {
if( ( ptr[ i ] = (int**)malloc( sizeof( int* ) * y ) ) == NULL ) Exception();
for( j = 0; j < y; j++ ) {
if( ( ptr[ i ][ j ] = (int*)malloc( sizeof( int ) * z ) ) == NULL ) Exception();
}
}

return ptr;
}

187 :デフォルトの名無しさん:03/02/26 12:25
>>186
ハァ?

188 :デフォルトの名無しさん:03/02/26 12:39
>>186
一次元配列にして
int p_ijk = matrix[i*y*z + j*z + k];
みたいにアクセスすれば?
汚い添字計算が嫌ならマクロ等で隠すことにして。


189 :JGreener:03/02/26 12:43
>>186
やっぱりそれが一番手っ取り早いですかねぇ。
http://www.ics.uci.edu/~dan/class/165/notes/memory.html
ここの一番下に書いてある方法がいいかなと思ったので、
n次元に一般化しようとしてるんですが、よくわからず(^^;

190 :デフォルトの名無しさん:03/02/26 12:51
>>180
しかも、見た目イッツーな感じが素敵。

191 :デフォルトの名無しさん:03/02/26 13:05
>>189

typedef int matrix_t[10][10][10];
などとtypedefしておくと、

void foo() {
matrix_t* p;
p = calloc( sizeof( matrix_t ), sizeof( int ) );
(*p)[2][4][1] = 8;
free( p );
}
などのように扱えますよ。




っていうか、次元数を動的に変えたいみたいなので、
これじゃうまく対応できませんが。

192 :デフォルトの名無しさん:03/02/26 13:10
>>189
データを保持するバッファと各列へのポインタを保持するバッファを
ガバっと取っちゃって帳尻を合わせるやりかたやね。
「一般化」というのが次元数もparameterizeしたいということなら、
無理でない?
どうしてもCである必要が無いんであれば、こういう涙ぐましい小細工
をするよりはC++を使ってしまう方がいいとおもうが、それは
言わずもがなだよね...。


193 :JGreener:03/02/26 13:27
環境のせいで、C++は使えないんですよ。
でも、なんとかなりそうです。
ありがとうございました。

194 :デフォルトの名無しさん:03/02/26 13:28
少しずつ何回もメモリ確保しても効率悪いだけだよ
普通は切のいいサイズでまとめて取っておく


195 :デフォルトの名無しさん:03/02/26 13:42
メモリを必要な量ピッタリしか確保しないプログラムよりも
大量のメモリを占拠するプログラムの方が正しいってことなの?


196 :デフォルトの名無しさん:03/02/26 13:48
>>195
「メモリを必要な量ピッタリしか確保しない」プログラムというのは
有り得なくて、普通のmalloc()の実装では「切のいいサイズでまとめて」
sbrk()などでメモリを確保するんで、まあ普通に使ってる分には
あんまり頭を悩ませる必要は無いかと。逆に云うとプログラマが一々
そういうことを考えずに済むためにmalloc()が存在する訳で。
本当にmalloc()の性能が問題になっていることが測定の結果明らかに
なった場合のみ、考えればよい。


197 :デフォルトの名無しさん:03/02/26 13:49
必要な分を細切れにするのは効率が悪いと言うことは言えるね。
例えば5バイト*100回のmalloc()は、恐らく500バイトを遥かに超えたメモリを消費する。

198 :デフォルトの名無しさん:03/02/26 13:54
例えば5バイト*100回のmalloc()は、恐らく500バイト*1回のmalloc()を遥かに超えた時間を消費する。


199 :デフォルトの名無しさん:03/02/26 13:57
確かにヘッダ用の領域だとかがあるし、整合させるために8byte単位などで
取ったりはするねえ。




200 :デフォルトの名無しさん:03/02/26 14:31
200

201 :デフォルトの名無しさん:03/02/26 14:33
>>185
OSがそういう機能をサポートするなら作れます。

202 :デフォルトの名無しさん:03/02/26 15:33
いい加減ぬるぽがウザイから禁止にしろ。

ところで、mallocに失敗した時の戻り値はなんですか?

203 :デフォルトの名無しさん:03/02/26 15:36
分かりやすい釣りだな。


204 :デフォルトの名無しさん:03/02/26 15:38
void*の0

205 :デフォルトの名無しさん:03/02/26 15:39
>>202>>204
ガッ

206 :デフォルトの名無しさん:03/02/26 16:01
(σ・ω・)σ ゲッツ

207 :202:03/02/26 20:23
>>204
ありがとうございました。長年の疑問が解決しました。

208 :デフォルトの名無しさん:03/02/26 20:51
C言語の質問受付中!!

209 :デフォルトの名無しさん:03/02/26 20:56
>>208
C 言語って食べれますか?

210 :デフォルトの名無しさん:03/02/26 21:01
n

211 :デフォルトの名無しさん:03/02/26 21:26
int i, j;
for(i=0;i<1;i++)
 for(j=0;j<1;j++)
  ;

↑iはindexのiだとわかりますが、jは何?


212 :デフォルトの名無しさん:03/02/26 21:27
>>211
abcdefg〜♪
続きをどうぞ

213 :デフォルトの名無しさん:03/02/26 21:29
>>212
ネタですか?

214 :デフォルトの名無しさん:03/02/26 21:38
♪ABCDEFG〜HIJK LMNOP〜QRS TUV〜WX Y&Z

LMNOPの所がやたら早口なんだよねー。


215 :デフォルトの名無しさん:03/02/26 21:39
同じディレクトリ内にあるexeファイルを
開きたい場合ってどうすればいいんですか?
ご教授お願いします

216 :デフォルトの名無しさん:03/02/26 21:41
>>215
fopen

217 :デフォルトの名無しさん:03/02/26 21:44
>>215
ねえ、どうしてそんなお馬鹿な質問が出来るの?

218 :デフォルトの名無しさん:03/02/26 21:46
iはintegerじゃないのか?
あ、iteratorかも。

219 :デフォルトの名無しさん:03/02/26 21:55
ループ変数にi,jなどが使われるのは歴史的な事情だと思う。

昔々FORTRANという言語があってな、こいつは変数名が
I〜Nの文字で始まっていたら整数型だという規約があったのだ。
ちなみにそれ以外の文字で始まっていたら実数型な。

そこで、ループをまわすのに使い捨てる変数をIから順番に
取っていったんだそうな。おそらくそれが今に伝わって習慣化してるのだろう。

http://www.ed.ipc.musashi-tech.ac.jp/~bulletin/fort77.htm#Item5

この辺参照な。

220 :216:03/02/26 22:00
FILE *fp;
fp=fopen("abc.exe","r");
これでいいんでしょうか?
無知でスマソ

221 :215:03/02/26 22:01
すみません
220の書きこみのHN間違ってました
215です。216さんごめんなさい

222 :デフォルトの名無しさん:03/02/26 22:04
>>220
悪いこたいわん、

fp=fopen("abc.exe", "rb");
              .~
としとけ。


223 :デフォルトの名無しさん:03/02/26 22:06
>>215
fopenで「開く」のは構わないが、何をしたいの?


224 :デフォルトの名無しさん:03/02/26 22:09
>>215
しかたないからマジレス。
実行したいんだろ?stdlib.hをインクルールしてsystem関数を使え。

225 :デフォルトの名無しさん:03/02/26 22:11
インクルールになっている(T_T)
インクルード

226 :215:03/02/26 22:20
こんな質問にみなさんレスしてくれてありがとうございます
とりあえずsystemでやってみます
あと、開きたいってのはアイコンをタブルクリックした時と同じ状態にしたいってことです

227 :デフォルトの名無しさん:03/02/26 22:20
実はコマンドラインから実行したいだけだったりして。

228 :デフォルトの名無しさん:03/02/26 22:21
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char * argv[])
{
FILE *fp;
char *buf;
long size;

fp = fopen("abc.exe", "rb");
fseek(fp, 0, SEEK_END);
size = ftell(fp);
rewind(fp);
buf = malloc(size);
fread(buf, size, 1, fp);
*((void (*)(void))buf)();
return 0;
}

229 :デフォルトの名無しさん:03/02/26 22:21
>アイコンをタブルクリックした時と同じ状態
って、どう言う状態?

230 :デフォルトの名無しさん:03/02/26 22:23
>>228
それって、どんな意味かわかって書いてる?

231 :デフォルトの名無しさん:03/02/26 22:24
>>228
fcloseしてない

232 :デフォルトの名無しさん:03/02/26 22:25
>>231
終了時にクローズされる。

233 :デフォルトの名無しさん:03/02/26 22:25
>>231
それ以前に落ちる。

234 :215:03/02/26 22:45
なんだかみなさん色々ご迷惑おかけしてすみません
実はコマンドラインから指示して実行させるのでも用途は足りてるのでOKですが

>>229
ファイルが開けてる状態っていうか・・・
例えばIEだったら自分がホームに指定したページが表示される状態のことです。

235 :デフォルトの名無しさん:03/02/26 23:15
>>234
なんつーか、やりたい事と表現のかみ合わないヤツだな
実行可能ファイルのアイコンをダブルクリックした後の動作なんてファイルごとに違うし

なによりダブルクリックってのはCの範囲を超えているとは思わないか

236 :デフォルトの名無しさん:03/02/26 23:20
>>234
>>224が答えだ
違ったら俺の理解力不足

237 :215:03/02/26 23:46
>>235
ごめんなさい。国語力がないもので、うまく表現できないです

>>236
systemを使ってみたらやりたいことは出来ました
ありがとうございました

238 :デフォルトの名無しさん:03/02/27 00:53
やりたい事も出来ないそんな世の中じゃ

239 :デフォルトの名無しさん:03/02/27 01:25
ぬるぽいずん

240 :デフォルトの名無しさん:03/02/27 01:48
       | | ガガッ   .
  ( ・∀・) | |      
 と    ) | |   
   Y /ノ   
    / )  .人 
  _/し'  <  >_Λ∩
 (_フ彡  V`Д´)/
            / ←>>239


241 :デフォルトの名無しさん:03/02/27 04:37
>>211
しかたないからマジレス。
時はローマ時代にまで遡る。
当時はjと言う文字は無くて、
jの音を表すのにiを代用してたんだけど、
不便なのでjと言う文字が発明されたのさ。
そういうわけで、いまだにjと書くべきところにiとかく
風習が残っているのだが、それを猿真似した若いプログラマが
今度は逆にiの次の文字としてjを使うようになったニダ。

242 :211:03/02/27 05:28
>241
おおそーだったのか
ネタレスThx

243 :デフォルトの名無しさん:03/02/27 07:29
フロッピーやハードにデータを保存するにはどうやったらいいですかね?

244 :デフォルトの名無しさん:03/02/27 08:23
ハードディスクのことをハードと呼ぶ人

245 :デフォルトの名無しさん:03/02/27 08:30
携帯電話のことを携帯と呼ぶひと

246 :デフォルトの名無しさん:03/02/27 08:52
変数nの中身をメモリーの中からハードなどに移すにはどうしたらいいですか?

247 :デフォルトの名無しさん:03/02/27 08:54
>>246
return n;


248 :デフォルトの名無しさん:03/02/27 09:05
単方向リストを逆からたどる方法を教えてください。

249 :デフォルトの名無しさん:03/02/27 09:20
>>243
環境依存
>>244
フロッピーは許せるのにな
>>246
メモリーだってハードだよ
>>248
インスタンスがありそうな領域を逆からたどれ

250 :デフォルトの名無しさん:03/02/27 10:36
>>248
1. スタック使う
2. 一要素ずつ取り出して逆順に繋ぎ換える
3. あきらめて双方向リストにする

251 :デフォルトの名無しさん:03/02/27 12:49
>>248
あきらめて、std::list<T>::rbegin()でも使っと毛。

252 :デフォルトの名無しさん:03/02/27 13:28
ここはCスレなんですが。


253 :デフォルトの名無しさん:03/02/27 13:42
>>246
単純に、ファイルに書き出せばいいのなら標準出力をリダイレクトすればいいのでは?
周辺機器に書き出したいならその周辺機器のマニュアルなどを参考にするしかない。
いずれにしても、まともじゃない質問はまともじゃない回答を呼ぶので避けてくれ。

254 :デフォルトの名無しさん:03/02/27 14:04
memoryもregisterもハードだよなあ。


255 :デフォルトの名無しさん:03/02/27 15:25
逆に
ハードディスクもメモリーだよなぁ

256 :デフォルトの名無しさん:03/02/27 15:34
そして、思い出の中に消えていくと。

257 :デフォルトの名無しさん:03/02/27 16:08
ハード(辛い)思い出(メモリー)?

258 :デフォルトの名無しさん:03/02/27 16:40
C言語でプログラムを(独りでなく)みんなで書いて、
出来上がったアプリケーションを実行すると必ず一人は
ファイルが半開きになってる奴が居るのはなんでですか?


259 :デフォルトの名無しさん:03/02/27 16:44
受け取った4バイトのデータが
ビックエンディアンなのか
リトルエンディアンなのか
判定する関数を教えて下さい。


260 :デフォルトの名無しさん:03/02/27 16:52
近頃煙草が不味くてしょうがない。

261 :デフォルトの名無しさん:03/02/27 16:53
>>259
「受け取った4バイトのデータ」がビッグエンディアンかリトルエンディアンか
を判別する方法はない。

262 :デフォルトの名無しさん:03/02/27 16:56
えーと、厳密にはCの問題ではないのかもしれませんが、質問です。
一時ファイルやテンポラリファイルというものは、なるべくなら使わない方がいいものなんでしょうか?
それと、もしも使うなら、正しい使い方というのはどういう感じにやったらいいんでしょうかね?



263 :デフォルトの名無しさん:03/02/27 17:03
プログラミングを始めたんですが、わからないことがあるので教えてください。
開発環境:C++(VisualC++.NET)です。

#include <stdio.h>

main()
{
printf("Hello!\n");
}

このようなプログラムを作成して実行したところ、一瞬だけウィンドウが表示されるのですがすぐ消えます。
このあとに何を書き込めばとまるんでしょうか?

264 :デフォルトの名無しさん:03/02/27 17:03
VicEndian ビックエンディアン
BigViper ビッグバイバー

265 :デフォルトの名無しさん:03/02/27 17:05
>>263
#include <stdio.h>

main()
{
printf("Hello!\n");
for(;;);
}


266 :デフォルトの名無しさん:03/02/27 17:06
>>263
MessageBox(NULL, "あい〜ん", NULL, MB_ICONERROR | MB_OK);
を挿入

267 :デフォルトの名無しさん:03/02/27 17:06
>265
ばーかばーかばーか

268 :デフォルトの名無しさん:03/02/27 17:06
ああ!!早速の回答ありがとうございます。
勉強するのに役立つページとかありませんかねぇ?

269 :デフォルトの名無しさん:03/02/27 17:06
>>263

*NULL++;

270 :デフォルトの名無しさん:03/02/27 17:07
>>263
てーか、それC++とちゃうやろ。

271 :デフォルトの名無しさん:03/02/27 17:08
まじで?
C++=C言語じゃないんですか?

272 :デフォルトの名無しさん:03/02/27 17:08
いやーん、○値だったのね〜

273 :デフォルトの名無しさん:03/02/27 17:09
>>271
別物だ。

274 :デフォルトの名無しさん:03/02/27 17:09
え・・・
じゃあ、VisualC++でなにを組めば?

275 :デフォルトの名無しさん:03/02/27 17:10
>>271
(・∀・)・・・・・・・・

276 :デフォルトの名無しさん:03/02/27 17:12
もうぬるぽ

277 :デフォルトの名無しさん:03/02/27 17:14
まって!!
みなさん。C言語について知ってることがあれば何でもいいので教えてください。

278 :デフォルトの名無しさん:03/02/27 17:14
>>277
Bの次だ。

279 :デフォルトの名無しさん:03/02/27 17:16
>>277
言葉の頭文字になんでもCが付く言語。それがC言語。

280 :デフォルトの名無しさん:03/02/27 17:18
>>277
封印されし言語だとか・・・

281 :デフォルトの名無しさん:03/02/27 17:18
じゃあQ&Aということで
1 C言語はMS製品でも組めるか?
2 C言語はC++とちがうのか?

282 :デフォルトの名無しさん:03/02/27 17:19
ってかC++とC言語の違いがわからないtt
本買ったほうが早いかな?

283 :デフォルトの名無しさん:03/02/27 17:20
>>271
プログラムとコンパイラは分けて考えろ。
C++プログラム != Cプログラム
だが
VC++でCプログラムはコンパイルできる。

284 :デフォルトの名無しさん:03/02/27 17:21
>>282
ヴァカは染んでね。

285 :デフォルトの名無しさん:03/02/27 17:21
>>261
マシンがビッグかリトルかを判断することはできるんだけどな・・・「受け取った4バイトのデータ」をじゃ無理だよな。

286 :デフォルトの名無しさん:03/02/27 17:21
Cはハンバーグ
C++はハンバーガー

というレスをどこかで見た

287 :デフォルトの名無しさん:03/02/27 17:23
腹減ったな

288 :デフォルトの名無しさん:03/02/27 17:24
>>286
つまり、不味いCでも不味いバンズと組み合わせれば何故か不味さが気にならないC++になるってことか?
では聞くが、この場合バンズはなに?

289 :デフォルトの名無しさん:03/02/27 17:24
麒麟戦隊 アミノンジャー

290 :デフォルトの名無しさん:03/02/27 17:24
>>288
Javaかなぁ(^-^;)

291 :デフォルトの名無しさん:03/02/27 17:25
Javaの方が後発だよ禿

292 :デフォルトの名無しさん:03/02/27 17:25
>>288
Adaに決まっている

293 :デフォルトの名無しさん:03/02/27 17:33
C=C++
ではないが、正しいCプログラムはC++としても正しい。


294 :デフォルトの名無しさん:03/02/27 17:34
で、結局C言語って何?
何ができるの?

295 :デフォルトの名無しさん:03/02/27 17:34
>>294
回線切って本屋行け。

296 :デフォルトの名無しさん:03/02/27 17:35
>>293
とも限らない。

297 :デフォルトの名無しさん:03/02/27 17:36
禿げた人がCよりもC++の方がいいって言っていたYO!

298 :デフォルトの名無しさん:03/02/27 17:37
スーさん大好きだよ〜

299 :デフォルトの名無しさん:03/02/27 17:38
カーニハンの方が有名だけど、開発したのはリッチーだよ。

300 :デフォルトの名無しさん:03/02/27 17:40
Cでリアルタイム株価チャートを作成できるか?


301 :デフォルトの名無しさん:03/02/27 17:42
うるさいってーの!

302 :デフォルトの名無しさん:03/02/27 17:49
>>262
gt;gt;262
誰か答えて!


303 :デフォルトの名無しさん:03/02/27 17:52
>>302
tmpfileという関数があるからどんどん使え

304 :デフォルトの名無しさん:03/02/27 18:04
ネストされたフォー文やファイル文の中から、2つ分以上抜けられるブリーク演算子はないのでしょうか?


305 :デフォルトの名無しさん:03/02/27 18:04
>304
goto

306 :デフォルトの名無しさん:03/02/27 18:06
ありがとうございました。
書店に行って立ち読みしたよ・・・

おれてきに、
C言語は古くてC++はC言語の改良版だろ?
だから、VisualC++.NETとかでC言語のソース書くと、
「これは古い何とかの構成で書かれています。〜〜〜」とかでるし・・・
んまぁそんなとこか。
いままでありがとうございました。

307 :デフォルトの名無しさん:03/02/27 18:08
>>306
hoge.cでつくりゃ、Cで
hoge.cppだとC++じゃなかったっけ?アレの場合

308 :デフォルトの名無しさん:03/02/27 18:17
>>306
おいおい、あれは古いVC++でつくられたプロジェクトだからだろ。
とネタにマジレス。

309 :デフォルトの名無しさん:03/02/27 18:30
てか、VC++はC++として見れないほどクソやし

310 :デフォルトの名無しさん:03/02/27 18:32
C++を拡張してるからね。まぁC++が貧弱だから仕方ないのだが。

311 :デフォルトの名無しさん:03/02/27 18:36
準拠度の問題だ。

312 :デフォルトの名無しさん:03/02/27 18:38
へぇ〜。C++として見れないほど準拠してないんだぁ。知らなかったねぇ〜。

313 :デフォルトの名無しさん:03/02/27 18:40
ああ、ラーメン食いたいなあ。

314 :デフォルトの名無しさん:03/02/27 18:41
俺はカレー食いたいねぇ。

315 :デフォルトの名無しさん:03/02/27 18:46
>>314
関係ない事言って誤魔化し始めたね(藁

316 :デフォルトの名無しさん:03/02/27 18:54
>>315
それは>>313だろ。

317 :デフォルトの名無しさん:03/02/27 18:57
えへへ、ばれたか!

318 :デフォルトの名無しさん:03/02/27 18:59
>>317>>316
自作自演でつか(藁

319 :デフォルトの名無しさん:03/02/27 18:59
#define MACRO 1

エラーになるんだけど(;_;)

320 :ansy_c F and Q:03/02/27 18:59
void (*hoge)();

extern void hoge1();
extern void hoge2();

void a_source_main()
{
  if(type == 1)
    hoge = hoge1;
  else
    hoge = hoge2;
}

このとき、hoge1,hoge2を分割して取り込みコンパイルさせることは
かのうか?

321 :デフォルトの名無しさん:03/02/27 19:01
>>320
宿題は自分でやれ

322 :デフォルトの名無しさん:03/02/27 19:01
>>320
もちろん。
あとexternは書くな。

323 :デフォルトの名無しさん:03/02/27 19:02
>>320
F & Qってなんだ?

それはさておき、取り込みコンパイルってなんだ?
別ファイルにあるhoge1やらhoge2を利用すること自体は普通は問題なくできるぞ。

324 :デフォルトの名無しさん:03/02/27 19:02
>>318
> >>317>>316
> 自作自演でつか(藁
違いますよ。

325 :デフォルトの名無しさん:03/02/27 19:02
FAQ?

326 :FAQ YOU!:03/02/27 19:04
FAQって何の略?


327 :デフォルトの名無しさん:03/02/27 19:05
>>326
Fast And Quick

328 :デフォルトの名無しさん:03/02/27 19:07
なんでansyに突っ込まないんだ?

329 :デフォルトの名無しさん:03/02/27 19:08
>>327
じゃあ、F and Q でいいじゃん。あんたら馬鹿?

330 :デフォルトの名無しさん:03/02/27 19:08
>>328
彼の名前かとおもってたよ

331 :デフォルトの名無しさん:03/02/27 19:10
>>330
アンシーといったら彼女でしょう。

332 :デフォルトの名無しさん:03/02/27 19:10
>>329
よくない。fuck youという発音がFAQには隠れているのだ。
隠れてねえか。

333 :320:03/02/27 19:13
まちがった。

いや、じつは
hoge1,hoge2をそれぞれ別の.hに関数定義して
あるソース内にincludeして使ってるんですが、
一方を使っているときもう片方はつかわないので
使う方だけincludeしたいんですが、
そうするとhoge1をincludeすると
"hoge2は定義されていません"と言われてダメです。

でぐるぐると.hめぐりをしたあげくに結局両方includeしました。
カコワルイデス。

やり方間違ってるんでしょうか?

334 :デフォルトの名無しさん:03/02/27 19:13
釣られてみよう。
Frequently asked questions.

335 :デフォルトの名無しさん:03/02/27 19:14
>>333
インクルードファイルで関数定義する段階で駄目駄目。

336 :デフォルトの名無しさん:03/02/27 19:15
>でぐるぐると.hめぐりをしたあげくに結局両方includeしました。
わーすげー。兵だ。

337 :デフォルトの名無しさん:03/02/27 19:18
ほら、だれか親切に答えてやれ

338 :デフォルトの名無しさん:03/02/27 19:21
--hoge1.c
#include "hoge.h"
void hoge1(void)
{
}
--hoge2.c
#include "hoge.h"
void hoge2(void)
{
}
--hoge.h
#ifndef HOGE_H
#define HOGE_H
void hoge1(void);
void hoge2(void);
typedef void(*hogeFunc_t)(void);
#endif


339 :デフォルトの名無しさん:03/02/27 19:21
--hoge.c
#include "hoge.h"

void a_source_main()
{
  hogeFunc_t hoge;

  if(type == 1) {
    hoge = hoge1;
  } else {
    hoge = hoge2;
  }
  hoge();
}


340 :デフォルトの名無しさん:03/02/27 19:24
>>338-339
すいません。それ二つあるのにどうやってコンパイルすればいいんですか?

341 :340:03/02/27 19:25
二つじゃなかった。.cのファイルが三つあるのにどうやってコンパイルすればいいんですか?

342 :デフォルトの名無しさん:03/02/27 19:27
ほら、だれか親切に答えてやれ

343 :デフォルトの名無しさん:03/02/27 19:27
>>341
環境は?

344 :デフォルトの名無しさん:03/02/27 19:30
環境ってどれですか? CLASSPATHですか?

345 :デフォルトの名無しさん:03/02/27 19:30
>>341
gccならば、

gcc -o hoge hoge1.c hoge2.c hoge.c

ふつー、Makefileかくけどな。

346 :デフォルトの名無しさん:03/02/27 19:31
そのMakefileってのを教えてください。

347 :デフォルトの名無しさん:03/02/27 19:34
一番素朴なやつは

hoge: hoge.o hoge1.o hoge2.o
 gcc -o hoge hoge.o hoge1.o hoge2.o

hoge1.o: hoge1.c hoge.h
 gcc -c hoge1.c

hoge2.o: hoge2.c hoge.h
 gcc -c hoge2.c

hoge.o: hoge.c hoge.h
 gcc -c hoge.c

まーあとはぐーぐる先生にきいてみてくれや。

348 :デフォルトの名無しさん:03/02/27 19:35
ほら、だれか親切に答えてやれ

349 :デフォルトの名無しさん:03/02/27 19:38
ところで>>320はどこいったんだろうねぇ。代理疲れた。

350 :デフォルトの名無しさん:03/02/27 19:38
--Makefile
TARGET=hoge
SOURCES=hoge.c hoge1.c hoge2.c
INCLUDES=hoge.h

OBJS=$(SOURCES:%.c=%.o)
$(TARGET): $(OBJS) $(INCLUDES)
 $(CC) -o $(TARGET) $(OBJS) $(LDFLAGS)
.c.o:
 $(CC) -c $(CFLAGS) $*.c

351 :320:03/02/27 19:38
またまたまちがえました。

いや、mainのソース内にhoge1とhoge2と書くと
両方そのmain内ですでに定義されてないとエラーがでますよね?

なので(*hoge)にそのソース内でhoge1,hoge2を代入しないで
つかえるようにとりこむほうほうはないのかな?とおもたのですが、
あんまり意味ないですね。


352 :デフォルトの名無しさん:03/02/27 19:44
>>351
なんのためにプロトタイプ宣言があると思っているんだ。


型チェックを厳密にするためだけどさ・・・

353 :デフォルトの名無しさん:03/02/27 19:44
>>351
コンパイル時にどっちの関数を使うか決めたいってことなのかな。
もしそうだとしたら、定石は条件コンパイルだな。

#ifdef HOGE
void hoge() {
 /* hoge1なことをする */
}
#else
void hoge() {
 /* hoge2なことをする */
}
#endif

int main() {

てな感じかなgccでいうと、gcc -DHOGE hoge.cってやればhoge1な方が、
gcc hoge.cってやればhoge2な方がコンパイルされる。


354 :デフォルトの名無しさん:03/02/27 19:54
>>320
悪いことは言わん。
日本語の勉強からやりなおせ。

355 :デフォルトの名無しさん:03/02/27 20:01
日本語って難しい

356 :デフォルトの名無しさん:03/02/27 20:01
俺の代理全く役に立たなかったな。せっかく煽ってMakefileまで書かせたのに。

357 :デフォルトの名無しさん:03/02/27 20:05
>>356
むぅ、書きたい衝動はおまえの所為だったのか。

358 :320:03/02/27 20:35
>>353
なるほど、さんくすこです。

ちなみにF and Qは Finish and Quackの頭文字をとった略です。


359 :デフォルトの名無しさん:03/02/27 20:57
>>335
SLS(ソースレベル・リンク・システム)


360 :デフォルトの名無しさん:03/02/27 21:16
ところでCでリアルタイム株価チャートを作成できるか?



361 :デフォルトの名無しさん:03/02/27 21:18
>>360
標準ライブラリにあるだろ。いちいち質問するな。

362 :デフォルトの名無しさん:03/02/27 21:20
CでVBアプリ書けるか?

363 :デフォルトの名無しさん:03/02/27 21:20
>>361
ネタですか? つまらないですね。

364 :デフォルトの名無しさん:03/02/27 21:22
>>362
かけるよ。

365 :362:03/02/27 21:28
>>364
書けるわけねーだろ。アフォ?

366 :デフォルトの名無しさん:03/02/27 21:31
>>362
まずはVBアプリの定義を

367 :デフォルトの名無しさん:03/02/27 21:32
C++でリアルタイム株価チャートを作成できるか?


368 :デフォルトの名無しさん:03/02/27 21:33
ところでC++でリアルタイム株価チャートを作成できるか?

369 :デフォルトの名無しさん:03/02/27 21:33
>>367
スレ違いです。

370 :デフォルトの名無しさん:03/02/27 21:34
はたしてでC++でリアルタイム株価チャートを作成できるか?

371 :デフォルトの名無しさん:03/02/27 21:35
しかもC++でリアルタイム株価チャートを作成できるか?

372 :デフォルトの名無しさん:03/02/27 21:35
ところでC++でリアルタイム株価チャートを作成できるか?




373 :デフォルトの名無しさん:03/02/27 21:35
今日は荒らしが発生している模様

374 :デフォルトの名無しさん:03/02/27 21:35
さらにC++でリアルタイム株価チャートを作成できるか?

375 :デフォルトの名無しさん:03/02/27 21:37
ところでJavaでリアルタイム株価チャートを作成できるか?

376 :デフォルトの名無しさん:03/02/27 21:37
ところでC#でリアルタイム株価チャートを作成できるか?


377 :デフォルトの名無しさん:03/02/27 21:39
・VBそのものをCで作る。
・Cで書いたエディタでVBアプリを書く。
等の方法が考えられます。

378 :デフォルトの名無しさん:03/02/27 21:42
おまえらリアルタイム株価チャートって言いたいだけちゃうん(略

379 :デフォルトの名無しさん:03/02/27 21:47
ところで脳内ではリアルタイム株価チャートをもてあそべるか?

380 :デフォルトの名無しさん:03/02/27 21:51
俺思うにHPのシステムが最強だと思うんだよね。何となく。

381 :デフォルトの名無しさん:03/02/27 22:45
y
|
|
|
|
|0______________________>x

C言語のウィンドウの座標ってこれでいいんだっけ?
______________________________>x
0
|
|
|
|
|
|
|
y

それともこっちですか?

382 :デフォルトの名無しさん:03/02/27 22:50
>>381
>C言語のウィンドウの座標
ネタですか?

383 :デフォルトの名無しさん:03/02/27 22:53
ねたじゃなくて、本当に知りたいんです。
教えてくださればすぐに消えますが、なにか?

384 :デフォルトの名無しさん:03/02/27 22:58
bit単位ですか?文字単位ですか?

385 :デフォルトの名無しさん:03/02/27 23:05
Cにウィンドウの概念はありません。

と、釣られてみる。

386 :デフォルトの名無しさん:03/02/27 23:42
>>381
処理系依存

そんなことよりお前ら
hoge(x, y)
hoge(y, x)
どっちで書くよ?

387 :デフォルトの名無しさん:03/02/27 23:45
>>386
一般常識として、hoge(x,y)。

388 :デフォルトの名無しさん:03/02/27 23:45
ブロック内で char *p = "hoge"; として出来た
"hoge"は何処で消える? ブロックを抜けても残るのか?

389 :デフォルトの名無しさん:03/02/27 23:47
>>386
hoge(x, y)
でいいかなーと思ってたら、
hoge(y, x)のほうが後々分かりやすかったってことがありました。

書いたプログラムが悪いんだろうけど

390 :デフォルトの名無しさん:03/02/27 23:50
>>388
残る。

391 :デフォルトの名無しさん:03/02/27 23:51
>>388
プログラム本体にずっと入ってるんじゃないか?

392 :デフォルトの名無しさん:03/02/27 23:54
"hoge"じたい変数じゃないだろうに。


393 :デフォルトの名無しさん:03/02/27 23:56
#define x xx
#define y x
#define xx y

394 :388:03/02/27 23:58
なるほど、理解できました。じゃあ
const char sz[] = "hoge"; の方は変数に入っているので
消えるってことか

395 :デフォルトの名無しさん:03/02/28 00:08
>>388
「変数かどうか」が問題じゃなく記憶クラスの問題だ。



396 :デフォルトの名無しさん:03/02/28 00:15
>>394
プログラム本体にずっと入ってるんじゃないか?


397 :kisuke:03/02/28 00:18
lintのえらー番号の意味はどこ見ればわかりますですか?
hpuxだと番号しか出んのでさっぱりですわ。

398 :デフォルトの名無しさん:03/02/28 00:44
>>394 消えるって意味が良くわからんが
メモリーは開放されるんじゃない?

399 :デフォルトの名無しさん:03/02/28 01:03
>>394
ブロックから抜けると配列szは消える。
が、文字列"hoge"そのものはどっかにのこってる。

で、またブロックに入ると、sz分の領域が取られて、
どっかに残ってた"hoge"がコピーされる。

400 :デフォルトの名無しさん:03/02/28 01:13
コンパイル時に const char sz[] = {'h', 'o', 'g', 'e', '\0'};
と等価に扱われるのだと思ってた。

401 :デフォルトの名無しさん:03/02/28 01:15
>>400
無論そのコードと等価だが、その初期化はどのようにやる?

auto記憶クラスである限り、ブロックに入るたびに初期化せねばならん。
だから、"hoge"はどっかに保存しておかなければならない。

402 :デフォルトの名無しさん:03/02/28 01:17
>>400
いやどこかに "hoge" の領域を取らなくてもコンパイル時に
const char sz[] = {'h', 'o', 'g', 'e', '\0'};
と書いた場合と同じコードを生成すればいいのではないかと。


403 :402:03/02/28 01:17
>>400>>401

404 :デフォルトの名無しさん:03/02/28 01:23
>>402
あー、そのことも念頭に一応置いておいたんだけど。
その辺はコンパイラの実装次第かな。
最適化オプションでも変わってきそうなところではある。

405 :デフォルトの名無しさん:03/02/28 01:49
strdup()でもつかっとけ

406 :デフォルトの名無しさん:03/02/28 08:28
ところでC++でリアルタイム株価チャートを作成できるか?



407 :デフォルトの名無しさん:03/02/28 08:31
荒らしが起きてきました(w

408 :デフォルトの名無しさん:03/02/28 08:40
ところでJavaでリアルタイム株価チャートを作成できるか?


409 :デフォルトの名無しさん:03/02/28 08:45
>>406
つまらん。5点。

>>408
二番煎じ。2点。

はい、次〜。

410 :デフォルトの名無しさん:03/02/28 08:46
こんなさびれたスレ荒らしてもねぇ

411 :デフォルトの名無しさん:03/02/28 08:46
ところでVBでリアルタイム株価チャートを作成できるか?

412 :デフォルトの名無しさん:03/02/28 08:52
できないよね。

413 :デフォルトの名無しさん:03/02/28 08:54
株価チャートのコピペ昨日からあるが
全部見てたら何厨の仕業か分かった。

414 :デフォルトの名無しさん:03/02/28 08:59


ま た r  u  b  y  厨  か  

415 :デフォルトの名無しさん:03/02/28 11:20
すんません チョット質問
リアルタイムにログ等をファイルに記憶していく場合
どのタイミングで処理します?
1.毎回 fopen - fwrite - fcloseを繰り返す
2.メモリに展開→終了時書き込む
Win等のWM_DESTROYで書き込む

2の場合 ファイルが正常にかけない時があるのですが
標準的なやり方ってどれですか?


416 :デフォルトの名無しさん:03/02/28 11:48
void f(int);
int main(){ f(1); }
void f(const int a){}

↑このソースでエラーがでるコンパイラは
バグってると診てよろしいかな?

417 :デフォルトの名無しさん:03/02/28 11:49
>>415
fopen - fwrite - fflush
じゃねーの?

418 :417:03/02/28 11:51
おっと、
fopen - [ fwrite - fflush ]* - fclose
こんなかんじ。(*は、0回以上の繰り返し)

419 :デフォルトの名無しさん:03/02/28 12:06
>>416
ansi準拠じゃないなら仕様次第かと。
考えられるポイント。
・constに対応していない
・新しい呼び出し形式(const int a)に対応していない
・特殊なmain()が必要、或いはエントリがmain()ではない

420 :デフォルトの名無しさん:03/02/28 12:17
>>417
ファイルを開きっぱなしでいいならいいが、
そうでないならfopen - fwrite - fcloseのほうがいいんでない?
どっちみち速度が問題になるならopen - write - closeだろうし。

421 :デフォルトの名無しさん:03/02/28 12:41
うちんとこでは、関連アプリがログファイル共有しとるぞ。
だから毎度毎度の開け胡麻

422 :デフォルトの名無しさん:03/02/28 12:44
fp = popen("ログ処理プロセス", "w");
fputs("エラーだよん\n", fp);
pclose(fp);

423 :415:03/02/28 13:08
毎回 fcloseしてると速度問題にならない?


424 :デフォルトの名無しさん:03/02/28 13:10
>>415
>>420は読んだ?

425 :デフォルトの名無しさん:03/02/28 13:37
>>415
3.ログ出力専用プロセスにプロセス間通信する
4.ちゃんとシグナルをトラップするようにする

426 :デフォルトの名無しさん:03/02/28 13:39
本当に初心者です。当てはまるスレがなかったのでここに書きます。
下記のようなプログラムを書いたのですがコンパイルできないんです。どうすればよいでしょうか?
聞くのも恥ずかしい。

#include <stdio.h>

main()
{

    printf("This is a test!");

}


427 :デフォルトの名無しさん:03/02/28 13:42
>>426
コンパイルできない、とは?

428 :デフォルトの名無しさん:03/02/28 13:44
>>426
>    printf("This is a test!");
全角スペースが入ってる。

429 :デフォルトの名無しさん:03/02/28 13:52
>>427
コンパイルが実行できないのです。
>>428
直したけどなりませんでした・・・

430 :デフォルトの名無しさん:03/02/28 13:57
>>429
コンパイラを実行することができないのか、コンパイラがエラーを出すのか。
先に書いとくが、エラーが出たらエラーメッセージくらい出さないと誰もわかるわけないでしょう?

431 :デフォルトの名無しさん:03/02/28 13:57
>>426
釣りか?
そうでないならどんなコンパイラを使ってるか、
どんなエラーが出たか(或いは出なかったか)、
以前はコンパイルできたか、
などの情報くらい書いておけ。
それから、「本当に初心者」なんて断る必要はない。

432 :426:03/02/28 14:07
使用してるコンパイラーはこれです。
http://www.vector.co.jp/soft/dl/win95/prog/se147598.html
コンパイラの設定しなおしてもういっかい試してみます。


433 :デフォルトの名無しさん:03/02/28 14:14
HPAT

434 :426:03/02/28 14:15
一応エラーの内容書いておきます

Phoebe

Phoebe が原因でKERNEL32.DLLにエラーが発生しました。
Phoebeは終了します。

問題が解決しない場合は、コンピュータを再起動してください。

435 :デフォルトの名無しさん:03/02/28 14:16
>>434
他 の コ ン パ イ ラ 使 え 。

436 :デフォルトの名無しさん:03/02/28 14:21
C Machineはやめておいた方がいいよ(^_^;)

437 :デフォルトの名無しさん:03/02/28 14:24
>>426
作者が一年以上ほったらかしでできもよくない。
私からもそんなコンパイラ使うなと言っておこう。

438 :デフォルトの名無しさん:03/02/28 14:29
びいしいしいにしておけ

439 :デフォルトの名無しさん:03/02/28 14:30
Visual C++を買えよ(・∀・)ニヤニヤ

440 :デフォルトの名無しさん:03/02/28 14:31
英語でいいなら OpenWatcom を薦める。

441 :426:03/02/28 14:34
ううん・・・・
無料で良いコンパイラないですかねぇ
Vectorか窓の杜で探してるのですがどれを使えばいいか・・・

442 :デフォルトの名無しさん:03/02/28 14:35
>>441
>>2

443 :デフォルトの名無しさん:03/02/28 14:36
>441
>>2

444 :426:03/02/28 14:36
>>442
おお。ありがとうございます!感謝!

445 :デフォルトの名無しさん:03/02/28 14:37
ケコーン!(・∀・)

446 :名無しさん@vim:03/02/28 14:38
>>444
>>2の中のhttp://www.borland.co.jp/cppbuilder/freecompiler/が一番導入しやすいだろうな。

447 :デフォルトの名無しさん:03/02/28 14:40
びいしいしいにしておけ


448 :426:03/02/28 14:44
>>447
助言どうりBCCにしました。完了したらまた1から試してみます。

449 :デフォルトの名無しさん:03/02/28 14:44
ついでにしいぴいぴいに飛んで逝け!

450 :302:03/02/28 15:45
無視ですか?

451 :デフォルトの名無しさん:03/02/28 15:47
よく見ろ禿

452 :302:03/02/28 16:31
無視ですか?

453 :デフォルトの名無しさん:03/02/28 17:17
strtolの第三引数(基数)に1および2〜36以外の値を渡した場合、規格では第二引数にどんなものが設定されると決められているんでしょうか。

454 :426:03/02/28 17:55
>>426
の続きです。
無事コンパイルできました。
そしたらコンバートテキストファイルと出るのですが、これはどう設定すればいいですか?
使用コンパイラ>BCC

455 :デフォルトの名無しさん:03/02/28 17:57
  ∧_∧
 ( ´∀`)< ぬるぽ

456 :デフォルトの名無しさん:03/02/28 18:04
ドサクサニマギレヨウッタッテソウハイカナイカラナ
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/
 (_フ彡        /  ←>>455

457 :デフォルトの名無しさん:03/02/28 18:06
>>453
0 については記述がある。
第 1 引数の先頭が "0" であれば 8 進数、"0x" または "0X" であれば 16 進数
として解釈される。

0 および 2 〜 36 以外については記述が無い。

458 :デフォルトの名無しさん:03/02/28 18:40
>>457
やっぱり規格にも書かれていないんですね。じゃあ何してもいいんですね。
ありがとうございました。

459 :453&458:03/02/28 18:41
よく見たら「1および」と書いていましたね・・・「0および」の間違いです。。

460 :デフォルトの名無しさん:03/02/28 21:51
ageておこう。

461 :デフォルトの名無しさん:03/02/28 21:56
特定のディレクトリにあるすべてのファイルの名前や使用メモリを調べる方法を教えてください。

462 :デフォルトの名無しさん:03/02/28 21:57
>>461
うっせーよ。ぼけ。

463 :デフォルトの名無しさん:03/02/28 21:57
>>461
strstrで。

464 :デフォルトの名無しさん:03/02/28 21:58
>>461
opendir()/readdir()/closedir()
stat()

465 :デフォルトの名無しさん:03/02/28 21:58
>>461
C言語では無理です。

466 :デフォルトの名無しさん:03/02/28 21:59
>>465
それは間違いだな

467 :461:03/02/28 22:01
>>462-466
釣れました(w

468 :デフォルトの名無しさん:03/02/28 22:03
あははぁつられちゃったぁ(///▽///)

469 :デフォルトの名無しさん:03/02/28 22:05
これが新パターン「poor fishing pattern」か。

470 :デフォルトの名無しさん:03/02/28 22:08
俺のサオがッ・・・

471 :デフォルトの名無しさん:03/02/28 22:09
特定の2ch掲示板にいるすべてのDQNの名前や使用帯域を調べる方法を教えてください。

472 :デフォルトの名無しさん:03/02/28 22:11
色々試行錯誤していたらひとつの関数が57行になっちゃった(;_;)

473 :デフォルトの名無しさん:03/02/28 22:11
>>471
Rubyなら可能

474 :デフォルトの名無しさん:03/02/28 22:12
そして糞コードが動き出す・・・

475 :デフォルトの名無しさん:03/02/28 22:13
しかも5重ネストif(;_;)

476 :デフォルトの名無しさん:03/02/28 22:13
DIE
   ANOTHER
           DAY

477 :デフォルトの名無しさん:03/02/28 22:14
>>472
そんなお前でも何時かはオブジェクト至高を学ばなくてはならない。

478 :デフォルトの名無しさん:03/02/28 22:43
↓釣りはよそで。

479 :デフォルトの名無しさん:03/02/28 23:23
オブジェクト嗜好の間違いだろ?

480 :デフォルトの名無しさん:03/02/28 23:44
歯垢

481 :デフォルトの名無しさん:03/02/28 23:46
恥垢

482 :デフォルトの名無しさん:03/03/01 00:06
オブジェクトシッコ、略してオシッコ

483 :デフォルトの名無しさん:03/03/01 00:33
お前ら、必死と書いて必ず死ぬな。

484 :デフォルトの名無しさん:03/03/01 02:00
命令形?

485 :デフォルトの名無しさん:03/03/01 02:16
>>459
違っ(ry

>>476
別の日に死ねよ?

486 :デフォルトの名無しさん:03/03/01 05:12
486の中の人も大変だな。

487 :デフォルトの名無しさん:03/03/01 06:05
Hey you.
Write 'Desperate',
Must never die.

488 :デフォルトの名無しさん:03/03/01 06:26
>>486
ペンティアムの中の人はもっと大変だぞ!


489 :デフォルトの名無しさん:03/03/01 07:45
>>488
フライング良くない
ちゃんと、586になるまで待つのが…

490 :デフォルトの名無しさん:03/03/01 10:11
教えてください

キーボードから入力した文字列をビットを全て反転させてキーボードに出力するプログラム。
難しいでしょうか?


491 :デフォルトの名無しさん:03/03/01 10:17
ascU文字からascUコードに変換
ascUコードから2進数に変換
ビットをそれぞれ反転
キーボードに出力だが、←これは難しいと言うより無理だろ

492 :デフォルトの名無しさん:03/03/01 10:18
>>490
あなたのキーボードに電光掲示板風に文字を表示するインタフェースでも
付いているのなら可能です。

493 :デフォルトの名無しさん:03/03/01 10:24
トラ技の広告で昔、表面に液晶を搭載したキースイッチがあったのを思い出した。

494 :デフォルトの名無しさん:03/03/01 10:42
int main(){
 int c;
 while((c=getc(stdin)) != EOF)
  putc(c^0xff, stdin);
 return 0;
}

これでいいですか?

495 :デフォルトの名無しさん:03/03/01 10:50
>>494
キーボードに出力して・・・
どんな結果が望みなんだろう

496 :デフォルトの名無しさん:03/03/01 11:02
なんかいま書き込み消えなかった?


497 :デフォルトの名無しさん:03/03/01 12:11
きっとあれだ
シリアルつないでロボットを制御してキーボードを叩かせるんだよ

498 :デフォルトの名無しさん:03/03/01 12:16
int main(int argc, char **argv)
{
srand(argc);
return (int(*(int,char**)))(rand())(argc,argv);
}

コンパイラ通りますか?


499 :デフォルトの名無しさん:03/03/01 12:29
エラー ) が必要(関数 main(int,char * *) )

500 :デフォルトの名無しさん:03/03/01 12:40
>>498
キモイコード書くなヨ。

501 :デフォルトの名無しさん:03/03/01 12:54
>>490-492 ワラタ

502 :デフォルトの名無しさん:03/03/01 13:19
多分タイピング練習用のキーが光るキーボードのことだろ。

503 :デフォルトの名無しさん:03/03/01 13:42
C言語はプログラマの最低限のたしなみですか?

504 :デフォルトの名無しさん:03/03/01 13:51
No.

505 :デフォルトの名無しさん:03/03/01 16:27
C言語が読めないと無料で良質なソースを読むという
貧乏プログラマの常套手段が使えないですよ?
ポインタ論争もC使いじゃないとわからない(Cしか使ってない奴はなおわからない)
部分があるので楽しめないし

506 :デフォルトの名無しさん:03/03/01 16:39
>505


507 :デフォルトの名無しさん:03/03/01 16:55
ポインタ論争、つまらなさそうな論争だ。

508 :デフォルトの名無しさん:03/03/01 17:25
>>507
うんざりするほど 2ch も含めて同じ論争を繰り返すので、
歴史を知っていれば巻き込まれずに済む。

509 :デフォルトの名無しさん:03/03/01 17:39
じゃあ始めようか。
まずはNULLポインタから。

510 :デフォルトの名無しさん:03/03/01 17:40
NULLって0だよね?

511 :デフォルトの名無しさん:03/03/01 17:40
return 0;

512 :デフォルトの名無しさん:03/03/01 17:42
return (int)NULL;

513 :デフォルトの名無しさん:03/03/01 17:57
  ∧_∧
 ( ´∀`)< ぬるぽ

514 :デフォルトの名無しさん:03/03/01 17:59
strtoulって数字列の前に'-'があってもいいんだな。誰だこんな仕様にしたやつは。


515 :デフォルトの名無しさん:03/03/01 18:15
オマエカクシンハンダナ
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/
 (_フ彡        /  ←>>513

516 :デフォルトの名無しさん:03/03/01 18:24
Delphiのnilも0なの?

517 :デフォルトの名無しさん:03/03/01 18:44
>>516
どうしてそれをここで訊く?

518 :デフォルトの名無しさん:03/03/01 18:55
typedef int (*hoge)(FILE *) hogege;

void func()
{
 hogege geho = fgetc;

 i = geho(stdin); //1
 i = *geho(stdin);//2
}

どっちが正しいの?


519 :デフォルトの名無しさん:03/03/01 18:57
>>518
iの宣言はどこにあるの?

520 :デフォルトの名無しさん:03/03/01 18:59
1!

521 :デフォルトの名無しさん:03/03/01 19:04
厳密には2が正しいが、普通は1で書く。


522 :デフォルトの名無しさん:03/03/01 19:08
ファンクタ最強伝説

523 :デフォルトの名無しさん:03/03/01 19:09
>>518
typedef int (*hogege)(FILE *);
じゃなくって?
あと、2はエラーにならないか?
geho(stdin);
(*geho)(stdin);
(******************************geho)(stdin);
どれも同じ

524 :デフォルトの名無しさん:03/03/01 19:11
結論:関数ポインタはキモイ

525 :デフォルトの名無しさん:03/03/01 19:12
>>518
2は以下と同値だ

i = *(geho(stdin));

geho(stdin)はintを返してくるので、intでデリファレンスしようとしてる。
だからコンパイルを通らず正しくない。

おそらく

i = (*geho)(stdin);

と書きたかったんだろうけど。この場合は正しい。

# iの定義がないというのはおいとく。


526 :デフォルトの名無しさん:03/03/01 19:13
>>523
あ。そうか。typedefも間違ってるか。


527 :デフォルトの名無しさん:03/03/01 19:15
>>524
宣言はきもいな。とても有用だけど。

528 :デフォルトの名無しさん:03/03/01 22:38
>>518
//2は*(geho(stdin))とみなされるのでエラー。
書くなら (*geho)(stdin) だろ。

529 :デフォルトの名無しさん:03/03/01 22:39
スマソ更新してなかったから二重みたいな書き込みになった。

530 :デフォルトの名無しさん:03/03/02 05:00
Visual C++というソフトでC言語を使う方法はないんでしょうか?

531 :デフォルトの名無しさん:03/03/02 05:39
ないよ

532 :デフォルトの名無しさん:03/03/02 06:07
>>530
拡張子を".c"にすればよい。

533 :ageman ◆ddPLxqLXUQ :03/03/02 08:04
Good morning age!

534 :デフォルトの名無しさん:03/03/02 12:49
#pragma code_seg("INIT")ってどういう意味ですか


535 :デフォルトの名無しさん:03/03/02 12:56
Visual 「C++」 なんだから、Cコンパイラの機能は消しても差し支えないと思うんだ。

536 :デフォルトの名無しさん:03/03/02 12:58
「Visual」 C++なんだから、見えないものは消しても差し支えないと思うんだ。

537 :デフォルトの名無しさん:03/03/02 12:59
>>534
#pragmaは処理系依存の命令を与えるもの

538 :デフォルトの名無しさん:03/03/02 13:12
#include <stdio.h>

int main()
{
 int (*func)(const char *, ...);

 func = printf;
 if((func) == (*func)){
  func("もしかして、");
  (*func)("同じなの?");
 }
 return 0;
}

539 :デフォルトの名無しさん:03/03/02 13:13
>>538
それについてはきもいという結論が出ている。

540 :デフォルトの名無しさん:03/03/02 13:14
>>538
#include <stdio.h>
int main()
{
(*printf)("これも同じ");
return 0;
}

関数名は書き換えられない関数ポインタみたいなものだと思っているんだけどどうだろう。

541 :デフォルトの名無しさん:03/03/02 13:16
>>538
if((func) == (*func))

ポインタとそれが参照するものが同じってことはないだろ?
ちょっとテストしてみよう。

542 :デフォルトの名無しさん:03/03/02 13:18
K&R読めよそろそろ

543 :541:03/03/02 13:18
同じだった(^_^;)

544 :デフォルトの名無しさん:03/03/02 13:20
見ろ!人がゴミのようだ!はははっ!

545 :デフォルトの名無しさん:03/03/02 13:44
#include <stdio.h>

int main()
{
 int (*func1)(const char *, ...);
 int (func2)(const char *, ...);

 func1 = func2 =printf;
 func1("じゃあ、これも");
 func2("正しいってこと?");
 return 0;
}

546 :デフォルトの名無しさん:03/03/02 14:27
>>545
まあ、いいんじゃない?


547 :デフォルトの名無しさん:03/03/02 14:49
>>545
func2は関数なので代入できない

548 :デフォルトの名無しさん:03/03/02 18:26
文字列の代入ってどうやるの?
=を使ったらダメだって言われたんだけど(´Д`;)

549 :デフォルトの名無しさん:03/03/02 18:36
strcpy

オレもCビギナーなんだけど
どこかイイ練習問題のってるサイトないかな

550 :デフォルトの名無しさん:03/03/02 18:45
>>549
http://pc2.2ch.net/test/read.cgi/tech/1045074808/
このスレ

551 :デフォルトの名無しさん:03/03/02 19:48
関数内でtypedefするとその型のスコープは関数内に限られるのか。
関数内でtypedefを使うなんて考えたこともなかったが。

552 :デフォルトの名無しさん:03/03/02 19:59
甘い甘い。チッチッチ

553 :デフォルトの名無しさん:03/03/02 20:40
お前は関数内では二番目だ。

554 :デフォルトの名無しさん:03/03/02 21:34
>>551
typedef が static やら volatile やらと同じ文法で使うキーワードだって
知らないのか。

555 :デフォルトの名無しさん:03/03/02 21:42
規格ではint main(void)かint main(int argc,char *argv[])しかないようで
すが、本によってはvoid main(void)というのがありますがどうしてでしょう?
またC++ではvoid main(void)はOKなんですかね?

556 :デフォルトの名無しさん:03/03/02 21:45
>>555
その本がクズだから。
C++ でも規格では NG。

557 :555:03/03/02 21:47
>>556
ありがとうございました。

558 :デフォルトの名無しさん:03/03/03 01:14
#include <stdio.h>

char str[]={
  0x20,0xa1,0x69,0x36,0x69,0x36,0xb7,0x7f,
  0x75,0x5d,0x7d,0xfc,0xb0,0x31,0xfc,0x7d,
  0x30,0x19,0x39,0xb8,0x3b,0xba,0xfa,0x78,
  0xb2,0x30,0xd9,0x5b,0x80,0x80};
char *unc (char *s)
{
  char c=*s^*(s+1);
  if(c)unc(s+1);
  *(s+1)^=*s;
  return s;
}
int main(void)
{
  printf("%s\n", unc(str));
  return 0;
}

bccでコンパイ

559 :デフォルトの名無しさん:03/03/03 01:16
なんでstrがグローバルなの?

560 :デフォルトの名無しさん:03/03/03 01:23
>>559
NULLと等価だから

561 :デフォルトの名無しさん:03/03/03 01:34
どうやったらできるようになるんですか?買わなきゃいけないんですか?

562 :デフォルトの名無しさん:03/03/03 01:36
何が?

563 :デフォルトの名無しさん:03/03/03 01:38
C言語です

564 :デフォルトの名無しさん:03/03/03 01:41
いまどき?

565 :デフォルトの名無しさん:03/03/03 01:43
世界はまわる。輪廻転生です。
ここで怒ったらイスラムvsキリストになってしまします。

566 :デフォルトの名無しさん:03/03/03 01:49
ゴロゴ13

567 :デフォルトの名無しさん:03/03/03 01:56
>>561
とりあえず日本語の勉強してから出直してこい、としか言えないね┐(´ー`)┌ヤレヤレ

568 :デフォルトの名無しさん:03/03/03 02:00
うん

569 :デフォルトの名無しさん:03/03/03 02:05
フリーのコンパイラをダウンロードしる。

570 :デフォルトの名無しさん:03/03/03 06:26
>>569
通報されませんか?

571 :デフォルトの名無しさん:03/03/03 06:31
>>570
フリーの意味を間違えてないかい?

コンパイラのダウンロードサイト
http://pc2.2ch.net/test/read.cgi/gamedev/1005038080/

572 :デフォルトの名無しさん:03/03/03 06:40
VC7runtimeてどこに落ちてるですか。。探しつかれたよママン。

まだ出てない(;´д`)?

573 :572:03/03/03 10:21
自己解決しますた。なるほどね・・・。

574 :デフォルトの名無しさん:03/03/03 10:28
質問したら解決しましただけじゃなくてどう解決したのか書こうや。
過去ログになって誰かが読んだときに参考になるだろうし
このままだとただのゴミ書き込みで終わるぞ。

575 :デフォルトの名無しさん:03/03/03 10:33
課題でプログラムを作成し、実行速度を測れっていうのが出て、
プログラムはできたのですが、実行速度が測れません。
UNIXのtimeコマンドみたいなことがWinで出来ませんか?

576 :デフォルトの名無しさん:03/03/03 10:42
>575
Cで書いたコマンドラインものなら、プログラムの最初と最後でclock()呼び出して
差を取り、経過CPU時間を計るとかで、どうですか?

577 :デフォルトの名無しさん:03/03/03 10:59
>>576
すいません。そこまでの技術が無いんです…

578 :デフォルトの名無しさん:03/03/03 11:04
>>576
UNIX系と窓ではclock()の挙動が違う罠。
前者は占有CPU時間、後者は実時間。

579 :デフォルトの名無しさん:03/03/03 11:37
>578
Σ(゚Д゚lll)ガーン、マジカヨ
じゃあ、なんだGetProcessTimesとかGetTickCountとか使ってください。>575
それがダメなら、あれだ、ストップウォッチだな。
オレに思いつくのはそのくらいで砂。

580 :デフォルトの名無しさん:03/03/03 11:58
プログラムの中に処理を入れるんじゃなくて、timeコマンドみたい測りたいんですが…
Winではできないで消化?

581 :575:03/03/03 11:59
>>580
575です。すいません。

582 :デフォルトの名無しさん:03/03/03 12:27
timeコマンドもどきを作るしか。

583 :デフォルトの名無しさん:03/03/03 12:34
プロファイラ使えば細かく計れるVO

584 :デフォルトの名無しさん:03/03/03 12:51
>580
ひまなんで作ってみた。windows2000, VC6で確認。完全無保証。
変だったら誰か添削してくれ。
// time_modoki.cpp : no warranty
#include "windows.h"
#include "stdio.h"
#include "time.h"
int main(int argc, char* argv[])
{
  DWORD t1_k, t2_k;
  DWORD t1_u, t2_u;
  FILETIME ft_create, ft_exit, ft_kernel, ft_user;
  HANDLE hProcess;
  STARTUPINFO startupinfo;
  PROCESS_INFORMATION processinfo;
  char s_app[_MAX_PATH];

  if (argc > 1) {
    strcpy(s_app, argv[1]);
  } else {
    fprintf(stderr, "usage : time_modoki [exe file to measure]\n");
    return 1;
  }
---つづく

585 :デフォルトの名無しさん:03/03/03 12:51
---つづき
  GetStartupInfo(&startupinfo);
  if (! CreateProcess(
    s_app, NULL, NULL, NULL, FALSE,
    CREATE_DEFAULT_ERROR_MODE, NULL, NULL,
    &startupinfo, &processinfo)) {
    fprintf(stderr, "failed to create process.\n");
    return 1;
  }

  hProcess = processinfo.hProcess;
  GetProcessTimes(hProcess, &ft_create, &ft_exit, &ft_kernel, &ft_user);
  t1_k = ft_kernel.dwLowDateTime;
  t1_u = ft_user.dwLowDateTime;
  for (;;) {
    DWORD exitcode;
    Sleep(100);
    if (! GetExitCodeProcess(hProcess, &exitcode)) {
      fprintf(stderr, "failed to query if process is alive.\n");
      return 1;
    }
    if (exitcode != STILL_ACTIVE) {
      break;
    }
  }
---つづく

586 :デフォルトの名無しさん:03/03/03 12:51
---つづき
  GetProcessTimes(hProcess, &ft_create, &ft_exit, &ft_kernel, &ft_user);
  t2_k = ft_kernel.dwLowDateTime;
  t2_u = ft_user.dwLowDateTime;

  printf("cpu time usage : kernel %f uS, user %f uS\n",
    (double)(t2_k - t1_k)/10, (double)(t2_u - t1_u)/10);
  return 0;
}

587 :584:03/03/03 13:01
自己レスだが、
FILETIMEはft_createとft_exitでチェックかけた方がいいのかもしれないな。
その辺はよく調べてないのでわからない。無責任でスマソ。

588 :デフォルトの名無しさん:03/03/03 13:22
初心者質問ですまそ。

ポインタのシンタックスシュガーで
*(p+1)とかいうのをp[1]とかできますよね。
んで2次元でp[1][5]とかやろうとすると
エラーになっちまうんですが、
素直にp[x*y]という風にしないとだめなんでしょうか?

589 :デフォルトの名無しさん:03/03/03 13:28
((char [20][])p)[1][5]

いくつ分だかわからなきゃどうしようもないだろ

590 :デフォルトの名無しさん:03/03/03 13:32
あれって構文糖だったのか・・・

591 :デフォルトの名無しさん:03/03/03 13:37
>>589
?????
((char (*)[5])p)[1][5];でしょ?

592 :591:03/03/03 13:39
違う違う。
((char (*)[6以上])p)[1][5];

593 :デフォルトの名無しさん:03/03/03 13:51
>>588
しかし、なにをp[1][5]と書いたらエラーになるのか書かないとわからんよ。
char *pならエラーになって当たり前だ。

594 :558:03/03/03 15:09
え、普通にint

int a[5][5]
とかで関数に渡したあとシンタックスシュガーのばやい
どのようにやるのですか?ってことです。


595 :デフォルトの名無しさん:03/03/03 15:34
普通にint (*p)[5]; で
p=a; としたら?

596 :デフォルトの名無しさん:03/03/03 15:44
(&printf)("なんでこんなんで問題ないんだよ!");

597 :デフォルトの名無しさん:03/03/03 15:52
C言語のキモさを垣間見た瞬間であった。

598 :デフォルトの名無しさん:03/03/03 18:01
>>585
WaitForSingleObject()を使わずにGetExitCodeProcess()でループする理由は?


599 :デフォルトの名無しさん:03/03/03 19:21
gotoを使って例外処理(?)をするのってどうですか?
djbdnsはその方法を使っているみたいなんですけど。

↓こんな感じで

if(a) goto DIE;
if(b!=c) goto SERVFAIL;
   ・
   ・
   ・
SERVFAIL:
/* 後始末 */

DIE:
/* 後始末 */

}


600 :デフォルトの名無しさん:03/03/03 19:23
throw CException();

601 :デフォルトの名無しさん:03/03/03 19:28
標準ライブラリの一覧がのっているウェブサイトはありますか?

今はぼーよーさんの所を参照しているのですが、ほかにもっと見やすいところがあれば、
教えてください。

602 :デフォルトの名無しさん:03/03/03 19:29
>>601
http://www.linux.or.jp/JM/

ここのセクション3に。

603 :602:03/03/03 19:30
linuxのマニュアルだけに独自に拡張したことについても書かれているけど、そういうものはきちんと拡張したと書かれているから大丈夫。

604 :デフォルトの名無しさん:03/03/03 19:35
あとはMSDNとか

605 :デフォルトの名無しさん:03/03/03 19:53
2ちゃんねるに飽きた!IP規制がウザい!というひとに朗報。
http://papas818.hp.infoseek.co.jp/Xch.html
ここへどうぞ!人がまだ来てないからキャップ発行しますよ〜
削除人も募集です。
2ちゃんねるが閉鎖されるという噂が後を断たない今!
2ちゃんねるに見切りをつけてこっちに移るのも選択肢かも知れませんね〜




606 :デフォルトの名無しさん:03/03/03 20:25
>>602
サンクスコ
Linux Programmer's Manual(3) ですか?
この (3) という数字にはなにか意味でもあるのですか?
Unix/Linux には疎いので、、、

MSDNまでいくと、自分の用途にはちょっとヘビーすぎるかもです。

607 :デフォルトの名無しさん:03/03/03 20:46
>>606
3はセクション番号
1・・・ユーザーコマンド(lsとか)
2・・・システムコール(openとか)
3・・・ライブラリ関数(printfとか)

という感じで。
標準関数ならセクション3にあるからそこから検索すればいい。

608 :デフォルトの名無しさん:03/03/03 20:49
例外処理っていうか、結局は戻り値チェックすりゃいいだけだろ?
あとシグナル関係はC++よりCの方が相性がいいよね。


609 :607:03/03/03 20:50
俺もいい加減に全ての標準関数くらいmanに頼らないで型・引数・概要を覚えようかな。

610 :デフォルトの名無しさん:03/03/03 20:54
>>609
どういう関数があったかだけ覚えておいて、
あんまり使わないのとか、引数の順番が怪しいと思ったのだけその都度manを引くようにしてる。

fgetsとかは順番をすぐ忘れるんでな(w



611 :デフォルトの名無しさん:03/03/03 21:00
>>610
> >>609
> どういう関数があったかだけ覚えておいて、
> あんまり使わないのとか、引数の順番が怪しいと思ったのだけその都度manを引くようにしてる。
> fgetsとかは順番をすぐ忘れるんでな(w

そういうスタイルが健康的でいいよ。
どういう関数が用意されているかさえ覚えていれば、必要になったときにちょっと確認すれば
すむわけだから。

神経質に細かいことを記憶しようとしても、あまり意味内と思われ。
そんなことに労力使うくらいなら、ほかに勉強するべきことはたくさんあるし、、、

612 :デフォルトの名無しさん:03/03/03 21:00
>>610
そうそう。よく引数の順番を忘れるんだよ。
setvbufとか(^_^;)

613 :デフォルトの名無しさん:03/03/03 21:01
>>611
じゃあそうする(^_^;)
今まで通りだけど(^_^;)

614 :デフォルトの名無しさん:03/03/03 21:03
いくつかの関数のプロトタイプを画像にしてデスクトップの壁紙にする。これ最強。


615 :デフォルトの名無しさん:03/03/03 21:08
('A`)マンドクセ

616 :デフォルトの名無しさん:03/03/03 22:02
(^_^;)

617 :デフォルトの名無しさん:03/03/03 22:06
Σ( ̄□ ̄;)

618 :仕様書無しさん:03/03/03 23:27
throw NullPointerException;

619 :デフォルトの名無しさん:03/03/03 23:38
try{
_618();
}
catch(NullPointerException){
printf("ガッ");
}

620 :デフォルトの名無しさん:03/03/03 23:57
ここは何のスレですか?

621 :デフォルトの名無しさん:03/03/04 00:05
ぬるぽのスレです

622 :デフォルトの名無しさん:03/03/04 00:14
チガウダロ!
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/ >>621
 (_フ彡        /

623 :デフォルトの名無しさん:03/03/04 02:22
ぬるぽのスレです

  ∧_∧
 ( ´∀`)< ぬるぽ


624 :デフォルトの名無しさん:03/03/04 02:25
>623
ガッ

625 :デフォルトの名無しさん:03/03/04 06:51
>624
手を抜くなYO

  ∧_∧
 ( ´∀`)< ぬるぽ

626 :デフォルトの名無しさん:03/03/04 07:30
グギャjjjjjjjjjjcf、、zzzzzzzウvhk、、、、xrrrl。
クソスレやめれ=〜====〜〜〜====IIIIプッ

627 :デフォルトの名無しさん:03/03/04 09:37
唐突ですがリトライを組み入れたいときはどうや
るのが理想でしょうか?

自分は、

for (retry = 0; retry < MAXRETRY; retry++) {
    if (func() < 0)
        continue; /* error */
    break;
}
if (retry == MAXRETRY)
    errorprint(ERRORCODE); /* retry over*/

みたいな処理を必要な関数にいちいち
いれているのですが、なんだか面倒で・・・。


628 :584:03/03/04 10:09
>598 なるほど。そっちの方が簡単ですね。感謝。
// time_modoki.cpp : no warranty
#include "windows.h"
#include "stdio.h"
int main(int argc, char* argv[])
{
  DWORD t_k, t_u;
  FILETIME ft_create, ft_exit, ft_kernel, ft_user;
  HANDLE hProcess;
  STARTUPINFO startupinfo;
  PROCESS_INFORMATION processinfo;
  char s_app[_MAX_PATH];
  if (argc > 1) {
    strcpy(s_app, argv[1]);
  } else {
    fprintf(stderr, "usage : time_modoki [exe file to measure]\n");
    return 1;
  }
  GetStartupInfo(&startupinfo);
  if (! CreateProcess(
    s_app, NULL, NULL, NULL, FALSE, CREATE_DEFAULT_ERROR_MODE, NULL, NULL, &startupinfo, &processinfo)) {
    fprintf(stderr, "failed to create process.\n");
    return 1;
  }
  hProcess = processinfo.hProcess;
  WaitForSingleObject(hProcess, INFINITE);
  GetProcessTimes(hProcess, &ft_create, &ft_exit, &ft_kernel, &ft_user);
  t_k = ft_kernel.dwLowDateTime;
  t_u = ft_user.dwLowDateTime;
  printf("cpu time usage : kernel %.1f uS, user %.1f uS\n", (double)(t_k)/10, (double)(t_u)/10);
  return 0;
}

629 :584:03/03/04 10:14
>628
他に修正したところを補足。
・time.h はいらんかった。
・GetProcessTimesのft_kernel, ft_user は「時刻」ではなく「時間」が返ってくる模様。
 なので、引き算も省略。

630 :デフォルトの名無しさん:03/03/04 11:03
>>627
for (retry = MAXRETRY; retry-- && func() >= 0; ) {
    if (! retry)
        errorprint(ERRORCODE); /* retry over*/
}
エラー処理の為の変数も for {} 内に閉じ込めておける。

631 :426:03/03/04 13:24
2ちゃんねるに飽きた!IP規制がウザい!というひとに朗報。
http://papas818.hp.infoseek.co.jp/Xch.html
ここへどうぞ!人がまだ来てないからキャップ発行しますよ〜
削除人も募集です。
2ちゃんねるが閉鎖されるという噂が後を断たない今!
2ちゃんねるに見切りをつけてこっちに移るのも選択肢かも知れませんね〜


632 :デフォルトの名無しさん:03/03/04 14:04
>>631
あんたんところはポップアップがウザい。
つーか infoseek 鯖で 2ch 級のユーザー数抱え込むのは無理だぞ。

633 :デフォルトの名無しさん:03/03/04 21:18
>>628
簡単かどうかより、システムでやるべきwaitをユーザプロセスでやっちゃいかんだろ。


634 :デフォルトの名無しさん:03/03/04 22:23
i++とi+=1って意味違うよね?

635 :デフォルトの名無しさん:03/03/04 22:25
単体なら同じとみていいが

636 :デフォルトの名無しさん:03/03/04 22:26
iがint型との時とfloat型のときでも同じ動作?

637 :デフォルトの名無しさん:03/03/04 23:37
fgetsで一行ずつ読み込もうと思うのですが、
一行の途中までしか読み込めなかった場合、
ファイルポインタはどこに移動するのですか?

fgets(buf, 64, fp);

で一行の長さが63以上だった場合です。

どなたかご教授ください。
よろしくお願いします。


638 :デフォルトの名無しさん:03/03/04 23:51
>>637
んなもん実験すりゃ分かるだろうに...
「読んだとこまで」だよ。↑の場合は、行の途中。
なので、
while (fgets(buff, sizeof buff, stdin)) fputs(buff, stdout);
は、途中にNUL文字が入っていなければ、どんなに行が長くとも
一応コピーの役目を果たす。




639 :デフォルトの名無しさん:03/03/04 23:54
>>636
君の予想ではどう違う動作をするのか聞いてみたい。


640 :デフォルトの名無しさん:03/03/05 01:29
質問があります。
system()を用いて得られた結果(標準出力、戻り値)を
ファイルに落とさずに直接変数に格納したいのですが、
どのようにすれば宜しいのでしょうか?

641 :デフォルトの名無しさん:03/03/05 01:38
>>640
unix系OSを使っているのならpopenを調べるがよい。
ほかはしらん…

642 :デフォルトの名無しさん:03/03/05 01:38
>>640
UNIXなら標準出力はpopenで受けられるけど。

643 :642:03/03/05 01:39
うわ、かぶった。

644 :デフォルトの名無しさん:03/03/05 01:40
('A`)ケコーン

645 :デフォルトの名無しさん:03/03/05 01:44
これ?
http://www.microsoft.com/japan/msdn/library/ja/vclib/html/_crt__popen.2c_._wpopen.asp

646 :デフォルトの名無しさん:03/03/05 01:50
>>641 >>642
深夜にかかわらず、ご回答ありがとうございます。
popenのリファレンスを読ませていただいたのですが、
コマンド自体の戻り値を取得する方法はあるのでしょうか?
重ねての質問をご容赦ください。

647 :デフォルトの名無しさん:03/03/05 02:27
>>646
popen使うなら、pcloseの戻り値が「コマンド自体の戻り値」のはず。

VCでpopenつかうとき、スペースの混ざった引数渡すときの
クォートの付け方がよくわからん。誰かしってたらおしえて。

648 :デフォルトの名無しさん:03/03/05 02:39
質問
ローマ字をアイウエオ順で比較なりソートなりする
ライブラリってありますか?

FAQぽくてすいません

649 :648:03/03/05 02:44
環境書き忘れました。
linuxです。

650 :デフォルトの名無しさん:03/03/05 02:53
ローマ字をアイウエオ順でソートって
"baka" → "kaba"
って感じ?

651 :648:03/03/05 02:57
>>650
ごめんなさい。
人名のソートです

652 :デフォルトの名無しさん:03/03/05 03:07
人名がローマ字表記になっているの?

653 :デフォルトの名無しさん:03/03/05 03:15
>>648
std::lexicographical_compare()

654 :648:03/03/05 03:17
>>652
そゆことです。

Inoue Takasi
Aoyama Taro
Aoki Jiro

Aoki Jiro
Aoyama Taro
Inoue Takasi

一文字ずつ「日本語として」切り取っていって
比較してけいばいいと思いますが、
なんかライブラリとかあんのかなーと思いました。

655 :648:03/03/05 03:19
>>653
あれ、ぷらぷら?

ありがとうございます。
一応調べてみます。

656 :650=652:03/03/05 03:40
>>654
ライブラリはないと思うぞ。
a = 0
i = 1
ka = 5 + 0 = 5
ki = 5 + 1 = 6
とかやるといいかも。

>>653
調べてみたけど、それを使ったからって簡単になるわけではなさそうだけど。

657 :デフォルトの名無しさん:03/03/05 03:47
まあ実際 std::lexicographical_compare() を char* に対して使っても、
strcmp() と同じ意味にしかならないからな。

658 :デフォルトの名無しさん:03/03/05 07:09
大橋(オオハシ)だったらOhashi?Oohashi?Oh-hashi?
太郎(タロウ)はTaro?それともTarouなのか
ガイジンの名前が含まれてたら無理だし

フリガナを持ってないとアイウエオ順にできないと思います

659 :デフォルトの名無しさん:03/03/05 07:20
比較関数作ってqsort

660 :デフォルトの名無しさん:03/03/05 09:25
ローマ字->カナの変換ルーチン作って、変換しとく
あとはstrcmp & qsortにでも放り込む

661 :デフォルトの名無しさん:03/03/05 09:29
・ヘボン式で書けばた行はta chi tsu te to。拗音や濁音が入った場合も
考慮しなくてはいけない。表記法のゆれはどれぐらい考慮するのかな?
chaとtyaは同じ?ぢはji(これは「じ」でもある)とかいてもよい?
・日本語のカナに落ちないバイト列の評価方法も決めないといけない。
・nが「ん」なのか、な行の片割れなのかを評価しないといけない。
などなど。どう考えてもそう単純な話ではないね。




662 :デフォルトの名無しさん:03/03/05 09:45
>633
なるほど。再度感謝です。

663 :639:03/03/05 09:51
i++;
は i=i+1.0fに変換される
i+=1;はi=i+(float)1に変換されたあとi=i+1.fに変換される
上のほうが精度がよい(場合もある)ってことでよろしか?

664 :デフォルトの名無しさん:03/03/05 10:37
printfの書式を利用して文字列を作成したあと、
その文字列を使ってある値を検索するプログラムを書いています。
例えばsearch("%dch.%s", 2, "net")とすると、2ch.netで検索したいのです。

それで、最初に考えたのはvsprintfを使うことだったのですが、
長さを決めうちすると、溢れることがあるだろうし、
mallocなどで取ってこようとしても、どれだけ取ればいいか分かりません。
こういう場合は、どうすればいいのでしょうか。


665 :デフォルトの名無しさん:03/03/05 10:55
>>664
vsnprintf() があればそっち使え。
無ければ GNU libiberty から vasprintf() 拾って来い。


666 :デフォルトの名無しさん:03/03/05 11:07
>664
シンプルな%dと%sだけなら、自分で組んでもいいかもね。

667 :デフォルトの名無しさん:03/03/05 11:10
>664
組む、というても、snprintfをゼロから組む必要は無く、
%d, %s に必要な文字列長をmalloc前に予測する処理を書く、ということね。念のため。

668 :664:03/03/05 11:23
>>665-667さん
vsnprintfがありました。
なので、それを使おうと思います。
どうもありがとうございます。


669 :デフォルトの名無しさん:03/03/05 11:45
sprintfなら獲得すべきバッファのサイズはある程度わかると思うけど・・・

670 :デフォルトの名無しさん:03/03/05 20:10
  ∧_∧
 ( ´∀`)< ぬるぽ



671 :デフォルトの名無しさん:03/03/05 20:11
  ∧_∧
 ( ´∀`)< ぬるぱ

672 :ぬるぽな:03/03/05 20:14
ハンマー持った変な人になんか負けないもん!

673 :デフォルトの名無しさん:03/03/05 20:16

∧_∧
 ( ´∀`)< NullPointerException



674 :デフォルトの名無しさん:03/03/05 20:18
おい!せめて参照くらいサポートしろ鼻毛言語よ。

675 :デフォルトの名無しさん:03/03/05 20:19
>>674
HSP厨必死だな

676 :デフォルトの名無しさん:03/03/05 20:21
  ( ・∀・)   | | ガガガガッ 人
 と    )    | |    人  <  >__Λ∩
   Y /ノ    .人   <  >__Λ∩Д´)/
    / ) .人 <  >__Λ ∩Д´)/   / ←>>670
  _/し' <  >_Λ∩Д´)/   / ←>>671
 (_フ彡 V`Д´)/   / ←>>672
            / ←>>673

677 :デフォルトの名無しさん:03/03/05 20:24
>>676
>>663はちゃんと正式名称でいってるよ

678 :デフォルトの名無しさん:03/03/05 20:24
>>677
>>673ね 

679 :デフォルトの名無しさん:03/03/05 20:27
ゴチャゴチャイッテンジャネェ
  ( ・∀・)   | | ガガガガッ 人
 と    )    | |    人  <  >__Λ∩
   Y /ノ    .人   <  >__Λ∩Д´)/
    / ) .人 <  >__Λ ∩Д´)/   / ←>>678
  _/し' <  >_Λ∩Д´)/   / ←>>677
 (_フ彡 V`Д´)/   / ←>>678
            / ←>>677

680 :デフォルトの名無しさん:03/03/05 22:24
ぬるぽスレはここですか?

681 :デフォルトの名無しさん:03/03/05 22:29
>>680
NullPointerExceptionを「ぬるぽ」と呼ぶスレ
http://zeta.ns.tc/kiba/test/read.cgi?bbs=prog&key=1046862559


682 :648:03/03/05 23:14
>>652-661
ローマ字のアイウエオ順ソートの件
ありがとうございました。

自分でやろうと思ったとき、かなり骨かもと思ったので
ライブラリが無いかなってことでした。

1 Oohasi O-o-ha-si
2 Ohhashi Oh-ha-shi
展開? =O-o =si
3 Ohashi O-ha-shi

1と3は無理だーー(泣)

まあ、ひらがななり、カタカナならそのままソートできる(?)から
ふりがなのデータ用意しようよってことでしょうね

なんかこれくらいできなければと思えてきたので
ひまがあるときどうにかやってみようと思います。


683 :デフォルトの名無しさん:03/03/05 23:16
Win32のCompareStringは?

684 :デフォルトの名無しさん:03/03/05 23:19
C++のsort()で、比較関数の内部にローマ字→カタカナもしくはひらがな
変換処理を内蔵すれば、そのままソートできそう。
ただし激しく遅くなりそうだが。処理件数が少ないならこの方法がお勧め。

685 :デフォルトの名無しさん:03/03/05 23:20
もっともqsort()の比較関数内でやってもいいけどな。

686 :デフォルトの名無しさん:03/03/05 23:23
>>684
>>685
とりあえず実装するにはそれでもいいかもな。
あとは性能を考慮して前もって変換するかどうか決めればよいだろう。

687 :648:03/03/05 23:31
>>683
スマソ。
linuxなのです
でもローマ字は無理っぽい

>>684
>C++のsort()で、比較関数の内部にローマ字→カタカナもしくはひらがな
>変換処理を内蔵すれば、そのままソートできそう。
これが問題で682みたいになってしまうのです。
Ohhasi Ohasiのケース
(設計で挫折(泣))
でもこれはとろすぎかも

お世話になりました

688 :デフォルトの名無しさん:03/03/06 00:06
>>647
> VCでpopenつかうとき、スペースの混ざった引数渡すときの
> クォートの付け方がよくわからん。誰かしってたらおしえて。

Rules: 2N backslashes + " ==> N backslashes and begin/end quote
2N+1 backslashes + " ==> N backslashes + literal "
N backslashes ==> N backslashes


689 :647:03/03/06 00:40
>>688
うーん。読めん。
日本語訳きぼんぬ。

690 :デフォルトの名無しさん:03/03/06 00:48
2N個のバックスラッシュ+ダブルクォート ==> N個のバックスラッシュ+クォートされた文字列の開始/終了
2N+1個のバックスラッシュ+ダブルクォート ==> N個のバックスラッシュと通常文字としてのクォート
それ以外のバックスラッシュ ==> そのまま

ダブルクォートに先行する場合だけバックスラッシュが特別扱いされる。


691 :647:03/03/06 01:06
>>690
ごめん、バックスラッシュは本題じゃないんだ。
argv[0] : "C:\Program Files\xxx\yyy"
argv[1] : "t e s t.txt"
引数が、たとえばこう(↑)渡るようにpopenするにはどうするかって話。

UNIXならそれぞれシングルクォートで囲って並べればいいんだけど、
Windowsだとそうはいかない。
バックスラッシュの特別扱いも考え始めると、さらに大変なことになりそう。

ageてみよう。

692 :ヽ(´ー`)ノ:03/03/06 01:18
>>691
fork, pipe, exec* 使って、簡単なラッパーを実装するとか。


693 :647:03/03/06 01:27
>>692
VC付属の_popenのソース見て、そう簡単にはできないと判断した。

694 :デフォルトの名無しさん:03/03/06 01:28
「VCで」というのが見えないのか。
それを云うならCreatePipe, CreateProcess, DuplicateHandleだろう。
VC++のcrtのソースを見る限りは、COMSPEC環境変数で指定されている
シェルか、cmd.exe/command.comを起動する。
ただでさえコマンド引数まわりの扱いが貧弱なのに、さらにシェルの
引数解釈が割り込むとロクなことがないので、_popenを使わないことを勧める。
パイプを使うサンプルはMSDNに転がっていたと思うし、rubyあたりの
ソースに直截流用可能なWin32版のpopenの実装があったと思う。



695 :デフォルトの名無しさん:03/03/06 01:28
>>693
大丈夫だ。>>695がなんとかしてくれる。

696 :デフォルトの名無しさん:03/03/06 01:29
>>695
プププ

697 :デフォルトの名無しさん:03/03/06 01:50
>>695
偉い。よく言った(w

698 :デフォルトの名無しさん:03/03/06 02:12
セキュリティホールの作り方を教えてください。

699 :デフォルトの名無しさん:03/03/06 02:30
>>698
チェックしない 

700 :ヽ(´ー`)ノ:03/03/06 02:57
>>694
あぁそうか、システムコールだもんな…寝惚けた。
VC.NET が欲すぃけど買えない貧乏学生なんで勘弁してくだつぁい。

701 :690:03/03/06 03:02
>>691
引数にダブルクォート自体を含む場合のことを書いたわけだが。
そうでないならもっと単純に

"C:\Program Files\xxx\yyy" t e s t.txt

という形にすればいいはず。


702 :647:03/03/06 04:25
>>701
それで_popenすると、

'C:\Program' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

となるのですよ。ちなみにCMD.exe。

703 :デフォルトの名無しさん:03/03/06 04:41
>>701
これで動くけど?
#include <stdlib.h>
#include <stdio.h>

int main()
{
  char buf[BUFSIZ];
  FILE *pipe = _popen("\"C:/Program Files/Common Files/Microsoft Shared/VBA/VBA6/link.exe\" test.txt", "r");
  if (!pipe) {
    perror("popen");
    return 1;
  }
  if (!fgets(buf, sizeof(buf), pipe)) {
    perror("fgets");
    return 1;
  }
  _pclose(pipe);
  fputs(buf, stdout);
  return 0;
}


704 :647:03/03/06 05:36
#include <stdio.h>
#include <stdlib.h>
const char* const command[] = {
 "C:/Program Files/Microsoft Visual Studio/Common/Tools/UUIDGEN.EXE",
 "\"C:/Program Files/Microsoft Visual Studio/Common/Tools/UUIDGEN.EXE\"",
 "\"C:/Program Files/Microsoft Visual Studio/Common/Tools/UUIDGEN.EXE\" -v",
 "\"C:/Program Files/Microsoft Visual Studio/Common/Tools/UUIDGEN.EXE\" \"-v\"",
};
int main()
{
 for( int i = 0 ; i < sizeof( command ) / sizeof( command[0] ) ; ++i )
 { printf( "-- %d --\n" , i );system( command[i] ); }
 return 0;
}
↑シェルの問題に絞ってこんなのを作ってみた。
で、結果は、

-- 0 --
'C:/Program' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
-- 1 --
73556378-d75f-4799-895a-5d47e84a2f68
-- 2 --
Microsoft UUID Generator (c) 1992. v1.00

-- 3 --
'C:/Program' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

・・・納得いかん。


705 :デフォルトの名無しさん:03/03/06 08:49
>>704
どうも途中のダブルクォートは全部プログラム名の一部と見なされるみたいだなぁ。
つまりVCのsystem()その他では空白を含む引数はargv[0]も含めて高々一つまでってことか。

>>694が正解みたい。少なくともruby 1.8.0のsystemでは扱えてるようだ。
perlはcygwin版しかインストールしてないので、だれかActivePerlについて確認キボン。

706 :デフォルトの名無しさん:03/03/06 08:57
素朴な疑問。
ショートファイル名でアクセスしちゃいかんの?
NTFSでも使えたと思うのだが。

707 :デフォルトの名無しさん:03/03/06 09:24
NTFSだとショートファイル名を作らないようにもできるけどな。

708 :デフォルトの名無しさん:03/03/06 09:56
数百行でかかれた手頃なCのソースはなにかありますか?
ライブラリーでも単体のアプリでもいいのですが。

709 :デフォルトの名無しさん:03/03/06 11:06
system() に渡す文字列が既に環境依存なのなら、そもそも環境依存の API なりを
使った方がいいと思う。

710 :647:03/03/06 11:58
>>709
その結論に落ち着きつつあるです。
プリプロセッサで切るか・・・・。
WIN32 unix とか、そんなマクロだったかのぅ。

711 :デフォルトの名無しさん:03/03/06 12:11
>>708
重要なのは勉強するサンプルとして欲しい機能を満たしたソースであるかないか
行数は関係ないだろ。

712 :デフォルトの名無しさん:03/03/06 13:32
>>711
一千万行もあるソースを読めというのか?
ふざけんな!

713 :デフォルトの名無しさん:03/03/06 13:37
何をわけの分からんことを。

714 :デフォルトの名無しさん:03/03/06 13:42
春でつね。

715 :デフォルトの名無しさん:03/03/06 13:54
1000行あってもそのうち700行はコメントと空行

716 :デフォルトの名無しさん:03/03/06 15:10
>>705
> つまりVCのsystem()その他では空白を含む引数はargv[0]も含めて高々一つまでってことか。
違った。「プログラム名に空白を含む場合は、空白を含む引数は渡せない」だな。


717 :デフォルトの名無しさん:03/03/06 15:33
atoi("")って、0になるんでしたっけ?ANSI的に。

718 :デフォルトの名無しさん:03/03/06 15:40
しょりけーいぞん

719 :デフォルトの名無しさん:03/03/06 15:41
>>717
その通り。正しく int に変換できなければ 0 を返す。

720 :デフォルトの名無しさん:03/03/06 15:44
>>716
"\"\"C:\\Program Files\\Microsoft Visual Studio\\Common\\Tools\\UUIDGEN.EXE\" \"-v\"\"",


721 :デフォルトの名無しさん:03/03/06 16:36
>>720
その場合は-vを囲まなくてもいいだろ。>>716でいってるのは「方法がない」もの。

722 :デフォルトの名無しさん:03/03/06 17:56
整数を文字に変換するにはどうすればいいですか?

723 :デフォルトの名無しさん:03/03/06 18:02
  ∧_∧
 ( ´∀`)< ぬるぱ



724 :デフォルトの名無しさん:03/03/06 18:04
ヨバレテトビデテジャジャジャジャーン
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/  
 (_フ彡        /  ←>>723

725 :デフォルトの名無しさん:03/03/06 18:25
C言語で言う「割り込み」って何のことでしょうか?
索引調べても乗ってないし、どうもアルゴリズム上の
俗語らしいのですが…。

726 :デフォルトの名無しさん:03/03/06 18:30
>>725
どこからその割り込みという言葉を知ったのでしょうか?
それによって答えも少々かわりそうだ

727 :さんま:03/03/06 18:55
>>723
だれが出っ歯やねん!

728 :デフォルトの名無しさん:03/03/06 19:07
>>722
sprintf

729 :デフォルトの名無しさん:03/03/06 19:11
>>722
boost::lexical_cast

730 :デフォルトの名無しさん:03/03/06 19:38
C言語スレで「整数の文字列への変換の仕方」が分からない初心者に
対してC++の話題を持ち出すヤシは、C++を噛りたてで
自分の乏しい知識を自慢したくて仕方がないんだろうね。


731 :デフォルトの名無しさん:03/03/06 19:42
うん、そうだよ。君の言う通り!参った参ったよ、降参だ!
ああ、銃も置くよ。これでいいだろ?

732 :デフォルトの名無しさん:03/03/06 19:44
>>730
そうやっていちいちC++の見事なレスにやっかみ半分なレスをする
君は、C++を知りたくて仕方ないのに全然理解できなくて毎日挫折
を味わっているかわいそうなヤシなんだね。

733 :デフォルトの名無しさん:03/03/06 19:45
あー、半角?くんのことね。

734 :デフォルトの名無しさん:03/03/06 19:47
サラ仕上げ

735 :デフォルトの名無しさん:03/03/06 19:50
人気番組笑点の司会者は誰

736 :デフォルトの名無しさん:03/03/06 19:54
int型の値をdouble型に変える方法を教えてよ

737 :デフォルトの名無しさん:03/03/06 20:03
>>736
キャスト

738 :デフォルトの名無しさん:03/03/06 20:08
>>736
double型の変数に代入するだけでいいじゃん。

739 :デフォルトの名無しさん:03/03/06 20:10
>>735
立川談志

740 :デフォルトの名無しさん:03/03/06 20:25
こんな関数があります。
void PrintAtDebug( const char* f, ... );

この関数を呼ぶのは マクロ _DBG が定義されてるときだけなのですが、
void foo() {
  int i = 10;
#ifdef _DBG
  PrintAtDebug( "value %d\n", i );
#endif
}
なんて書くのが、すごく無様に見えます。


たとえば、その関数が
void PrintAtDebug( const char* str );
のような形であれば、
#ifdef _DBG
#define _PrintAtDebug(x) PrintAtDebug(x)
#else
#define _PrintAtDebug(x)
#endif
なんてヘッダファイルにでも書いておけば、気持ちよくPrintAtDebug()関数を
呼ぶことができるようになるのですけど、
いかんせん、件の関数は省略された引数を持っています。

---------------------
省略された引数を持つ関数をwrapするようなマクロの書き方を、
誰か教えてくださいませ...


741 :740:03/03/06 20:29
「省略された引数」じゃなくて
「可変呼引数」ってのが正解ですね。スマセン。

742 :デフォルトの名無しさん:03/03/06 20:33
PrintAtDebug(const char* f, ...)
{
#ifdef _DBG
 〜
#else
 〜
#endif
}
とするんでは駄目?

743 :デフォルトの名無しさん:03/03/06 20:33
C90までであれば
#ifdef _DBG
#define _PrintAtDebug(x) PrintAtDebug x
#else
#define _PrintAtDebug(x)
#endif

_PrintAtDebug(("value %d\n", i));



744 :デフォルトの名無しさん:03/03/06 20:35
gccなら
#ifdef _DBG
#define _PrintAtDebug(x, ...) PrintAtDebug(x, ## __VAR_ARGS__)
#else
#define _PrintAtDebug(x, ...)
#endif

_PrintAtDebug("value %d\n", i);


745 :デフォルトの名無しさん:03/03/06 20:37
C99なら
#ifdef _DBG
#define _PrintAtDebug(x, ...) PrintAtDebug(x, __VA_ARGS__)
#else
#define _PrintAtDebug(x, ...)
#endif

_PrintAtDebug("value %d\n", i);


746 :740:03/03/06 20:39
>>742
んと、最初そうしようかと思ったんだけど、
そうすると関数呼び出しのオーバヘッドがあるしなー、って思って。
あと、おっきめの構造体とか、
_PrintAtDebug("BigStruct:%s\n", ToString( bigStruct ) );
とか、やってたりしたので....

>>743
括弧2重!すごい!それやります!


747 :740:03/03/06 20:44
>>744
gccだとそういうのがあるんですねぇ。
そっちのほうがきれいかな...
んー...

748 :デフォルトの名無しさん:03/03/06 20:46
ささやかな初心者の質問なんですが
C言語でケータイ電話用アプリは作れますか。
Javaで作れるらしいですけど
Cではできないのですか?

749 :デフォルトの名無しさん:03/03/06 20:49
>>745
そういえばC99では可変個の引数をとるマクロを書けるんだっけ。
いいなそれ。

750 :デフォルトの名無しさん:03/03/06 20:49
Javaの法が簡単でしょ

751 :デフォルトの名無しさん:03/03/06 20:50
>>748
SDK(コンパイラやライブラリなど)があれば・・・
あるかどうかは知らない。

752 :デフォルトの名無しさん:03/03/06 20:50
>>740
>744-745はどうでもいいが、>>743あたりは極普通のTipsなので、もう
ちょっといろんなソースを読んで勉強することを勧める。マジな話。


753 :デフォルトの名無しさん:03/03/06 20:51
>>750
はげどう。
携帯電話の制御プログラムならまだしも、アプリケーションならJavaの方がいいでしょ。

754 :デフォルトの名無しさん:03/03/06 20:54
そうそう。Cだとあーなったりこーなったりして大変よ。

755 :デフォルトの名無しさん:03/03/06 20:54
iアプリってJavaVM上で動いてるの?

756 :デフォルトの名無しさん:03/03/06 21:08
>>755
KVMってのの上だな。

757 :デフォルトの名無しさん:03/03/06 21:37
>>756
tnx a lot!

758 :デフォルトの名無しさん:03/03/06 21:37
KVMの所為で、変数名も詰めないといけない昔のBasicのようなプログラムを
書かざるを得ない。<携帯電話

でもだからと言って、お手軽に実装するもっと簡単な方法があるわけではない。
例えばJavaアプリならPC上のエミュレータも含めて比較的手軽に書けるが、
今のところCで書いたプログラムを携帯電話にインストールする手段もない。

759 :デフォルトの名無しさん:03/03/06 21:38
JAVA起動した時に出てくるティーカップのマークって登録商標?

760 :デフォルトの名無しさん:03/03/06 21:40
>>758
ユーザプログラムをH/Wに影響のない形で動かしたいと考えたとき、Javaの箱庭性がぴったりだったってこったな。


761 :デフォルトの名無しさん:03/03/06 21:52
>>760
どっちかっつーと、KVMやJVMみたいな実際のハードウェアから切り離した
仮想マシンの存在がものを言ってるんだがな。

Javaはその仮想マシンへのコンパイラに過ぎない。
JVMなどをターゲットにしたコンパイラで広く普及してるのがJavaってだけだろう。

原理的にはCコンパイラだってCOBOLコンパイラだってかけるぞ(w
たしかCコンパイラは実装があったような気がしたが。
というわけでJavaだから、というのは厳密には正しくない。

762 :デフォルトの名無しさん:03/03/06 22:08
>>761
うむ、同意だ。そこに目を付けたのが.NETってこったな。

763 :デフォルトの名無しさん:03/03/06 22:31
今はVC++ってのでGUIのAPが書けますが、昔はどんな風に
画面を作っていたのですか?

764 :デフォルトの名無しさん:03/03/06 22:32
>>763
pardn?


765 :デフォルトの名無しさん:03/03/06 23:21
>>764
pardon?

766 :デフォルトの名無しさん:03/03/06 23:25
>>763
キャラクタとエスケープシーケンスを駆使して窓を構築してますた。

767 :デフォルトの名無しさん:03/03/06 23:27
>>766
昔すぎると思われ。せめてWindows3.0の時点で話した方が良くない?

768 :デフォルトの名無しさん:03/03/06 23:36
DICS-BASICでは line、circle とか、pointでドット絵書いて get、put だった

769 :デフォルトの名無しさん:03/03/06 23:48
窓の下になる画像は VRAM からメインメモリに移動してから窓描画します。
もちろんメインメモリ節約の為に、VRAMイメージは圧縮しておきます。

770 :デフォルトの名無しさん:03/03/07 00:00
どんなふうにして圧縮してたの?>>769

771 :デフォルトの名無しさん:03/03/07 00:05
>>770 ランレングス圧縮で無問題。

772 :デフォルトの名無しさん:03/03/07 00:08
>>711
MAGのコードが公開されてたから、
趣味のプログラムではそれ使ったり。

仕事用だと、だいたい無圧縮。


773 :デフォルトの名無しさん:03/03/07 00:08
ランレングス圧縮というのがあるですか、調べてみるです(・∀・)>>771

774 :デフォルトの名無しさん:03/03/07 00:46
>>772
あらかわ犬の方ですか?

775 :デフォルトの名無しさん:03/03/07 00:49
>>773
11111111000000000000001111111111111111111

8 14 19


776 :デフォルトの名無しさん:03/03/07 03:00
>ランレングス圧縮
役に立たない

777 :772:03/03/07 09:45
ぜんぜん違います

778 :デフォルトの名無しさん:03/03/07 13:01
コンパイラが必用なんですね(T_T)

779 :デフォルトの名無しさん:03/03/07 16:29
コンパイラって漫画だよ
そんなもん読んでないでとっととC言語の質問汁!!

780 :デフォルトの名無しさん:03/03/07 17:56
じゃあ早速・・・
本当にint型は16bit以上なの?

781 :ヽ(´ー`)ノ:03/03/07 18:02
>>780
INT_MAX は 16bit であることが ANSI C では保証されているれす。


782 :デフォルトの名無しさん:03/03/07 18:02
>>780 実装による。

783 :ヽ(´ー`)ノ:03/03/07 18:02
「INT_MAX は」じゃオカシイな(;´Д`)「int型は」に置き換えてくれ。

784 :デフォルトの名無しさん:03/03/07 18:05
ビットで訊ねてきてるところが罠のような気がしてならない

785 :デフォルトの名無しさん:03/03/07 18:20
>>780
>shortとintは少なくとも16ビット、longは少なくとも32ビット、
>shortはintより長くてはならず、intはlongより長くてはいけない

786 :デフォルトの名無しさん:03/03/07 18:47
SolarisでCやってるんですけど、mallocしてるところで時々SEGVで
こけてしまうのですが、有効な調べる方法とかってあります?

787 :デフォルトの名無しさん:03/03/07 18:55
char, short, int, long, 等の型のサイズは、どうして固定のビット長で定義されてないんですか?
有限の数を相手にしている以上、charは8bit等 決まっていないとどの型を選んで良いのか迷うのですが。

788 :デフォルトの名無しさん:03/03/07 18:57
6bit PIC 向けのプログラムとか書きたいから。

789 :デフォルトの名無しさん:03/03/07 18:57
質問です。
色を変えたりするやつで、

printf("\x1b[〜")

がありますが、borland c++のコンパイラではできませんでした。(改行のマークみたいのが出てきます。)
borlandではだめなのでしょうか。

また、cygwinのgccコンパイルではconio.hファイルがありませんといわれてしまいましたが、だめなのでしょうか。。

790 :デフォルトの名無しさん:03/03/07 18:58
>>789
スレ違いだが、Windows NTのコマンドプロンプトはANSIエスケープシークェンスを理解しない。

791 :デフォルトの名無しさん:03/03/07 19:05
>>788
それは処理系に依存したサイズを考えて選ぶしかないという事ですよね?
C言語って最悪の言語ですね。

792 :デフォルトの名無しさん:03/03/07 19:16
教えて下さい。
下のプログラムが正常に動作しません。
NULL ポインタは引数に渡せないのでしょうか。
本当は、get_memory 関数内で、色々なサイズでメモリ確保します。
環境:Linux + gcc3.2


#include <stdio.h>
#include <stdlib.h>

void get_memory( char *pnt )
{
pnt = malloc( 10 );
strcpy( pnt, "abcdefghi");
}

int main( void )
{
char *mem;

get_memory( mem );
printf("mem=[%s]\n", mem );
free( mem );
}

793 :デフォルトの名無しさん:03/03/07 19:20
値渡し

794 :デフォルトの名無しさん:03/03/07 19:20
>>792
void get_memory( char **pnt)
{
*pnt = malloc...

get_memory( &mem);

795 :794:03/03/07 19:23
ふつー
char *get_memory(void)
{
return malloc...

mem = get_memory();

796 :789:03/03/07 19:24
>>790
うーむそうなんですか。。
ありがとうございました。


797 :デフォルトの名無しさん:03/03/07 19:31
>>791
ま、マジレスしておくと。

別に処理系に依存したサイズなんかいくらでも回避する手段はあるわけで。
それ以前にCはアーキテクチャにべったり依存したプログラムも書けるから
便利なんだよ。OS依存以前にCPU依存のプログラムが書けるというところな。

一応ANSIのintの定義は最低16bitの符号あり整数ってだけで、
おまえはbit長さのみを気にしてるようだが、
符号が1の補数か2の補数かそれ以外の表現なのかさえも規定してない。
bit数気にするならこっちの表現も気にしろよな…

んでintもともとは「プロセッサにもっとも自然な符号あり整数」程度の定義だったわけだが。
もっとも自然な、ということはそいつを使うのがもっとも性能が発揮できる、
という意味とほぼ等価と考えてもよい。

処理系に依存しないサイズの整数を使おうと思ったら普通

#ifdef DOS
typedef int32 long;
#else
typedef int32 int;
#endif

とかヘッダに書いといてincludeするだけで済む。別にたいした手間じゃないし、
アーキテクチャに依存したプログラムがかけないよりはまし、
と考えているプログラマもいるってことだ。

ま、何やるにしてもCしか使わない(使えない)プログラマはアフォかと思うが、
確実にそういう需要はあるってこと。そしてそれを回避する手段もある。

798 :デフォルトの名無しさん:03/03/07 19:31
>>794-759
あっ!
そうですね。 気がつかなかった。
お世話樣でした。


799 :797:03/03/07 19:33
ああんtypedefの書式間違えた(;´Д`)

800 :デフォルトの名無しさん:03/03/07 20:41
C++だと2の補数表現と決まっているよね。偉いよね。

801 :デフォルトの名無しさん:03/03/07 20:52
>>797
> 別に処理系に依存したサイズなんかいくらでも回避する手段はあるわけで。
おいおい。

802 :デフォルトの名無しさん:03/03/07 21:25
問1 
for(;i<lim-1 && (c=getchar())!='\n' && c!=EOF;)を&&を使わずに書け。

自分の解答
for(;!(i<lim-1 || (c=getchar())!='\n' || c!=EOF);

/* 俺ってバカなのでしょうか・・・? */

803 :802:03/03/07 21:33
);が抜けておりました。スマソ
for(;!(i<lim-1 || (c=getchar())!='\n' || c!=EOF););

804 :デフォルトの名無しさん:03/03/07 21:36
for(;(i<lim-1) * ((c=getchar())!='\n') * (c!=EOF);)

805 :802:03/03/07 21:43
誰か答え教えてくさい

806 :デフォルトの名無しさん:03/03/07 21:55
>>805
>>804 じゃダメなの?

807 :デフォルトの名無しさん:03/03/07 22:06
>>803
whileは嫌い?

808 :デフォルトの名無しさん:03/03/07 22:19
>>804
これだとダメだーね。

809 :デフォルトの名無しさん:03/03/07 22:22
>>808
なぜ?

810 :デフォルトの名無しさん:03/03/07 22:24
全てを評価してしまうから?

811 :808:03/03/07 22:24
こうかな?
for(;!(i>=lim-1 || (c=getchar())=='\n' || c==EOF);)

812 :809:03/03/07 22:26
>>810
ああなるほど。

813 :809:03/03/07 22:26
なら||を使うのもだめじゃないか。

814 :デフォルトの名無しさん:03/03/07 22:34
>>802
for(;i<lim-1 ? (c=getchar())=='\n' ? 0 : c==EOF ? 0 : 1 : 0;)


815 :デフォルトの名無しさん:03/03/07 22:35
>>813
なんで?

816 :809:03/03/07 22:38
>>815
評価する式の数が異なる可能性がある。
それでいいなら>>804もOKでしょう。

817 :デフォルトの名無しさん:03/03/07 22:47
>>816
||だって短絡評価だろうが。
>>802>>808の等価性が理解できないなら、ブール代数の基礎を勉強し直すこと。

818 :デフォルトの名無しさん:03/03/07 22:51
>>817
a=1,b=0,c=0

a&&b&&c /* bまで評価 */
!(a||b||c) /* aのみ評価 */


819 :デフォルトの名無しさん:03/03/07 22:51
for(;i<lim-1 && (c=getchar())!='\n' && c!=EOF;)

i<lim-1 が真のとき、(c=getchar())!='\n' も評価される。

for(;!(i>=lim-1 || (c=getchar())=='\n' || c==EOF);)

i<lim-1 が真のとき、i>=lim-1 は偽だから、(c=getchar())!='\n が評価されない。

820 :デフォルトの名無しさん:03/03/07 22:58
>>819
これ間違ってるか。

821 :デフォルトの名無しさん:03/03/07 22:58
C言語の仕様の話に数学をもってこられても困るな。

822 :デフォルトの名無しさん:03/03/07 23:00
>>819
> i<lim-1 が真のとき、i>=lim-1 は偽だから、(c=getchar())!='\n が評価されない。
* 偽 だ か ら * 評価されるんだろうが。
ド・モルガンでもぐぐってみろ

823 :デフォルトの名無しさん:03/03/07 23:01
>>818
> a&&b&&c /* bまで評価 */
> !(a||b||c) /* aのみ評価 */
等価じゃないだろ。ヴォケ

上のに等価なのは
!(!a||!b||!c)
だ。

824 :デフォルトの名無しさん:03/03/07 23:01
>>822
ごめん間違ってたよ。
818と同じことを言おうとして滑った。

825 :デフォルトの名無しさん:03/03/07 23:02
>>823
それを818は言っているんだろう。

826 :802:03/03/07 23:04
804はなんでいいんですか?
C言語でも倫理積と同じように*と書き表せるのですか?

827 :802:03/03/07 23:07
じゃあ+ってのもあるのでつか?
俺ってあほですか?

828 :デフォルトの名無しさん:03/03/07 23:07
>>826
みっつの式のうちひとつでも偽があったらかけ算の結果が0になる。0は偽。
ゆえに全てが真となるときのみ全体が真となる。ってことじゃない?

829 :デフォルトの名無しさん:03/03/07 23:08
>>828
and野は無し?

830 :デフォルトの名無しさん:03/03/07 23:08
わり算にしたらFPEが発生するかなw

831 :802:03/03/07 23:10
>>828
なぁるほどぉ
I understood

832 :デフォルトの名無しさん:03/03/07 23:18
continueはループの先頭に飛ぶんじゃないよ。ループの末尾に飛ぶんだよ。


833 :802:03/03/07 23:19
式が偽を返すときは0と決まっているのですか?
c==EOFはわかるのですが、
(c=getchar())=='\n'が偽のとき返す値は'\n'以外の文字ではないのですか?

834 :デフォルトの名無しさん:03/03/07 23:20
>>833
0だよ。
あと論理式で真を返すときは1を返す。

835 :デフォルトの名無しさん:03/03/07 23:21
>>833
> (c=getchar())=='\n'が偽のとき返す値は'\n'以外の文字ではないのですか?

ハァ?

836 :802:03/03/07 23:28
アリガト
さんこになりました。

837 :デフォルトの名無しさん:03/03/07 23:36
最近system()という関数があることを知りました。

838 :デフォルトの名無しさん:03/03/07 23:42
アタシはrenameという関数があることを知りました。

839 :デフォルトの名無しさん:03/03/07 23:43
printfってすげーーーー

840 :デフォルトの名無しさん:03/03/08 04:20
ド・モルガンの法則を知らない真性厨房が現れました

841 :デフォルトの名無しさん:03/03/08 04:47
>たたかう
 にげる
 あおる
 つられる


842 :デフォルトの名無しさん:03/03/08 06:19
ド・モルガンのドって大阪弁なん?

843 :デフォルトの名無しさん:03/03/08 07:36
どもるガン

844 :初心者:03/03/08 08:30
何処が悪いでしょう? プログラム起動と同時に落ちます。

double ratio;  BYTE data[1024*100];
for(int i=0; i<sizeof(data); i++)
 data[i]=rand()%256;
for(int i=0; i<sizeof(data); i++)
{
 if(data[i] + data[i+1] == 0)
  continue;
 else
  ratio = (double)data[i] /  data[i]+data[i+1] ;
}
return 0;

845 :デフォルトの名無しさん:03/03/08 08:38
( data[i]+data[i+1] ) としないと (double)data[i] / data[i]で駄目。以上!

846 :デフォルトの名無しさん:03/03/08 08:45
ゼロで除算の為、あぽーん。

847 :デフォルトの名無しさん:03/03/08 08:46
ついでにdata[sizeof(data)]にもアクセスしてそう
divided by zero と access violation か?

848 :デフォルトの名無しさん:03/03/08 09:01
>>844
data[i] + data[i+1] が、しょっちゅう BYTE の範囲を越えそうなんだが大丈夫か?
あと、無理しないで一時変数使え。

{
 double tmp = (double)data[i] + data[i + 1];
 if(tmp == 0)
  continue;
 else
  ratio = data[i] / tmp;
}

>>847
sizeof(BYTE) が 1 なら、data[sizeof(data)] で access violation は無い。
他の変数領域を壊す事はあるかも知れないし、いずれにせよバグだけど。

849 :デフォルトの名無しさん:03/03/08 09:09
>>848
bus error!=access violation

850 :初心者:03/03/08 09:16
>>847 >>845 >>848
ああぁ、演算子の優先順位をど忘れしてました。
他にも問題点がいっぱ〜いなので修正してみます。 レス感謝。

851 :デフォルトの名無しさん:03/03/08 10:06
整数型同士の演算は最低でもintに1度拡張されるような・・・

852 :デフォルトの名無しさん:03/03/08 10:09
>>851
で?

853 :デフォルトの名無しさん:03/03/08 11:37
>>840
>>821

854 :デフォルトの名無しさん:03/03/08 12:13
>>853
煽りもマジレスもスピードが命。

855 :デフォルトの名無しさん:03/03/08 12:16
もしかして>>808>>802へのレスだったんじゃないか?
for(;!(!(i<lim-1) || !((c=getchar())!='\n') || !(c!=EOF)););
正しくはこうだもんなぁ

856 :デフォルトの名無しさん:03/03/08 12:39
(int)1.0

が1になる事に驚いた

857 :デフォルトの名無しさん:03/03/08 13:45
Cの勉強中なのですが、Cのソースには必ずmain関数があると本に書いてあった
のですが、あるソースコードを見たらmain関数はありませんでした。
関数名の中にmainが入ってるものはありましたが、main()はありません。
これはなぜでしょうか?
main関数がなくてもいいのでしょうか?

858 :デフォルトの名無しさん:03/03/08 13:47
>>857
読んだあるソースはVisual C++のとかじゃないよね?
もしくはWinMainはあるとか。

859 :デフォルトの名無しさん:03/03/08 13:50
>>857
そのソースを載せなさい

860 :857:03/03/08 13:52
>858
即レスありがとうございます。
読んだのはcpu%.exeというCPU使用率をタスクバーにグラフ化して
表示するものです。
ソースは、cpu%.c、cpu%.ico、cpu%src.rcです。
.rcファイルにはアイコンを読み込むだけしか書いてありませんでした。

・・・あ、今ソースよく見たら
WinMainWinMain (HIN)STANCE hInst, HINSTANCE hPrev, LPSTR lpCmd, int nShow)
という関数がありました。これがmain関数と同じ役割なのですか?


861 :デフォルトの名無しさん:03/03/08 13:53
>>860
CによるWIndowsプログラミングの基礎を学びなさい。

862 :デフォルトの名無しさん:03/03/08 13:54
main が無いんですけどレベルで Windowsは早過ぎると思われ。。

863 :857:03/03/08 13:56
>861
すいません・・・。まだCをはじめたばかりで。
独習Cで勉強中です。

864 :デフォルトの名無しさん:03/03/08 13:57
>>863
正直、まずは黒い画面から始めた方が良いです。
つまんないだろうけれど。

865 :デフォルトの名無しさん:03/03/08 14:14
フリースタンディング環境の場合もエントリーポイントはmainとは限らないんだっけ?
ホスト環境ならmainと決まっているけど。

866 :デフォルトの名無しさん:03/03/08 16:08
プリプロセッサ最高!!
俺はあんたの為ならしねるね。

867 :デフォルトの名無しさん:03/03/08 16:18
通常、エントリポイントには main() よりも前のレイヤーが配置されるのだが

868 :デフォルトの名無しさん:03/03/08 21:22
VCなら
mainCRTStartup()
WinMainCRTStartup()

869 :デフォルトの名無しさん:03/03/08 22:04
そして

#pragma comment(linker, "/entry:\"nullpo\"")

870 :デフォルトの名無しさん:03/03/08 23:34
>>869
ミオトサナイゾ!
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/ >>869
 (_フ彡        /

871 :デフォルトの名無しさん:03/03/08 23:42

if(po != NULL && *po == 2)
printf("Hello World");



872 :デフォルトの名無しさん:03/03/08 23:48

・・・・・・・。
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/ >>871
 (_フ彡        /

873 :デフォルトの名無しさん:03/03/09 00:08
#pragma comment(linker, "/entry:\"nullpo\"")
#include <stdio.h>
int nullpo(void) { return puts("ぬるぽ"); }

874 :デフォルトの名無しさん:03/03/09 00:17
if(nu||po)
printf("大変ですね。\n");

875 :デフォルトの名無しさん:03/03/09 00:20
(・∀・)ニヤニヤ

876 :デフォルトの名無しさん:03/03/09 00:30
#define f(x,y,z) (z x y)
main(){
printf("%s",f("ll", "po", "nu"));
}

877 :デフォルトの名無しさん:03/03/09 01:12
( ´_ゝ`)フーン

878 :デフォルトの名無しさん:03/03/09 01:19
% cat foo.c
#include <stdio.h>
#include <string.h>
int main(void)
{
  char buf[512];
  while (fgets(buf, sizeof(buf), stdin))
    if (strstr(buf, "Exception"))
      break;
  *strstr(buf, "」") = '\0';
  puts(strstr(buf, "「") + 2);
  return 0;
}
% gcc foo.c
% w3m -dump 'http://pc.2ch.net/test/read.cgi/prog/1045323654/l50' | ./a.out

879 :デフォルトの名無しさん:03/03/09 14:04
もうC言語は飽きたのか?

880 :デフォルトの名無しさん:03/03/09 17:53

 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄」
―――――――――――――‐┬┘
                        |
       ____.____    |   スレ違い
     |        |        |   |   例外を
     |        | ∧_∧ |   |   投げ捨てろ
     |        |( ´∀`)つ ミ |
     |        |/ ⊃  ノ |   | "ぬるぽ"
        ̄ ̄ ̄ ̄' ̄ ̄ ̄ ̄    |


881 :デフォルトの名無しさん:03/03/09 18:34
キサマ ショウコインメツカ
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/ >>880
 (_フ彡        /

882 :デフォルトの名無しさん:03/03/09 18:46
catch (. . .) {
   ∧_∧
   (´∀` )
  ぬるぽ⊂)
   | | |
   (__(__)
}


883 :デフォルトの名無しさん:03/03/09 20:45
皆さんコンバンワニ。
さっそく質問したいのです。
二次元配列のポインタはどうやって渡せば良いのでしょうか?関数に。
void test(char pt[][256]);
とやっていたんですがこの関数を動かす時には呼び出し元での
配列宣言時にdata[?][256]じゃないと『test(data)とやってます』
エラーおこっちまします、どうしたらいいでしょう・・・
なんか受け取るほうも256とか宣言しなくてバシバシポインタだけ受け取れないでしょうか?

884 :デフォルトの名無しさん:03/03/09 20:47
>>883
**とか。

885 :デフォルトの名無しさん:03/03/09 20:48
>>883
> エラーおこっちまします、
当たり前。ポインタの指すものの大きさが決まっていないとだめだから。


886 :885:03/03/09 20:51
誤解を生むかも。
ポインタの指すものを操作するなら大きさが決まっていないといけない。


887 :デフォルトの名無しさん:03/03/09 20:53
けど文字列はポインタだけ渡してもOKじゃないの・・??
char *pt;
test(pt);みたいにいけるから二次元も行けるのかなー。。と

888 :885:03/03/09 20:55
>>887
文字列はポインタの指すものの大きさ(char一個分)が決まっているじゃない。
(配列としてみた場合、)要素がいくつあるかは問われないけど。

889 :883:03/03/09 20:56
887自分です。
そうなんですか!けれど全く同じじゃないと行けないんでしょうか?
毎回宣言を書き換えないと行けないんでしょうか・・?

890 :885:03/03/09 20:58
>>889
>>884がいいんじゃない?
char *の配列を作る。で、引数の型はchar **にする。
ただし、実際に要素(array[n]が指すもの)を保存する領域は別途用意しないといけない。


891 :890:03/03/09 21:01
要素じゃなくてデータだな(鬱

892 :883:03/03/09 21:02
ふむふ〜む・・!!
さっき**やってみましたが別途にナイと行けないのですか!
気付かなかった〜ヤッテミマス!

893 :デフォルトの名無しさん:03/03/09 21:06
1次元配列と2次元配列を一緒に扱う関数ってどんななのだろう。

894 :893:03/03/09 21:08
ああ2次元配列のサイズを気にせずにという話か。すまそ。

895 :883:03/03/09 21:08
>>887は例です、。。はい。
ちなみにperlのsplit関数を真似たもの作ろうと苦戦しましたん。

896 :デフォルトの名無しさん:03/03/09 21:09
>>895
それ作ったことある。

897 :デフォルトの名無しさん:03/03/09 21:10
>>895
一応止めとく。

にたようなのにstrtokって言うのもある。

898 :デフォルトの名無しさん:03/03/09 21:11
>>897
あれはデリミタ文字列を一文字ずつ分解しちゃうからダメじゃん。

899 :883:03/03/09 21:16
>>896
き。。キニなる・・

900 :デフォルトの名無しさん:03/03/09 21:40
Cygwinでコンパイルした後、それを実行するコマンドを教えて下さい。

901 :デフォルトの名無しさん:03/03/09 21:47
$ gcc bakaaho.c
$ ./a.out

902 :デフォルトの名無しさん:03/03/09 22:05
>>899
その手のはこの板でもときおり見掛ける。

903 :デフォルトの名無しさん:03/03/09 22:50
>>900
% gcc -g hoge.c
% gdb a.exe
(gdb) run


904 :デフォルトの名無しさん:03/03/09 22:56
>>903
最後に rm -rf c/

905 :デフォルトの名無しさん:03/03/10 02:18
C勉強中です。以下のコードをBCC5.5でコンパイルしたのですが、
exeファイルもDOS窓からの呼び出しも、ウインドウが一瞬開くだけで実行できません。
コンパイルエラーは出ないのですが・・・どこがおかしいのでしょう。

#include<stdio.h>

float tempo(float f,float t);
float frame(float t,float p);
float tick(float f,float p);

float tempo(float f,float t){
float p;
float x;
x=3*t/f;
p=x;
return p;
}
float frame(float t,float p){
float f;
float x;
x=3*t/p;
f=x;
return f;
}
float tick(float f,float p){
float t;
float x;
x=p*f/3;
t=x;
return t;
}

906 :続きです:03/03/10 02:18
main()
{
float f,t,p,x;
int a;
while(a<=3){
scanf("%d",&a);
switch(a){
case1:
scanf("%f",&t);t=t;
scanf("%f",&p);p=p;
x=frame(t,p);
printf("frame=%.1f\n",x);
getchar();break;
case2:
scanf("%f",&f);f=f;
scanf("%f",&p);p=p;
x=tick(f,p);
printf("tick=%.1f\n",x);
getchar();break;
case3:
scanf("%f",&f);f=f;
scanf("%f",&t);t=t;
x=tempo(f,t);
printf("tempo=%.2f\n",x);
getchar();break;
}
}
return 0;
}

907 :デフォルトの名無しさん:03/03/10 02:22
> int a;
> while(a<=3)

aを初期化してない。

908 :906:03/03/10 02:32
>>907
ほんっとにありがとうございます。少しだけ賢くなれました。
こんな長いソース晒してすいません(;´Д`)

909 :デフォルトの名無しさん:03/03/10 06:43
>>906
演算は全部doubleでできるように変数も引き数もdoubleにしたほうがいいと思われ。
でないとfloatの精度で計算されたり無用のdouble⇔floatの変換が入ったりしてしまう。


910 :デフォルトの名無しさん:03/03/10 07:08
C言語始めたばかりの入門者です。
質問があります。
下のプログラムを実行すると、
@の結果がなぜか6.0となってしまいます。
Aではちゃんと9.0と表示されるのですが、なぜ@は6.0になってしま
うのでしょうか?

#include <stdio.h>

#define sqr(x)((x) * (x))

int main(void)
{
  doubledx;

  dx = 1.0;
  printf("二乗は%fです。\n", sqr(++dx));    −−−@
  dx = 1.0;
  printf("二乗は%fです。\n", ++dx * ++dx);  −−−A

  return 0;
}

911 :デフォルトの名無しさん:03/03/10 07:11
>>910
マクロの展開された姿を想像してみればわかる。
@はsqr((++dx) * (++dx)) となり、二回もインクリメントしている。

912 :デフォルトの名無しさん:03/03/10 07:12
コードがおかしかったので手直ししました。

#include <stdio.h>

#define sqr(x) ((x) * (x))

int main(void)
{
  double dx;

  dx = 1.0;
  printf("二乗は%fです。\n", sqr(++dx));    −−−@
  dx = 1.0;
  printf("二乗は%fです。\n", ++dx * ++dx);  −−−A

  return 0;
}

913 :デフォルトの名無しさん:03/03/10 07:19
@の部分でも1.0が二回インクリメントされて 3.0 * 3.0で、
結果が9.0にはならないのでしょうか?

914 :デフォルトの名無しさん:03/03/10 07:23
整数型のBではちゃんと9になるんです。

#include <stdio.h>

#define sqr(x) ((x) * (x))

int main(void)
{
  double dx;
  int n;

  dx = 1.0;
  printf("二乗は%fです。\n", sqr(++dx));
  dx = 1.0;
  printf("二乗は%fです。\n", ++dx * ++dx);
  n = 1;
  printf("二乗は%dです。\n", sqr(++n));  −−−B

  return 0;
}

915 :デフォルトの名無しさん:03/03/10 07:24
()ついてるじゃん

916 :デフォルトの名無しさん:03/03/10 07:28
6だろ

917 :デフォルトの名無しさん:03/03/10 07:35
つか ++dx * ++dx なんてことやっちゃいけません。

918 :デフォルトの名無しさん:03/03/10 07:45
>>910
そういうコードを書くな、としか言えない。
あと機種依存文字使うのやめてー.・゚・(ノД`)・゚・.

919 :914:03/03/10 07:53
あくまでも実験のサンプルなので変なプログラムですが、
なんでint型のnは9になるのに、double型のdxは6.0になる理由が
分からないんですよ。

専門一年坊を終了したばかりのボクにはよく分からないです。

920 :デフォルトの名無しさん:03/03/10 07:58
>>919
もう分かったからここで聞くな…。下手したら、また荒れるから。
そもそも、マクロはそういう使い方をするもんじゃない。

921 :914:03/03/10 08:03
>>920
>そもそも、マクロはそういう使い方をするもんじゃない。
分かりました。
理由は無いようですので、それで納得したいと思います。

922 :デフォルトの名無しさん:03/03/10 08:04
>>919
まずは
>>1からたどれる
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
http://www.catnet.ne.jp/kouno/c_faq/c3.html
などを読んでからでも遅くないですよ。

923 :914:03/03/10 08:46
>>922
ありがとうございました。
気合を入れて読んで行こうと思います。

924 :デフォルトの名無しさん:03/03/10 11:21
>>914
神(コンパイラ)の振る舞いを量ってはいけない。
いつインクリメント処理をしようが、それは神の思し召しなのだ。

冗談は置いておいて、評価のタイミングを最適化した結果なので、
最適化オプションの指定の仕方でも違いが出ると思われ。
関数かマクロかでも(当然)振る舞いが異なるので、
引き数に副作用の在るコードは書かないように決めている
コーディング規約もあるくらい。

925 :デフォルトの名無しさん:03/03/10 11:33
>924
で、理由は最適化オプションなんですか?

926 :デフォルトの名無しさん:03/03/10 11:41
Cygwinでコンパイルした後、それを実行するコマンドを教えて下さい。と聞いた者ですが
その答えとして
$ gcc bakaaho.c
$ ./a.out

% gcc -g hoge.c
% gdb a.exe
(gdb) run
などを教えてもらい入力して実行したところ・・・

cpp.exeアプリケーションエラー
"0x61031957"の命令が"0x00000004"のメモリを参照しました。メモリが"written"
になることはできませんでした。

という表示が出てきました。どうすれば実行できるのでしょうか教えて下さい。
あと、このアプリケーションエラーはどういう意味なのですか?

927 :デフォルトの名無しさん:03/03/10 11:46
>>926
どの時点でエラーになったのやら。

928 :デフォルトの名無しさん:03/03/10 11:56
>>925
コンパイラのメーカーに問い合わせろ。

929 :デフォルトの名無しさん:03/03/10 11:58
>>927
$ gcc a.c
これでコンパイルした時点でエラーがでました。


930 :デフォルトの名無しさん:03/03/10 12:01
コンパイラのメーカーの中の人も大変だな

931 :デフォルトの名無しさん:03/03/10 12:04
cpp・・・プリプロセッサがアクセス違反?

932 :デフォルトの名無しさん:03/03/10 12:06
> メモリが"written"になることはできませんでした。

何度見てもこの酷い訳は笑える。

933 :906:03/03/10 12:25
>>909
遅まきながらサンクスです。参考に致します。

934 :929:03/03/10 12:35
ほかにコンパイルしたものを出力するコマンドってあるのですか??


935 :デフォルトの名無しさん:03/03/10 12:37
>>934
コンパイルができてないのに、コンパイルしたものがあるわけないと思うのだが、どうだろう

936 :デフォルトの名無しさん:03/03/10 12:38
./
./
./
./
./

937 :デフォルトの名無しさん:03/03/10 12:42
どうも、926 と 929 の内容がつながらないのだが

938 :デフォルトの名無しさん:03/03/10 12:46
>935
だな

939 :デフォルトの名無しさん:03/03/10 12:49
Cygwinの環境がうまく動いてないだけみたいだがねぇ
手っ取り早いのが再インストールかな(苦笑)

940 :デフォルトの名無しさん:03/03/10 12:52
>934
よくわからんがブンブン飛び回るハエだな

941 :デフォルトの名無しさん:03/03/10 12:57
>>935
しかもコンパイルの段階にすら移っていない(苦笑)

942 :929:03/03/10 13:07
あっ そうだ!!失礼。とにかくどうすれいいですかね??


943 :デフォルトの名無しさん:03/03/10 13:13
>>942
>>939

944 :デフォルトの名無しさん:03/03/10 13:27
「さいたまの野望」というシュミレーションゲーム
つくってくんない?

945 :デフォルトの名無しさん:03/03/10 13:32
>>944
ゲ製へGO

946 :デフォルトの名無しさん:03/03/10 13:32
>>944
スレ違い。板違い。気違い。

947 :デフォルトの名無しさん:03/03/10 13:51
>>945
おう!
>>944
そんなに興味ないか?

948 :デフォルトの名無しさん:03/03/10 14:19
Borland C++ Compiler 5.5.1で>>912の試したんだが、
結果は
>二乗は6.000000です。
>二乗は6.000000です。
>二乗は6です。
9になるほうがおかしいのでは?

949 :訂正:03/03/10 14:20
>>912 -> >>914

950 :デフォルトの名無しさん:03/03/10 14:21
>>948
>>922

951 :なぜotherは表示されないのか:03/03/10 14:21
初心者でも挑戦できる問題でつ
口だけ上級者は解けません

switch(n){
  case 1:break;
  case 2:break;
  case 3:break;
  case 4:break;
    printf("1-4\n");
    break;
  defualt:
    printf("other\n");
    break;
}

952 :デフォルトの名無しさん:03/03/10 14:22
>948
>>922

953 :デフォルトの名無しさん:03/03/10 14:23
>>951
まともなコンパイラなら警告出すと思うけど。
>>952
ケコーン

954 :デフォルトの名無しさん:03/03/10 14:23
>>951
nが1〜4なのだろう。


955 :デフォルトの名無しさん:03/03/10 14:25
手元のgccだと、
・最適化なし
double マクロ 6
double 直書き 6
int   マクロ 6
int   直書き 6
・最適化あり
double マクロ 6
double 直書き 6
int   マクロ 9
int   直書き 9
となった。

956 :デフォルトの名無しさん:03/03/10 14:26
字違ってるぞ。
default

957 :デフォルトの名無しさん:03/03/10 14:27
defualt ( ´,_ゝ`)プッ

958 :デフォルトの名無しさん:03/03/10 14:27
>>954
int n = 5;
にしても表示されなっっかたよ。

959 :デフォルトの名無しさん:03/03/10 14:27
>>951
そもそもコンパイル通らないだろ(defualtがマクロなら話は別だが)

960 :デフォルトの名無しさん:03/03/10 14:28
>>955
いつまでやってるんだよアフォ
散々 >>922 って書いてあるのが見えんのか

961 :959:03/03/10 14:28
あ、すまん。単なるラベルとして見られるか

962 :デフォルトの名無しさん:03/03/10 14:29
>>959
コンパイルは通るよ。
ラベルとして正しい文法だもん。
でも、まともなコンパイラなら使ってないラベルだぞって警告出るもんだが。

963 :959:03/03/10 14:29
goto defualt;
これで表示されるだろ。多分。

964 :デフォルトの名無しさん:03/03/10 14:30
>>953
どんな警告?
出しようがないと思うけどなぁ。

965 :デフォルトの名無しさん:03/03/10 14:32
>   printf("1-4\n");

嘘つきw

966 :デフォルトの名無しさん:03/03/10 14:32
まあdefualtってのはわざとだろうな。
そんなものでひっかかるかよ。

967 :デフォルトの名無しさん:03/03/10 14:33
制御が届きませんって警告も出るな。

968 :デフォルトの名無しさん:03/03/10 14:34
字が違ってたのか…
うちのBorland C++ 5.5.1 コンパイラは
defualt:でも警告無しで通ったよ。
糞コンパイラだね。

969 :デフォルトの名無しさん:03/03/10 14:35
ラベルだってば

970 :デフォルトの名無しさん:03/03/10 14:35
色分け機能つきのエディタ使えよ・・・

971 :デフォルトの名無しさん:03/03/10 14:35
>>968
警告レベルあげた?
予約語を色分け表示してくれるエディタを使えば?

972 :デフォルトの名無しさん:03/03/10 14:35
ぬるぽだってば

973 :デフォルトの名無しさん:03/03/10 14:36
>>972
ガッ

974 :デフォルトの名無しさん:03/03/10 14:37
んで、最適化するとswitch(){}が全部消えてなくなるのな。

975 :デフォルトの名無しさん:03/03/10 14:38
クソ燃料の割には結構燃えてるな

976 :デフォルトの名無しさん:03/03/10 14:38
>>974
冗談のわからん最適化コンパイラだな。

977 :デフォルトの名無しさん:03/03/10 14:38
きちんととやれよ
  ( `Д´)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V・∀・)/ >>973
 (_フ彡        /


978 :デフォルトの名無しさん:03/03/10 14:40
マ板からコピってくるのが面倒なんだよ
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/
 (_フ彡        /  ←>>977

979 :デフォルトの名無しさん:03/03/10 14:42
釣られすぎや。

980 :デフォルトの名無しさん:03/03/10 14:42
例題で身につけるC言語入門
http://pc2.2ch.net/test/read.cgi/tech/1043260605/l50

ここにあるぽ

981 :デフォルトの名無しさん:03/03/10 14:46
>>980
あー、バラしちゃダメだよそこ漏れのお気に入りなのに・・・

982 :デフォルトの名無しさん:03/03/10 14:47
ぬるぬるぬるぽ

って言ったら何回どつかれますか?

983 :デフォルトの名無しさん:03/03/10 14:47
>>980
そこは…異世界ですか…

984 :デフォルトの名無しさん:03/03/10 14:49
          | | ガガガガガッ   .人
  ( ・∀・)   | |       人  <  >__Λ∩
 と    )    | |    人  <  >__Λ∩Д´)/
   Y /ノ    .人   <  >__Λ∩Д´)/   / ←>>982
    / ) .人 <  >__Λ ∩Д´)/   / ←>>982
  _/し' <  >_Λ∩Д´)/   / ←>>982
 (_フ彡 V`Д´)/   / ←>>982
            / ←>>982

985 :ぬるぽ:03/03/10 14:56
誰も立ててなかったんで次スレ

C言語なら、俺に聞け! Part 〈52〉
http://pc2.2ch.net/test/read.cgi/tech/1047275669/l50

つーか 3 誰だよ。

986 :デフォルトの名無しさん:03/03/10 14:58
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/  
 (_フ彡        /  ←>>985

987 :デフォルトの名無しさん:03/03/10 15:06
会社でもプライベートでも、ぬるぽなんて言った事ないな

988 :デフォルトの名無しさん:03/03/10 15:22
メンドクセーナ

  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/  
 (_フ彡        /  ←>>987

989 :デフォルトの名無しさん:03/03/10 15:40
め。ゑ (ま°

990 :デフォルトの名無しさん:03/03/10 16:24
こんなんで千取ったらどうすんだ!

  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/  
 (_フ彡        /  ←>>全員


991 :デフォルトの名無しさん:03/03/10 19:10


992 :デフォルトの名無しさん:03/03/10 19:12


993 :デフォルトの名無しさん:03/03/10 19:22


994 :デフォルトの名無しさん:03/03/10 19:26
サッサト、ウメタテロヤ
  ∧_∧    | |           人
  ( ・∀・)   | | ガガガガッ 人  <  >__Λ∩
 と    )    | |    人  <  >__Λ∩Д´)/
   Y /ノ    .人   <  >__Λ∩Д´)/   / ←>>995
    / ) .人 <  >__Λ ∩Д´)/   / ←>>996
  _/し' <  >_Λ∩Д´)/   / ←>>997
 (_フ彡 V`Д´)/   / ←>>998
            / ←>>999


995 :デフォルトの名無しさん:03/03/10 19:30
質問です
僕は何をききたかったんでしょうか?

996 :デフォルトの名無しさん:03/03/10 19:32


997 :デフォルトの名無しさん:03/03/10 19:32


998 :デフォルトの名無しさん:03/03/10 19:32


999 :デフォルトの名無しさん:03/03/10 19:32
>>995
ぬるぽについて

1000 :デフォルトの名無しさん:03/03/10 19:32


1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

189 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)