[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/09 10:52 / Filesize : 232 KB / Number-of Response : 957
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け(入門篇) Part 18



1 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 06:39:50 ]
C言語の入門者向け解説スレです。
・C++言語はスレ違いです。
・分からない事をなるべく詳しく書いて下さい。
・ソースコードを晒すと答えやすくなるかもしれません。
・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。

前スレ
C言語なら俺に聞け(入門篇) Part 17
pc11.2ch.net/test/read.cgi/tech/1185286631/

教えて欲しいのではなく丸投げしたいならこちらへ
C/C++の宿題を片付けます 94代目
pc11.2ch.net/test/read.cgi/tech/1185452895/

266 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 21:46:38 ]
盲目的に使っちゃいけない、と思い込む方が楽だからな
自分で判断しないから

信号も赤なら渡らない、と決め込んで
青なら安全確認もろくにしないで事故に会うタイプだな

267 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 21:56:23 ]
>>264
余計泣けるじゃないか
虚しさに

268 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 22:01:58 ]
>>265
> なぜか他人が使っている
ないない、お前日本語が理解できないアホだろ。だから議論に入ってくるなっつってんだが?
言葉以前に現状すら理解できんだろ。よく読め、アホ。

>>260
> 他の人に使わせないだろうから良いけどさ。
だから捨てなんだろ?getsを使ったプログラムを他人に使わせるなんて当然迷惑だ。

269 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 22:15:12 ]
>>268
何をそんなに興奮してるんですか?


270 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 22:16:24 ]
自分も意見が言える話題になって嬉しいんだよ

271 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 22:26:26 ]
こんなの拾った

167 名前:デフォルトの名無しさん[sage] 投稿日:2007/08/21(火) 10:24:11
>>145
どこが
> 読みやすさを損なう
のかさっぱり。やっぱ、主観的なことしかいえないだろ?
だからやめろつってんのにw
コンパイルが通ればどっちでも良いんだよ。
むしろ必要性について知らない方がダメ

272 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 22:29:37 ]
拾うな
捨てとけ

273 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 22:33:11 ]
#define mygets(s) fgets((s), sizeof (s), stdin)
sが配列型でなかったら死亡。
C++ならもっと頑張れるが、std::string使えという罠。

274 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 22:38:26 ]
>>167
> むしろ必要性について知らない方がダメ 

もっともらしい理屈がいくつが挙がってるけど、そのスタイルを採用してないプロダクツでも
世間で評価されてるような実績をあげてるってことは、それらは机上の空論ってことだろ。
センスも見識もない人間が頭の中だけで考えたスタイルなんて、そういうことになりがち。

と遅レスしてみる。





275 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 22:50:02 ]
個人的な主観や特定の条件を述べられても結論が出ないんで、話を根本に戻すと

>>221 の質問は
> ではどういう風にすればいいのでしょうか

これに対して十分な領域を確保しとけってのは不適切。
なぜなら、確保した領域を 超えて受け付けることが出来る仕様 になっている以上
getsを使ってたら対処にならないんだよ。
その問題点の解決の対処をすることが >>221 に対して適切な回答になる。
getsに問題があるけど、問題が起こらないように使いましょうって
だからgetsを使うからセキュリティーホールなるものが出来てんだろって報告も無視するし。

276 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 22:52:05 ]
堂々巡りいいよ堂々巡り

277 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 22:52:07 ]
>>274
お前のバカじゃね?理解してなさすぎ。個人的な主観による 読みやすさ っていう基準が
無意味だって話だろ。自分が思う通りに処理が出来るソースがコンパイルに通れば
どういうスタンスやスタイルをとろうが自由だろ。あんたの言う世間で評価って言うのは
括弧を付ける付けないが評価の対象じゃないだろ?アホ杉・・・

278 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 22:53:43 ]
そんな危険な関数が何で備わっているんですか?

279 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 22:54:22 ]
>>274
んじゃ世間で評価されるプログラムのソースに1文のみで括弧が必要ない部分にも
括弧があったらどーすんだよ?くだらねぇ

280 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 22:54:22 ]
それはもちろん使って欲しいから

281 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 22:56:14 ]
>>277
だから「必要性」ってなんの話だよ。

それに理解できてないのはおまえのほうだろ。
括弧つけてるつけてないが評価されてるなんてどこにかいてる?

282 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 22:59:28 ]
>>279
だから、上のほうで挙がってる括弧のをつける理由ってのは机上の空論ってことだよ。

283 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 23:14:49 ]
×煽り合いスレ

284 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 07:56:31 ]
読んでてふと疑問に思ったんだけど、
今時捨てプログラム以外でCUIで書くことってあるの?
getsなんぞそもそも使う場面が思いつかない



