掲示板 |
掲示板を置いてみました。ご自由に書き込んで下さい。 ただし、私は根性なしなので、閑古鳥が鳴いたり、荒れてきたと 思ったらとっとと閉鎖する可能性があります。 |
350 | C言語体当たり学習での質問 | コメント数: 2件 |
Linkru | 2002/11/12 (火) 22:43 | |
270ページの下に書いてある「*my_malloc」関数の「*」は どういう意味があるのですか? |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
349 | Re: gccのインストールについて | コメント数: 0件 |
Qo-ge | 2002/11/08 (金) 22:15 | |
RPMパッケージで見つけてインストールしてみたのですが コンパイルで失敗するので、結局OSの再インストールを して解決しました。 どうも、お騒がせしました。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
348 | Re^4: ファイル転送 | コメント数: 0件 |
tos | 2002/11/05 (火) 13:43 | |
> ファイル1個を転送でよいなら HyperTerminal + Cross Cable とか。COM1 にダイレクト 115200bps で 40MB を約1時間(理論値)ですな。複数個だと面倒か。 interlnkなら、他PCのハードディスクを自PCのローカルディスクのように扱えるので、複数ファイルの扱いも楽なんですよね。 > ていうか、今なら CDRW なり DVD に焼いて移動するのが(多重化の意味も含めて)実用的なのでは?大量のデータ転送だけが目的なら HDD を繋ぎかえる (SCSI ID や M/S の設定が必要ですが)のが一番早い。 CDRWとかDVDほしいですよね・・・。 > Q:準備に1分転送に1時間、と準備に10分転送に20分だと、どっちが早いでしょうか。 A:準備に10分転送に20分。 MS-DOSモードでしか動作しないのは、再起動以上にファイル転送している間ほかの作業がまったく出来ないのが、ネックなんです。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
347 | Re: 算術右シフト | コメント数: 0件 |
かずま | 2002/11/05 (火) 13:34 | |
> 環境に依存せずに符号付整数型に対して算術右シフトを > 実現する方法はないのでしょうか? int sra(int x, int n) { return (x >= 0) ? (x >> n) : ~(~x >> n); } |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
346 | Re^3: ファイル転送 | コメント数: 1件 |
Taka | 2002/11/05 (火) 10:51 | |
ファイル1個を転送でよいなら HyperTerminal + Cross Cable とか。COM1 にダイレクト 115200bps で 40MB を約1時間(理論値)ですな。複数個だと面倒か。 ていうか、今なら CDRW なり DVD に焼いて移動するのが(多重化の意味も含めて)実用的なのでは?大量のデータ転送だけが目的なら HDD を繋ぎかえる (SCSI ID や M/S の設定が必要ですが)のが一番早い。 Q:準備に1分転送に1時間、と準備に10分転送に20分だと、どっちが早いでしょうか。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
345 | Re^2: ファイル転送 | コメント数: 2件 |
tos | 2002/11/05 (火) 09:20 | |
> ここで答えを待つよりは、Vectorなどでしらみつぶしに > ツールを漁ってみるほうが、早いような気がしますよ。 Vector等でも探したのですが、今時パラレルとかでファイル転送する人がいないのか 見つけられなかったんですよね。 > > ちなみに、interlnk.exeは40MBのファイル転送で5分ほどかかります。 > 文末にこの文が来るということは、 > 転送時間を縮めたいということが頭にあるのか? と解釈できますが、 > もしそうなら、まずはその辺りの設定について調べてみたほうが良いかと。 転送時間も短ければ短いほうがいいのですが、それよりもMS-DOSモードでの再起動の必要の無いものがほしかったのですが。 もう一度探してみます。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
344 | Re^6: 算術右シフト | コメント数: 0件 |
xiu | 2002/11/05 (火) 01:29 | |
なるほど、納得しました。勉強になります。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
343 | Re^5: 算術右シフト | コメント数: 1件 |
TDa | 2002/11/04 (月) 21:43 | |
> ところで、類似の問題についてですが、(a/b)*b + a%b == aが保証されていて、(a/b)*bの結果が処理系に依存しないのなら、a%bの結果も一意に決まるのでは?と思ったのですが、どうなのでしょうか。 こちらをご参考に。C99では統一されてました。 http://seclan.dll.jp/c99d/c99d05.htm#dt19990607 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
342 | gccのインストールについて | コメント数: 1件 |
Qo-ge | 2002/11/04 (月) 20:09 | |
最近、中古で買ったノートPCにRedHatLinux6.2Jをカスタムインストールで 入れ直した(自動だとHDDの容量がきついため;)のですが、適当にいらなそう な物のチェックはずしてインストールしたら、なんとgccがインストール されていませんでした;; 色々インストール方法を探したのですがCコンパイラは何も入ってないし Linux用のgccバイナリも見つからないためインストールできません。 (RedHatのftpサイトにも6.2j用のrpmパッケージはなく7.1のrpmパッケージで いれようとしたら、rpmでエラーが出てインストールできませんでした) こういった場合どうしたら良いのでしょうか? 宜しくお願いします。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
341 | Re^2: ビットフィールドについて | コメント数: 0件 |
Qo-ge | 2002/11/04 (月) 20:00 | |
> struct { > unsigned int is_keyword : 1; > unsigned int is_extern : 1; > unsigned int is_static : 1; > } flags; > > K&R p.182からの抜粋ですが、こんなのです。 > > > また、それはどのような場面で使うものなのでしょうか? > > まあ、上記のようにフラグを表現するときに使えそうな気はしますが... > たいていのプログラマは、自分でビットマスクをかけてしまうようです。私もそうですが。 > 何故かと言われると、困りますけれど。 なるほど。Xwindowでのプログラミングでもビットマスクというのがありましたね。 なんとなく、わかり始めました。 ありがとうございました。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
340 | Re^4: 算術右シフト | コメント数: 2件 |
xiu | 2002/11/04 (月) 18:21 | |
> 類似の問題が実は % / にも存在します。 (a/b)*b + a%b == a は規格書上保証されていますが、除数または被除数のどちらか片方、または両方が負であるとき、剰余 (%) の符号は処理系定義です。そのため負数の剰余の仕様が問題になるときは ldiv() を使うなどの工夫が必要です。 なるほど。よく分かりました。 負数の右シフトがどう定義されているかは環境に依存しても、ほとんどのコンパイラでは (-1 << n) >> n == -1 が保証される、ということですね? ところで、類似の問題についてですが、(a/b)*b + a%b == aが保証されていて、(a/b)*bの結果が処理系に依存しないのなら、a%bの結果も一意に決まるのでは?と思ったのですが、どうなのでしょうか。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
339 | Re^3: 算術右シフト | コメント数: 3件 |
Taka | 2002/11/04 (月) 15:34 | |
> 負の値のシフトが2^n乗算になればOKです。 右シフトだから除算ね? 何が何でも互換性 and/or 可汎性ということなら、速度を無視して x/(1<<y) でしょう。速度が要求されるのであれば x>>y のままにしておき、「移植の際にはコンパイラの仕様を検討すること」の旨、コメント付加。 # 速度がいらないなら >> など使わないだろうから常に後者かな? > つまり、(-1 << n) >> n == -1 がオーバーフローの起こらない範囲内で常に成り立てばいいのですが。 まともなコンパイラなら、この仕様を採用するでしょう。 類似の問題が実は % / にも存在します。 (a/b)*b + a%b == a は規格書上保証されていますが、除数または被除数のどちらか片方、または両方が負であるとき、剰余 (%) の符号は処理系定義です。そのため負数の剰余の仕様が問題になるときは ldiv() を使うなどの工夫が必要です。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
338 | Re^2: 算術右シフト | コメント数: 4件 |
xiu | 2002/11/04 (月) 13:59 | |
> > 環境に依存せずに符号付整数型に対して算術右シフトを実現する方法はないのでしょうか? > 算術右シフトの定義次第。2の補数表現を使っていない環境で算術右シフトってどう定義しますか?あるはどう動けば適切でしょうか? 負の値のシフトが2^n乗算になればOKです。 つまり、(-1 << n) >> n == -1 がオーバーフローの起こらない範囲内で常に成り立てばいいのですが。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
337 | Re: 算術右シフト | コメント数: 5件 |
Taka | 2002/11/04 (月) 13:28 | |
> 環境に依存せずに符号付整数型に対して算術右シフトを実現する方法はないのでしょうか? 算術右シフトの定義次第。2の補数表現を使っていない環境で算術右シフトってどう定義しますか?あるはどう動けば適切でしょうか? |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
336 | Re^4: C言語 体当たり学習徹底入門についての質問 | コメント数: 0件 |
JK | 2002/11/03 (日) 23:25 | |
> gcc -Wall -c hoge.c これを使って直すことができちゃんとコンパイルして実行すること ができました。 エラーの理由は「*/」と「/*」の書き間違えでした こんな理由で大げさになってしまいすいませんでした。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
335 | 算術右シフト | コメント数: 7件 |
xiu | 2002/11/03 (日) 20:43 | |
こんにちは。Cの右シフトについて質問(相談?)があります。 整数型に対する右シフト演算子>>は、「オペランドが符号無し型であれば論理シフト、符号付型であれば結果は処理系に依存する」だったと思いますが、環境に依存せずに符号付整数型に対して算術右シフトを実現する方法はないのでしょうか? 最初はビット演算で何とかなると思っていたのですが、これが結構難しく、どうしても思いつきません。 もっとも、右シフトが常に論理シフトになる環境というのがあるのかどうかは知りませんけど・・・ |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
334 | Re^2: おバカな質問だとは思いますが | コメント数: 0件 |
ミニえもん | 2002/11/03 (日) 04:27 | |
レプラコーンさん、(ぱ) さん、ありがとうございます。 どちらに返信したらいいのか分からないので、 先に答えてくださったレプラコーンさんの方に返信します。 これは、内容の構造を視覚的にわかりやすくするための ものなんですね。確かに else もつけたほうが、下の 配列の範囲チェックの if と、条件の対象の違いを 分けられてわかりやすいですね。インデント以外にも、 こういう方法でわかりやすく書けるということがわかって よかったです。 プログラムを試してみる環境はないことはないことは ないんですが、HDD が壊れ気味だったり、容量が 100% だったり、少し時間がかかりそうです。(^^;) ともかく二人ともありがとうございます。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
333 | Re^3: C言語 体当たり学習徹底入門についての質問 | コメント数: 1件 |
(ぱ) | PXU00211@nifty.ne.jp | 2002/11/03 (日) 01:14 | |
http://member.nifty.ne.jp/maebashi/ | ||
> これは一応コピーして張り付けたものなのですが > 念のためともう一度その部分を消して書いてみても > 同じ結果でした。どうすればいいのでしょうか うちで、掲示板に貼られたselect_y_or_n関数をコピペしてコンパイルしてみましたが、parse errorは発生しませんでした。 こういう場合はエラーの出ている個所を絞り込むことを考えましょう。まずソースを名前を変えてコピーして、select_y_or_n関数以後を全て削って、-cオプションを付けてコンパイルしてみましょう。使っているのがgccなら、 gcc -Wall -c hoge.c のようになります。-cオプションの意味は、「体当たり学習」のp.301を参照してください。 これでもまだエラーが出るようなら、原因は、select_y_or_nよりも前にあります。そしたらまた1関数削って再コンパイル、エラーが出なくなるまでそれを繰り返せば、エラーの原因がどの関数にあるかが特定できます。 原始的ですが、コンパイルエラーの原因を突き止めるには有効な手法です。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
332 | Re^2: C言語 体当たり学習徹底入門についての質問 | コメント数: 2件 |
JK | 2002/11/02 (土) 23:12 | |
> 元ソースの方では全角スペースを使ったりしていませんか? これは一応コピーして張り付けたものなのですが 念のためともう一度その部分を消して書いてみても 同じ結果でした。どうすればいいのでしょうか |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
331 | Re: ビットフィールドについて | コメント数: 1件 |
(ぱ) | PXU00211@nifty.ne.jp | 2002/11/02 (土) 23:02 | |
http://member.nifty.ne.jp/maebashi/ | ||
> ここのサイトの「諸君私はC言語が好きだ」の所に書いてある 何もそんなところから質問しなくても (^^; > ビットフィールドとは一体どのようなものなのでしょうか? struct { unsigned int is_keyword : 1; unsigned int is_extern : 1; unsigned int is_static : 1; } flags; K&R p.182からの抜粋ですが、こんなのです。 > また、それはどのような場面で使うものなのでしょうか? まあ、上記のようにフラグを表現するときに使えそうな気はしますが... たいていのプログラマは、自分でビットマスクをかけてしまうようです。私もそうですが。 何故かと言われると、困りますけれど。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
330 | Re: C言語 体当たり学習徹底入門についての質問 | コメント数: 3件 |
(ぱ) | PXU00211@nifty.ne.jp | 2002/11/02 (土) 22:53 | |
http://member.nifty.ne.jp/maebashi/ | ||
> book_kanri.c:214:parse error berore 'for' > book_kanri.c:221:braced-group within expression allowed only inside a function > book_kanri.c:221:warning:data definition has no type or storage class > book_kanri.c:211:parse error before '+' parse errorというのは文法エラーですから、たいていは入力ミスなどを意味します。214行目でparse errorということは、それ以後のエラーメッセージはおそらく無視してよいでしょう。 ...で、 > そこのソースは > int select_y_or_n(void) > { > char buf[1024]; > int y_or_n; > > /*YかNかのどちらかを入力してくれるまで、無限ループ*/ > for(;;) { このソースですが、parse errorになるようには見えません。 入力したソースをcopy&pasteで貼り付けていますか? 元ソースの方では全角スペースを使ったりしていませんか? |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
329 | Re: おバカな質問だとは思いますが | コメント数: 0件 |
(ぱ) | PXU00211@nifty.ne.jp | 2002/11/02 (土) 22:49 | |
http://member.nifty.ne.jp/maebashi/ | ||
> 2-2 データの入力の、List 2-5 my_sort4.c なんですが、 > 16 行目から 21 行目でちょっと理解できていないところがあり > ます。18 行目の else if ですが、ただ単に if ではプログラム > に不都合が出るのでしょうか? 「どっちでもいい」です。どちらを取るかはスタイルの問題です。 この場合、EOFが来るのも入力エラーも「並列」のように思えるので、私はelse if にしたのだと思います。この例では「たまたま」breakが 入ってますけど、breakがなければelseがある方が自然なように思えますし。 ところで、Indian Hill のスタイルガイド http://www.gfd-dennou.org/arch/comptech/cstyle/cstyle-ja.htm では、elseを書くなと書いてありますね(「9.ブロック文」の末尾)。 うーん、でも私はやっぱりケースバイケースではないかと。 continueなら、もちろんelseは書きませんし。 >ほんとおバカなんだろうとは思いますがお願いします。 おバカな質問とは思いません。以前、fj.comp.lang.cでバトルしているのを見たこともありますし。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
328 | ビットフィールドについて | コメント数: 2件 |
Qo-ge | 2002/11/02 (土) 22:38 | |
ここのサイトの「諸君私はC言語が好きだ」の所に書いてある ビットフィールドとは一体どのようなものなのでしょうか? また、それはどのような場面で使うものなのでしょうか? 宜しくお願いします。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
327 | 追加 C言語 体当たり学習徹底入門についての質問 | コメント数: 0件 |
JK | 2002/11/02 (土) 17:45 | |
> book_kanri.c:211:parse error before '+' ここは book_kanri.c:221:parse error before '+' の間違いでした 間違いばかりですいません |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
326 | 追加 C言語 体当たり学習徹底入門についての質問 | コメント数: 0件 |
JK | 2002/11/02 (土) 17:20 | |
さっきのソースの部分は249ページのものです |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
325 | C言語 体当たり学習徹底入門についての質問 | コメント数: 6件 |
JK | 2002/11/02 (土) 17:19 | |
僕はC言語 体当たり学習 徹底入門を読んでいるんですが 243PからのList5-12 book_kanri.cで コンパイルしたらエラーが出ました それは book_kanri.c:214:parse error berore 'for' book_kanri.c:221:braced-group within expression allowed only inside a function book_kanri.c:221:warning:data definition has no type or storage class book_kanri.c:211:parse error before '+' と書いてありました。 そこのソースは int select_y_or_n(void) { char buf[1024]; int y_or_n; /*YかNかのどちらかを入力してくれるまで、無限ループ*/ for(;;) { input_string(buf,1024,stdin); /* *大文字と小文字、どちらで入力してもいいように *小文字に正規化する */ y_or_n = tolower(buf[0]); if(y_or_n == 'y'){ return 1; } else if(y_or_n == 'n'){ return 0; } else { fprintf(stderr,"YまたはNを入力してください\n"); } } } です何かわかりましたら教えてくださいお願いします 長い分になってすいませんでした |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
324 | Re: ファイル転送 | コメント数: 3件 |
レプラコーン | 2002/11/02 (土) 11:34 | |
ここで答えを待つよりは、Vectorなどでしらみつぶしに ツールを漁ってみるほうが、早いような気がしますよ。 > ちなみに、interlnk.exeは40MBのファイル転送で5分ほどかかります。 文末にこの文が来るということは、 転送時間を縮めたいということが頭にあるのか? と解釈できますが、 もしそうなら、まずはその辺りの設定について調べてみたほうが良いかと。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
323 | Re: おバカな質問だとは思いますが | コメント数: 1件 |
レプラコーン | 2002/11/02 (土) 11:28 | |
個人的にはなんとか環境を手に入れて、 是非とも「いきばた」してもらいたい気がしますが、 それはさておき。 ちょっと見てみましたが、 確かにelseを外しても結果は同じになりますね。 ただ、こういう感じの場合は関連性のある文を一つの流れにして まとめておいたほうが無難かと思いますよ。 # と、たまに出てきては # 役に立たない答えしか返せない自分が情けなかったり・・・ |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
322 | おバカな質問だとは思いますが | コメント数: 3件 |
ミニえもん | 2002/11/02 (土) 10:34 | |
あの、とっても頭の悪い質問だとは思うんですが、前橋さんの 体当たり入門の本のことで、質問があります。 2-2 データの入力の、List 2-5 my_sort4.c なんですが、 16 行目から 21 行目でちょっと理解できていないところがあり ます。18 行目の else if ですが、ただ単に if ではプログラム に不都合が出るのでしょうか?現在、コンパイルできる環境が ないんで頭の中で流れを追ってみてるんですが、ここで つまづいてしまいました。 こんなことで質問されてもしょうがないでしょうが、何故 else if であるべきのか教えていただけないでしょうか。どこの ページをよく読めと言われたらそこを理解できるようにして みます。ほんとおバカなんだろうとは思いますがお願いします。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
321 | ファイル転送 | コメント数: 4件 |
tos | 2002/10/30 (水) 13:21 | |
今、2台のPC間で大きなサイズのファイル操作をする際、interlnk.exe,intersvr.exe を使用しているのですが、いちいちMS-DOSモードで起動するのが面倒なので、 どなたかWindow's上で動作する、同様のアプリケーションをご存知ありませんでしょうか? (接続ポートは、シリアルまたはパラレルしか使用できないとして) ちなみに、interlnk.exeは40MBのファイル転送で5分ほどかかります。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
320 | Re^5: Cygwinコンパイラについて | コメント数: 0件 |
Taka | 2002/10/29 (火) 08:46 | |
> 本当はscanf()などの入力中に日本語が入力できるのか? デフォルトでは cygwin console から 8bit 文字が入力できないはずです。 ウチでもそうだし。ということで http://www.sixnine.net/cygwin/cygwin-doc/faq/faq_4.html#SEC48 など参照。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
319 | Re^4: Cygwinコンパイラについて | コメント数: 1件 |
たく | 2002/10/28 (月) 17:42 | |
ご説明ありがとうございます。 それと 「日本語入力の仕方がよくわからないんです。」 この部分の説明がとても曖昧ですいませんでした。 本当はscanf()などの入力中に日本語が入力できるのか? でした。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
318 | Re^3: Cygwinコンパイラについて | コメント数: 2件 |
Taka | 2002/10/28 (月) 15:22 | |
> bcc32とはどのようなものなのでしょうか? Borland が提供しているコンパイラです。コマンドライン専用版は無料ということになっています(製品はもちろん有料です) > 日本語入力の仕方がよくわからないんです。 の意味がよくわかりません。 ・コメントに日本語が書けるか? ・printf() に日本語を渡して大丈夫か? ・日本語の変数名が使えるか? ・scanf() 等の入力中に日本語が入力できるか? ・その他 どういう意味でしょうか? 個人的には template の出来がダメダメな bcc32 5.5 はお勧めしません。 まだ cygwin のほうがマシ。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
317 | Re^2: Cygwinコンパイラについて | コメント数: 3件 |
たく | 2002/10/27 (日) 01:27 | |
お答えありがとうございます。 > このページにあるようなツールを使うのが手っ取り早いでしょう。 > ただ、特に理由がないのなら、bcc32あたりに乗り換えた方が、 > とも思います。 bcc32とはどのようなものなのでしょうか? あとCygwinとどう違うのですか? |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
316 | Re: Cygwinコンパイラについて | コメント数: 4件 |
(ぱ) | PXU00211@nifty.ne.jp | 2002/10/27 (日) 00:20 | |
http://member.nifty.ne.jp/maebashi/ | ||
> 僕はCygwinコンパイラを使ってるんですが。 > 日本語入力の仕方がよくわからないんです。 Cygwin付属のgccが、日本語を含む文字列リテラルがあると 誤動作することがある、という問題のことですか? これは、Shift-JISで2バイト目が「\」になるような文字を 使った際にコンパイラが見分けられないことによる問題ですから、 http://urawa.cool.ne.jp/hoehoe_ss/computer/mingw/04.html このページにあるようなツールを使うのが手っ取り早いでしょう。 ただ、特に理由がないのなら、bcc32あたりに乗り換えた方が、 とも思います。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
315 | Cygwinコンパイラについて | コメント数: 5件 |
たく | 2002/10/25 (金) 00:15 | |
僕はCygwinコンパイラを使ってるんですが。 日本語入力の仕方がよくわからないんです。 誰か教えていただけたら幸いです。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
314 | Re: 2001/雑記帳 0013 差別用語(2001/6/30) について | コメント数: 0件 |
(ぱ) | PXU00211@nifty.ne.jp | 2002/10/19 (土) 22:06 | |
http://member.nifty.ne.jp/maebashi/ | ||
> こんにちは、初めまして はじめまして。 > 本題に入りますがブラックジャックのピノコのセリフですが > 秋田文庫の平成10年8/30に出版されたものでは > 「きちがいね」から「変人ね」と変更されておりました。 情報ありがとうございます。なるほど、その手があったか... 「変人」なら、自由意志でやってるんだから差別には当たらないだろう、と。確かにそうかも。 > こうして本来のセリフをを知ると時代の流れと滑稽さを感じさせられますね。 とはいうものの… たとえば昔マンガ喫茶で「スパイダーマン」を読んだとき、校庭に入ってきた変な人を生徒がみんなで「キチガイだ! キチガイだ!」と囃し立てるシーンがあって、これはやっぱりまずいだろうと思ったものです。 言葉の問題じゃなく、意識の問題なんですよね。やっぱり。 > 執筆とホームページ両方期待しておりますのでがんばってくださいね。 ありがとうございます。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
313 | 2001/雑記帳 0013 差別用語(2001/6/30) について | コメント数: 1件 |
偽名 | 2002/10/19 (土) 03:23 | |
こんにちは、初めまして 「C言語体当たり学習徹底入門」を買わせていただきました。 そのためこのページにたどり着けたのは幸運でした。 独特の書き口とプログラマーらしい視点のおかげで 雑記帳なども面白く、概ねほとんどのページを拝見させていただきました。 本題に入りますがブラックジャックのピノコのセリフですが 秋田文庫の平成10年8/30に出版されたものでは 「きちがいね」から「変人ね」と変更されておりました。 こうして本来のセリフをを知ると時代の流れと滑稽さを感じさせられますね。 追伸: 「体当たり〜」は私の友人もたまたま買ってまして、その事実からパソコンについてそれなりに詳しいがプログラミングは初めての人が買っていくのでは?っと思います。 私は現在入門書から卒業した段階でそのレベルにあった本を読んでおりますが 難しいことを教えれば当たり前とはいえ、ちょっと分かり難くジョークもないので 前橋さんの本があればなぁっと思わされてしまいました。 執筆とホームページ両方期待しておりますのでがんばってくださいね。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
312 | Re^4: 集成体型の初期化子について教えてください。 | コメント数: 0件 |
吉村安弘 | sioyaki@msb.biglobe.ne.jp | 2002/10/16 (水) 21:44 | |
情報提供ありがとうございました。 早速試してみたところ、同じメッセージが出力されました。 また、//も独自拡張仕様とは気がつきませんでした。あらためて、Microsoft Visual C++ Standard edition,4.0に添付のC++入門を見てみると、コメント記法として/* */のペア以外にC++では//をサポートしている旨の記述がありました。 今後も、「C言語ポインタ完全制覇」を先ず、読破することを目標にしています。 なにせ、独学なので、今後も理解に苦しむこともあると思います。極力、自力で解決していこうと考えていますが、手に負えないその時は、本掲示板を利用させていただきたくよろしくお願い致します。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
311 | Re^3: 集成体型の初期化子について教えてください。 | コメント数: 1件 |
(ぱ) | PXU00211@nifty.ne.jp | 2002/10/16 (水) 03:28 | |
http://member.nifty.ne.jp/maebashi/ | ||
私も試したのですが、CLで警告レベルを最大にする(コンパイルオプションで/W4を付ける)と、以下の警告が出ますね。 initialize.c(10) : warning C4204: 非標準の拡張機能が使用されています : 定数でない初期化子の集合です。 initialize.c(10) : warning C4204: 非標準の拡張機能が使用されています : 定数でない初期化子の集合です。 規格は、「規格に適合する処理系は最低限こう動かなければならないよ」ということを定めているに過ぎません。多くのコンパイラに、規格外の独自拡張が含まれています。 たとえばこのサンプルプログラムでは//で始まるコメントを使用していますが、これも独自拡張です。 この手のことは、C-FAQ 11章 http://www.catnet.ne.jp/kouno/c_faq/c11.html の、11.32, 11.34, 11.35あたりを参照してください。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
310 | Re^2: 集成体型の初期化子について教えてください。 | コメント数: 2件 |
吉村安弘 | sioyaki@msb.biglobe.ne.jp | 2002/10/15 (火) 19:13 | |
レスありがとうございました。CL -Za Filename.c で、早速試してみたところ、 下記エラーメッセージとなりました。 コンパイラ エラー C2097 初期化が不正に行われています。 また、ページ112、113の補足内容を完全に納得できました。 (実は文法エラーが発生しなかったので、スカラー型、集成体型、変数、定数、初期化子のキーワード組み合わせが頭の中でゴチャゴチャになり、3日間ほど悩んでいたのです。) |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
309 | Re: 集成体型の初期化子について教えてください。 | コメント数: 3件 |
Taka | 2002/10/15 (火) 15:30 | |
> ここら辺はメーカーによって異なるのでしょうか? 御意。 VC++ はデフォルトでは「マイクロソフト独自拡張」許可でコンパイルして しまいます。拡張機能がこのような非定数初期化子を受け付けてしまいます。 cl -Za hoge.c のように独自拡張を禁止すればきっちりエラーになります。 ちなみに C++ では非定数初期化子が許されているのでエラーになりません。 ソースファイルを hoge.cpp のように C++ にしているとだめですよ。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
308 | 集成体型の初期化子について教えてください。 | コメント数: 4件 |
吉村安弘 | sioyaki@msb.biglobe.ne.jp | 2002/10/15 (火) 12:43 | |
初めてお便り致します。私は10年くらい前にはじめてC言語に挑戦してみたのですが 文法が理解できず、結局挫折してしまいました。ところが「C言語ポインタ完全制覇」という本を見つけ、一番悩んだポインタや宣言解読が丁寧に解説してあるため、再挑戦の気持ちが湧き、ただいま実行中です。ところで教えていただきたいのですが、ページ113から114の補足内容で、下記例文(個人作成)中、文番4はOKだが、8は文法エラーとなる旨、記述があります。所有しているコンパイラ(Microsoft C++ Standard Edition,4.0)ではエラーなく翻訳し、実行結果も正常となります。 ここら辺はメーカーによって異なるのでしょうか? 1:#include <stdio.h> 2:#include <math.h> 3:void func1(double angle){ 4: double hoge1 = sin(angle); 5: printf("hoge1...%10.5f\n",hoge1); 6:} 7:void func2(double angle){ 8: double hoge2[] = {sin(angle),cos(angle)}; 9: printf("hoge2[0]...%10.5f hoge2[1]...%\n",hoge2[0],hoge2[1]); 10:} 11:int main(void){ 12: func1(3.14/6.0); //角度 30度の計算 13: func2(3.14/6.0); 14: return 0; 15:} |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
307 | Re^5: fgets()sscanf()について | コメント数: 0件 |
xiu | 2002/10/11 (金) 21:46 | |
あ、もちろん、atoiやatofの前には入力チェックを行う関数を 呼んでいるという前提です。 標準関数ではないですけど、一度作れば何回でも使えますし。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
306 | Re^6: fgets()sscanf()について | コメント数: 0件 |
Ruck | 2002/10/11 (金) 17:48 | |
入力にもいろんな主義主張があるんですねー。 エラーやチェックなど、実際にCで仕事をしている人の話は参考になります。 正直このスレットは半分ほどしか理解できてませんが、鋭意勉強中ですので、頑張ります。 ポインタ大分分かってきました。今までこうゆうことできないかな〜と思っていたことがポインタで実現できたときは嬉しかったです。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
305 | Re^3: fgets()sscanf()について | コメント数: 0件 |
本多 | manybook@msc.biglobe.ne.jp | 2002/10/11 (金) 12:57 | |
> 両方です。文字入力はscanf()を使うのが当たり前だと思っていたので。 それって、当たり前ですか? 私の周りでは、エラー処理などが甘くなるので scanf()は使わないのが「常識」になっていたりします(^^;) もちろん、fgets()とsscanf()の組み合わせはOK. |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
304 | Re^5: fgets()sscanf()について | コメント数: 1件 |
本多 | manybook@msc.biglobe.ne.jp | 2002/10/11 (金) 12:54 | |
> 入力チェックの出来ない(可能性がある)atoi()を使うぐらいなら、sscanf()を使う方が、ずっと良いと思うのですがどうでしょうか? > 私はatoi()は絶対使いません。 私もatoi()は使いませんねぇ。 atoi()だと、その前にisdigit()とか使わなくちゃいけないでしょう? でもsscanf()もあまり使わないですね。 私はstrtol()を愛用してます。 って言うのは、少数派かしら? |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
303 | Re^4: fgets()sscanf()について | コメント数: 3件 |
(ぱ) | PXU00211@nifty.ne.jp | 2002/10/11 (金) 03:05 | |
http://member.nifty.ne.jp/maebashi/ | ||
>でも、私はscanf系は絶対使いませんけどね。 ... > それと、入力データというのはほとんどが、文字列、整数、 > 浮動小数値のいずれかでしょうから、fgets()とatof()・atoi() > の組み合わせで大体こと足りてしまいます。 入力チェックの出来ない(可能性がある)atoi()を使うぐらいなら、sscanf()を使う方が、ずっと良いと思うのですがどうでしょうか? 私はatoi()は絶対使いません。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
302 | Re: fgets()sscanf()について | コメント数: 0件 |
(ぱ) | PXU00211@nifty.ne.jp | 2002/10/11 (金) 02:57 | |
http://member.nifty.ne.jp/maebashi/ | ||
> この関数の意味が全然分からないです。 とりあえず、関数の意味は、何らかのリファレンスを引けばわかると思います。 ポインタ完全制覇にはリファレンスは付いていませんので、関数リファレンスの付いた入門書を購入するか、Webで検索すれば、関数の意味はわかるのではないでしょうか。 たとえば望洋先生のサイトに、こんなページがあります。 http://www.bohyoh.com/CandCPP/C/Library/index.html ところで、Ruckさんは、scanf()とは主に何をする関数だと思っておられますか? scanf()は、getchar()やfgets()に比べてかなり複雑な関数なのですが、中で何をしているのか、ちょっと考えてみてください。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
301 | Re^3: fgets()sscanf()について | コメント数: 4件 |
xiu | 2002/10/11 (金) 00:08 | |
> sscanf()はchar型の配列として受け取るんですね。そこで前にfgets()をつかうことで、受け取れるのはこっからここまでよと書くことで、予期せぬトラブルを防ぐようになっていると考えていいんでしょうか? scanf系は不正な入力に対する処理が甘くなってしまうのです。 特にscanf()、fscanf()は入力ストリームから直接処理するので、 データの正当性をチェックすることもできませんし。 そこで一旦fgetsで文字配列に入れておけば、その後でデータチェックなど も行うことができます。 それと、入力データというのはほとんどが、文字列、整数、 浮動小数値のいずれかでしょうから、fgets()とatof()・atoi() の組み合わせで大体こと足りてしまいます。 別にscanf()を使うなといってるわけではないですけど、 私は好きではないですね。 |
【新規投稿】 【この投稿にリプライ】 【投稿者削除】 |
より新しい記事へ ← 500 件の投稿中 350件目〜301件目を表示 → より前の記事へ |
Copyright(C) 1999 NIFTY Corporation All Rights Reserved. |