285 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 08:02:28 ]
>>284
君はサーバプログラムを知らないようだ。
他にもシェル上から使えるちょっとしたフィルタプログラムは便利だ。

まあ君には必要のないことなのかもしれないがな。

286 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 09:39:29 ]
>シェル上から使えるちょっとしたフィルタプログラム

はスクリプトで書くからなー

287 名前:286 mailto:sage [2007/08/23(木) 09:40:16 ]
あ、でもオレもCUIでCのプログラムは結構書くよ

288 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 09:50:46 ]
CUIエディタ使ってる奴なんかいないと思ってた…

289 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 09:53:35 ]
最近はGUIの定義が変わってきているから
vi みたいなスクリーンエディタもCUIエディタと呼ぶのかも

290 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 09:53:51 ]
vi 使うべ。

291 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 09:55:06 ]
まあ揚げ足はともかく、ApacheやRubyのモジュールをCで書いたりするしな。

292 名前:デフォルト名無しさん mailto:1111111 [2007/08/23(木) 11:15:37 ]
CMAGAZINEのガイドに従ってBorland C++ Compiler 5.5.1の「コンパイルの
実行手順」まで来ました。Hello, World!というソースプログラムを用例通り
に作ってc:\に「cppprog」フォルダを作成しました。

コマンドプロンプトの\system32\cmd.exeの画面で
C:\Documents and Settings>の後にcd \cppprogを入力しenterキーを押すと
「指定されたパスが見つかりません。」と表示されます。なぜか教えてください。

 保存の状態は、C:→Documents and Settings → 大野→ My Documents →
 cppprogフォルダです。 よろしくお願いします。


293 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 11:31:47 ]
cd "C:\Documents and Settings\大野\My Documents\cppprog"

294 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 11:32:42 ]
ユーザーアカウント名?Oh no!



295 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 11:51:34 ]
cd \cppprog
だと、
C:\cppprog
になる
cd cppprog
なら、現在の場所からの相対位置になる

296 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 12:02:09 ]
C言語についてじゃないな、却下。

297 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 12:10:49 ]
最近この手のプログラミング以前の質問多いよな

298 名前:デフォルト名無しさん mailto:1111111 [2007/08/23(木) 12:14:18 ]
>293, 204, 295ありがとう。
 漢字を打ち込む方法を教えてください。

299 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 12:18:02 ]
>>298
ショートカットの作業フォルダに指定するべし

300 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 12:19:07 ]
>>298
Alt+半角/全角

301 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 12:33:59 ]
まあ漢字めんどうならTABキー連打で

302 名前:デフォルト名無しさん mailto:1111111 [2007/08/23(木) 13:06:34 ]
>301 TABキーで
C:\Documents and Settings\All Users>まで進みました。
この後ろへcd \My Documentsを入力しエンターキーを押すと、
「指定されたパスが見つかりません。」が出ました。
 対策を教えてください。

303 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 13:24:33 ]
>>302
>>295

304 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 13:25:06 ]
サーバやモジュールはgetsを使える場面があるのか…
標準入力もまだまだ捨てたものじゃないってことだな
やったことないから勉強になった



305 名前:デフォルト名無しさん mailto:1111111 [2007/08/23(木) 13:34:04 ]
>303
Documents and Settings\All Users>cd cppprogでエンターキーでも
「指定されたパスは見つかりません。」が出ます。

306 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 13:39:53 ]
All Usersじゃなくて、自分のログインネームで
一個上に行くのは、 cd .. な

307 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 13:48:19 ]
コマンドライン初めてなら、それなりのとこ見ながらやったほうがいいよ
そこからコンパイルまでいくのは大変だし、ここはスレ違いになるから
みんな相手してられなくなるぞ

308 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 13:51:00 ]
ルート直下でやればいいじゃん

309 名前:デフォルト名無しさん mailto:1111111 [2007/08/23(木) 14:04:48 ]
>306 当たり前ですが、Borlandに対するログインネームでしょうね。
 「一個上に行く」というのは,>cd ○○○○(ログインネーム)と
 置くことを指しているのでしょうね。

310 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 14:10:13 ]
>>309
これ見て勉強して
ykr414.com/dos/

311 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 14:29:10 ]
OS :Borland

312 名前:311 mailto:sage [2007/08/23(木) 14:31:45 ]
ちょっと質問なんですけど、たとえば
key=value という文字列をsscanfをつかって'='で分解したいんですが

char text[256] = "key=value";
char *key,*value;
sscanf(text,"%s=%s",key,value);

という感じで打ってもできませんでした。だれかご教授おねがいします

313 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 14:34:45 ]
BorlandっていうOSは知らないなぁ

314 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 14:46:44 ]
だーかーらー
カレントディレクトリが C:\Documents and Settings\All Users なんだったら、
その状態で cd cppprog ってやったら
C:\Documents and Settings\All Users\cppprog
へ移動することになるし、cd 大野 ってやったら
C:\Documents and Settings\All Users\大野
へ移動することになる。もちろんそんなディレクトリは存在しないから、エラーが出るわな。

君が移動したいのは C:\Documents and Settings\大野\My Documents\cppprog だろ?
だったら1つ上のディレクトリ(つまり C:\Documents and Settings)に戻ってから、
大野 → My Documents → cppprog へと移動すればいい。
具体的には
cd ..
cd 大野
cd "My Documents"
cd cppprog
と順に移動していけばいい。

だいたいなんでCマガの書いてあるようにやらないんだよ。



315 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 14:46:59 ]
>>312
strtokでも使え

316 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 14:49:51 ]
>>312
OSはおいといて、key と value の領域確保の問題が一つ。
もう一つは、keyが"="まで読み込んでしまうこと。
"%[^=]=%s"とかでどうか

317 名前:デフォルト名無しさん mailto:1111111 [2007/08/23(木) 15:40:26 ]
>314 問題は、漢字のフォルダ名をコマンドプロンプトへ
  打ち込めないことです。フォルダ名をローマ字に変えようと
してもできません。よろしく。

318 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 15:46:12 ]
>>317
コンパイラ起動できるようになるまで、Win板で聞いたら?
とりあえず>>300-301

ちなみに、
C:\Documents and Settings\大野\My Documents
は、エクスプローラーの「マイ ドキュメント」のことだって知ってたか?

319 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 15:57:57 ]
せっかく答えてもらったのに礼は言わない、
それどころかレスをまともに読んですらいない、
救いようがないなこりゃ

320 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 15:59:00 ]
さすがに釣りだろwww

321 名前:デフォルトの名無しさん [2007/08/23(木) 16:05:44 ]
おじゃまします。質問です。

typedef struct{
char a[2];
char b[3];
char c[4];
}AA;

typedef struct{
char e[16];
}BB;

AA aa;
BB bb;

…こんなんで、aaに代入された値をbbに一発で書き込んで、
しかもスペースで埋めてくれる関数とかありませんか?

VBからCに書き直してたら、LSetで一発だったので。。


322 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 16:13:02 ]
関数使わんでもできるけど、一発(スペース埋めるなら2発か)でやるなら
memcpy() と memset() でどうか

323 名前:デフォルト名無しさん mailto:1111111 [2007/08/23(木) 16:18:12 ]
>319 ありがとうございました。cd 大野といわれても漢字をコマンド
プロンプトに打ち込めないみじめさ。嬉しさも中ぐらいなり、秋の風。

324 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 16:21:37 ]
どうしても無理ならマウス使ってコピペ
右クリックかシステムメニューでできる



325 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 16:31:15 ]
Alt+半角/全角 で入力できるぜ

326 名前:321 [2007/08/23(木) 16:35:43 ]
>322
できました。ありがとうございます!

327 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 16:49:57 ]
>>322,326
構造体のパディングは大丈夫なのか?
文字列の連結ではないのか?
いやできたならいいんだけど。

328 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 17:09:58 ]
同じ型が続いてるなら多分パディングはないんじゃないかなあ。

329 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 17:13:26 ]
パディングはcharが並んでるだけだったからあえて書かなかったが
LSetの仕様を考慮しないとね。どっちにしても一発は厳しい

330 名前:デフォルトの名無しさん [2007/08/23(木) 19:09:03 ]
char *func_b( char *str, char ch )
{
char *p;
for( p = str; *p != '\0'; p++ )
if( *p == ch ) return p;
return 0;
}

これと同等の処理を行う標準ライブラリ関数を教えてください お願いします

331 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 19:18:28 ]
strchr?

332 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 19:18:52 ]
strchrかな

333 名前:デフォルト名無しさん mailto:1111111 [2007/08/23(木) 20:06:37 ]
Borland

334 名前:デフォルトの名無しさん [2007/08/23(木) 20:23:42 ]
>>331-333
ありがとうございます
strcharだと
char *func_b( char *str, char ch )
じゃなくて
char *func_b( char *str, int c)
になるんじゃないかと迷ってました



335 名前:デフォルト名無しさん mailto:1111111 [2007/08/23(木) 20:26:41 ]
プログラム実行できました。今日中にできるとは思いませんでした。
Borland C++ Compiler のつぎはTurbo Debuggerです。
ありがとう!ありがとう! >293,294,295,314,318,
325さんAlt + 半角/全角や漢字のコピペが可能だとは驚きでした。

まだいろいろ教えていただくこともあろうと思います。




336 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 20:26:46 ]
>>321

memset(&bb, ' ', sizeof(bb));
bb = aa;

これでいいような気がするんだが、
構造体の要素って順番に並んでるとは規定されてないけどね。

337 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 20:29:48 ]
>>334
char *strchr (const char *s, int c) だよ

338 名前:312 mailto:sage [2007/08/23(木) 20:38:42 ]
レス遅くなってすいません。

>>316の[^=]を使う方法を試したのですがうまくできなかったです。。。
strtokを使うしかないって事ですかね

339 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 20:39:29 ]
ttp://www.bohyoh.com/CandCPP/C/Library/strchr.html

340 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 20:40:21 ]
>>336
>構造体の要素って順番に並んでるとは規定されてないけどね。
またいい加減なことを…ここは入門者が答えるスレ?

341 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 20:41:54 ]
>>336
だからgets肯定派のダンディ坂野は回答しなくて良いよって言っただろ?
ったく、これだから夏厨は・・・

342 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 21:18:41 ]
>bb = aa;

343 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 21:30:38 ]
>>336
規定されてるよ

344 名前:336 mailto:sage [2007/08/23(木) 22:11:17 ]
>>340
>>336
お、ずっと勘違いしてた。やべ
ははははh



345 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 22:29:21 ]
パディングが挟まってる可能性はあるが、順番はそのまま。

346 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 23:08:32 ]
全くの初心者です。質問ですが、

#include <stdio.h>
main()
{
printf("Hello World\n");
}

を、Cygwinでコンパイルしたいのですが、うまくいきません。
何故でしょうか。

347 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 23:10:40 ]
エラーメッセージを読め

348 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 23:30:46 ]
gcc インストールし忘れているに 100 ガバス

349 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 10:08:44 ]
>>338
どううまくできなかったのか。
ちゃんと
*key は key[128]
*value は value[128]
とかにしたか?

350 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 17:50:23 ]
ヘッダーファイルについて質問なのですが、自作ヘッダーにsleepという関数を
作るとします。実際この関数を使おうと#includeしようとしたら同じく#includeした
time.hライブラリーにも同じ関数がある事に気づきました。
同じ名前の関数がある場合、関数の使用優先度って何で決まるんですか?

351 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 17:52:15 ]
>>350
多分リンクした順だけど、普通はリンク時にエラーがでると思うよ

352 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 17:56:37 ]
先にldが見つけたほうではないかな?

ふつうは自作の関数の名前を変えると思うんだが

353 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 17:57:20 ]
そうなんですか。eclipse,CDTで開発してるんですが、予想通りでした。
ありがとうございました。

354 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 00:37:04 ]
>>351
エラーは出ないんじゃないかな。
関数の戻り値なり引数なりの型が違うなら、
コンパイル時にエラーになると思う。
警告かも知れない。



355 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 01:27:57 ]
Japan 1 0 2
Spain 2 0 1
Egypt 1 2 0
のように入力して、数字を左から 3点 0点 1点分と数えて点数の高い順に並べ
Spain, 7
Japan, 5
Egypt, 3
のように出力したい場合二次元配列使うと思うんだけど、データの型はどうすればいい?
全部intで出力のときだけ %s,%d で合ってますか?


356 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 01:44:14 ]
>>355
おれだったら、構造体の一次元配列で処理する。

357 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 11:58:03 ]
struct hoge
{
char name[1024];
int mark;
}

358 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 12:24:47 ]
生のデータを持つために、
struct {
char name[1024];
int mark[3];
}

359 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 17:58:54 ]
a = (struct A *)buf;
b = (struct B *)buf+20;

Bの構造体にbufの20バイト後から取り出したいんだけど
この記述はできない?

360 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 18:07:15 ]
>>359 の記述のままでもおk
でも、>>359 は何か根本的なことが分かっていない気がする

361 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 18:07:53 ]
>>359
bufがchar *などであるなら、
struct B b=*(struct B*)(buf+20)

362 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 18:09:37 ]
>>360
すっとこどっこい。

363 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 18:17:56 ]
offsetとか使いたいのではないのかなあ

364 名前:359 mailto:sage [2007/08/25(土) 22:23:25 ]
一応できた.
でもあんまり理解してないorz



365 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 00:57:24 ]
システムコールってC言語ですか?

366 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 07:15:28 ]
共用体(union)の中で構造体使うと
うまく領域を確保できなくてデータが変になる現象が起きてます。

今は使わない文字配列を共用体の中に書いて
無理やり余裕を持たせて領域確保してるんですが
共用体で使うメモリ領域をうまく確保する方法はありますか?

ちなみに環境はVineLinux4.1でgcc3.3.6コンパイラ使ってます。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<232KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef