1 :
デフォルトの名無しさん:
まだ三日目くらいですけども、Cを勉強してます。
本を読んで、組み方は分かってきたけれども、本当に組めるのかどうか
分かりませんっ。
「〇×を作ってみろ!」
みたいな演習問題的なのください。
あ、三日目っての忘れないでネ♪
戦略付きじゃんけんとかが手頃じゃろ。
3 :
デフォルトの名無しさん:02/01/28 06:05
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>> C >>>>>>>>>>>>>>>>>>>>>> Haskel
ん?戦略って??
米を食わない奴は非国民。
日本人ならコメを食え。
1はまずはそれからだ。
6 :
デフォルトの名無しさん:02/01/28 06:10
Ruby処理系。
C言語が現存しているのはRubyの処理系を作るためです。
7 :
デフォルトの名無しさん:02/01/28 06:11
Ruby以外の言語は糞
ちなみにRubyを無視する奴はクソ。
日本人ならRubyを一度は使え。
だがここで誉め殺ししてる奴はクソ。
>>1 単語カウントプログラムを作るといいかも。
漏れは最初それを作った。標準入力から文章を読み込んで単語数をカウントするの。
「単語数」が難しけりゃ「文字数」でもいいと思うけど。
…やる気があるならおたがい頑張ろう!
>>9 がんばろーー、ちなみに、全然分からない(〜〜;)
ところで、上のしとたちが言ってることがまるで分からない。。。
>>1 大丈夫。みんな君の熱意がネタだと思って煽ってんのさ。
熱意が本物だとわかればきっと暖かく見守ってくれるよ。
だから、このスレを有効に使おうね。
あぃ(●▽●)ノ
>>12 三日目ってことは、もうhello,Worldぐらいはできるんだろ?
HELLO WORLD くらいはできるって土湯意味?
えっとですね、超基本の本を一冊終わらしたくらいです(^〇^)ノ
>>14 いや、printf("Hello,World!);っていうのが書けるかどうか聞いたんだけど。
Hello,Worldを表示させるだけのプログラムって新しい言語を触り始めたときに
よく使うよ。
超基本の本を終わらしたといわれても、技術レベルがさっぱりわからん。
ポインタや構造体は一通り学んだの?
はぃ、そんな記述も載ってました!
何を言っておられるのか全然分かりませんでしたが。
だから、只今改訂新C言語入門ってな本を買ってきて、
最初からやり直してる次第でありまし。(ーー)
>超基本の本を一冊終わらしたくらいです
読んだだけ、に30デュカーティ
む、そうなのか。。。Σ(ーへー;)
しょっく(;ム;)
まぁとにかくこれでがんばってみますぅ(^^)
「DLL作りたいけどCわかんね〜」って放置して
検索して拾ったDLLやOCXでなんとかしてきたけど
ここ読んで、再挑戦しようって気分になったさ。
関係ないけど
ruby信者って面白いね
もっと笑わせてくれ
>>19 とりあえずその絵文字やめな。
熱意がネタにしか思えない。
すいません…やめます。
#include<stdio.h>
main()
{
char ss[80];
while(gets(ss)!=NULL)
{
puts(ss);
}
}
とゆーふーに書いてあってNULLがどーこー説明してあるんですが、
コンパイラに
'NULL' undefined 言われた…。
何がいけないんでしょ???
>>24 すまんが漏れにもよーわからん。
だけど漏れはコンパイルできたぞ?多分環境の違いかな…?
ただ、while(gets(ss)!=NULL)という式が怖いような気がする。
そんな式初めて見た。
んじゃあ、よぅ分からんので保留ってことで(笑
>>25 それは「配列で確保した分を超えた文を読み込んだとき」
まずいからっていう対処法じゃないんですか?
NULLが定義されていないっていうのとは話が違うような??
#include <stdio.h>
int
main(int argc, char *argv[])
{
char buf[BUFSIZ];
while (fgets(buf, BUFSIZ, stdin) != NULL)
puts(buf);
return 0;
}
>>27 保留、はないだろう。
こういうところをきちんと学んでおかないと。せっかくいろんな人に教えてもらえるんだし。
31 :
デフォルトの名無しさん:02/01/28 07:36
>'NULL' undefined 言われた…。
コンパイラは何?
>コンパイラは何?
えっと、LSIC86ですな。
>>29 #define BUFSIZ 512 /* Buffer size for stdio */
ってことを初めて知りました。藁えねえ…。
なんかこのスレ変だぞ。
Ruby厨のおかげで「終了」が入らなかったためと思われ。
3ヶ月の人と3日の人の
勉強スレ
>>37 明日には3ヶ月1日の人と4日の人の勉強スレになります。
>>32 なんで今時LSI-C86。286でも使ってんの?
40 :
C言語歴9ヶ月:02/01/28 13:50
俺も混ぜてくれ。
9ヶ月も勉強しているんだがわからん。
UNIX上でmath.hをインクルードした時に、gccでコンパイルするときに-lmを
入れないといけないようだが、-lmって何ですか?
それとコマンドラインパラメータで、main(int argc, char *argv[])と書くが、
何でいつもargcとargvなんでしょう…?
「l」ってライブラリを指定するときつけるもんじゃ
なかったっけ?
42 :
デフォルトの名無しさん:02/01/28 14:00
>>40 -lmは知らんが、argcとargvは慣例上のもの。別に変数名として成り立っていればなんでもいい。
ちょうどカウンターに使うiと同じようなもの。
#include <stdio.h>
int main()
{
int a,k=0;
while((a=getchar()) != EOF){
if(a == '{') k++;
else if(a == '}') k--;
}
if(k == 0) puts("正しい対応");
else puts("不定");
}
数学関連のライブラリをリンク、かな…
うろ覚え〜
>40
-lオプションでmという名前のライブラリをリンクするように指示している。
mathライブラリの本体がmに入ってる。
arg count arg value の略 単なる慣習
arg vector
って説も…
わかると思うけど arg はargument ね
むーん。
教えやすい質問はかぶりまくるな、、
>>40 > gccでコンパイルするときに-lmを
> 入れないといけないようだが、-lmって何ですか?
mというライブラリをリンクさせるオプション。
mは数学関連のライブラリ
例えば、libhoge.slライブラリをリンクさせたかったら、
-lhogeとする。
自分もなかなか上達できない口なんでお仲間に、、、
>>2さんのお題は
前回相手が出した手を覚えておいてそれを次の手の推測に使う
とか言う感じでしょうか?
>>51 ですな。傾向分析とかできると面白いかもね。
では、作ってみます。>戦略じゃんけん
囚人のジレンマ シミュレーション について調べると
その手の戦略についていろいろわかるよ。
>>55 しっぺ返しが最強ってことでいいんだっけ?
囚人のジレンマ だとそうらしいね。
じゃんけんは3すくみなのでまた違う結果になるだろう。
>>57 じゃんけんの場合は最適解はありえないか。
やっぱ手のパターンを解析するほかはなし。
オープンなじゃんけんサーバなんてどうかな?意味不明?
59 :
デフォルトの名無しさん:02/01/28 18:25
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define HSIZE 10
/* slist構造体とSLISTを定義する */
typedef struct slist{
char *pkey;
char *pchar;
struct slist *next;
}SLIST;
/* ハッシュテーブル */
SLIST *htable[HSIZE];
/* ハッシュ関数 */
unsigned long Hash(char *pch)
{
/* 種としてアドレス値を与える */
srand((unsigned int)pch);
/* rand()を使って擬似乱数を生成する */
return (unsigned long)(rand() % HSIZE);
}
/* ハッシュテーブルを作成する関数 */
void RegisterHashTable(char *pch1, char *pch2)
{
SLIST *lpnew, *lptemp;l
unsigned long h = Hash(pch1);
/* 新しいリスト要素を生成する */
lpnew = (SLIST *)malloc(sizeof(SLIST));
if(lpnew == NULL){
/* stderrにエラー文字列を出力する */
fprintf(stderr, "メモリエラー\n");
/* exit()関数を使って実行を終了する */
exit(1);
}
/* 新しい要素に値を代入する */
lpnew->pkey = pch1;
lpnew->pchar = pch2;
/* 自分自身とする */
lpnew->next = lpnew;
/* 未登録のケース */
if(htable[h] == NULL)
/* ハッシュテーブルに登録する */
htable[h] = lpnew;
else
{
lptemp = htable[h];
while(lptemp->next != lptemp)
lptemp = lptemp->next; <==これはどういうこと?
/* リンクする */
lptemp->next = lpnew;
}
}
マルチポスト
うぜえ
ちゃんと来いョ・・・・・・
63 :
デフォルトの名無しさん:02/01/28 20:14
o
64 :
デフォルトの名無しさん:02/01/28 20:20
61
電波じゃねーの!
帰ってきた旅人です。
ひまだったら俺の作ったやつみてくれよ
1はどこいった?
彼にも是非使って欲しいくらいだ。
今ならただであげる。でも開発版。
もうすぐ完成。そしたら買ってもらおうか!(ごめんなさ!)
こんばんは。
ちょっと遅くなりましたが「戦略無し」の奴を書いてみました。
でも乱数を発生させるのがわからなくて。
どうやってあげればいいですか?コピペでいいのかな?
>>69 コピペだとまずいからどっかに上げたほうがよくないか?
time.hつかって乱数できました。
もう少し書き直します。
>>70 そうですね。
適当なアプロダ探してきます。
73 :
デフォルトの名無しさん:02/01/29 00:24
>>73 情報ありがとうございます。
こんなんあったんですね、便利だ。
>>74 我が子です。
遠くへ引っ越した友人に見せるのに使ったんですよ。
76 :
デフォルトの名無しさん:02/01/29 01:02
>>75 ifを多用しすぎです。
まとめられるところはまとめてしまいましょう。
意外にまともになってきたな。
今後に期待age
81 :
デフォルトの名無しさん:02/01/29 09:50
>>1 とりあえず本を読んでから始めるんじゃなく
本を読みながら書けといいたい。
82 :
デフォルトの名無しさん:02/01/29 09:53
>>78 if((myhand % 3) == 0) myhand = 0;
else if((myhand % 3) == 1) myhand = 1;
else if((myhand % 3) == 2) myhand = 2;
この辺、無駄だと気づけばもっといい。
>>82 興味深いコードだな。
天然じゃなきゃ書けねー。
84 :
デフォルトの名無しさん:02/01/29 10:16
switch((hand-myhand+3)&3){
case 0:printf("あいこ\n");break;
case 1:printf("おまえ負け\n");break;
case 2:printf("おまえ勝ち\n");break;
}
85 :
デフォルトの名無しさん:02/01/29 15:07
がんばってくれ!!!!!!
86 :
使っちゃダメなのん by 2ch:02/01/29 15:29
getchar()もダメ
gets()もダメ
scanf()なんぞ言うに及ばず
これらがある入門書はクソ。
476 名前:デフォルトの名無しさん 投稿日:01/11/30 10:16
「猫でも分かる〜〜」見れや。
「猫でも分かる云々」にはscanfが紹介されているが
ミスプリなんでーす。
なんでgetchar()がだめやねん。
>>86 理由を示さないと推奨されない理由が分からないと思うけど。
scanf は指定したフォーマットを逸脱した入力に対する
エラー処理が満足にできないのが問題点。
getchar や gets は別にいいと思うが。
f*** 系を使えって?
89 :
デフォルトの名無しさん:02/01/29 15:49
ほかにもbuffer overrun exploitの問題があるよね。
>>88 scanf()はまだ注意深く使えばエラー処理できるが、
gets()は論外。逝ってよし
>>88。
理由としては
「いや、自分は何で悪いか分からないけど、みんなそう言ってるから」
「みんなそう言ってるから」
scanfの悪口はこうして広まった。
そんな!本当はいい人なんですscanfは!
>>90 そういやバッファが溢れるか。
char buf[1024*1024];
これでだいたい問題なし。
>>82-84 アドバイスありがとうございます。
もっと精進します。
で、scanf()はfscanf()に変えたほうがいいんでしょうか?
>>94 (;´Д`)
>>96 自分でscanf()がダメだと思わないならそのままでよし。
「言われたから変えた」では何の意味もないんで。
# 俺は使用する人間を高度に信頼できるなら
# scanf()でぜんぜんおっけーだと思っている
逆に使い方を誤ったときにどうなるか や、
それによって不具合が出た際の対処の方法なんかを学べるかも知れないので
一度はやっておくべきかも知れん。
つってもアレかな、
エラーの判断が難しいかな
OSが弾いてくれるほどのエラーなら一発で分かるけど
お勧めのC言語の著書教えて下さい。
>rand()%3
これって偏らん?
rand()の実装次第。
たとえば、VCのrandは
>>16した結果なので、
そんなに偏らないと思われれる。
105 :
デフォルトの名無しさん:02/01/30 00:30
戦略案
・自分が出した手をGoo,Choki,Par三つの変数に保存(カウント)しておく。
・COMはこの変数を参照して、相手が一番多く出した手に勝てる手を出す。
これだけだと、単純になってしまうので、ある確率でランダム手にするという
のも入れないと面白くないとおもいます。
実装は簡単なので、挑戦してみてください。
戦略案その2
自分が出した前回出した手を変数に保存しておいて、今回相手が出した手を調べて、たとえば前回こっちがパーを出したときは次相手はチョキを出しやすいなどの相手の傾向を把握する。
む???
いつの間にか100 を超えてる…。
>>103 というか、いまどきrand()%nでかたよるようなひどい実装の処理系なんて
無いと思われ。
>>100 いや、%3でいいんだよ。
そのまま教えるのもどうかと思って蟲入れたんだけど・・・。
蟲… 小金井?
自分の手と相手の手の9つの組み合わせのそれぞれで、次に相手が出した手の
多いものに勝つ手を出すようにする、とか。
って書いてたら、CoreWarsやりたくなってきたよ、検索してみよう、っと。
114 :
デフォルトの名無しさん:02/01/31 03:07
限定じゃんけん作ってよー
>>58 最適解は存在するよ。丁度、1/3だ。w
階段じゃんけんのようにGCPで得点の違うゲームだとまた違う結果になるが…。
G…a点、C…b点、P…c点の時の最適解(均衡点)は
Gを出す確率をp、Cを出す確率をqとすると、
対称系ゼロサムゲームだと相手の期待利得が0で均衡点だから
相手Gの時の相手の期待利得=0:aq-c(1-p-q)=0
相手C:-ap+b(1-p-q)=0
相手P:cp-bq=0
の連立方程式を解けば良い。
>>114 同時多人数限定じゃんけんとか面白そうだよね。
さらに、GCPで(もしくは状況で)点数が違い、点数の奪い合いの形で、
初めの持ち点が0になったら、その人は強制終了みたいな。
4人でやってりゃ、1人を集中攻撃したほうがいいのか、
1位の人を裏切れば良いのか、同じ引き分けでも捨てるカードで有利不利があるみたいな。
#include <stdio.h>
int main(void)
{
printf("みなさん、よろしゅう\n");
return 0;
}
118 :
デフォルトの名無しさん:02/02/04 16:55
2次元配列を使ってみればどうかな?
119 :
デフォルトの名無しさん:02/02/04 17:04
121 :
デフォルトの名無しさん:02/02/04 22:07
お前らお前らお前ら!
女の匂いがするとどうしてそんなに親切にするのだ!
アフォかヴァカか。
ふつうならクソスレ扱い間違いないだろうが!
差別はんた〜い!
強いじゃんけんソフトって
あったよね
全然勝てないの
強敵だったなぁ
table[3(相手が前に出した手)][3(それに対する勝数)]とかどう?
>>121 女って誰? ハァハァ(w
>>122 詳細わかりませんか?
>>123 構造体だと手ごとに名前をつけられますから
見た目分かりやすいかな、と思ったんです。
無駄な項目が多いな、とは思っています。
相手が直前に出した手、というのはやっぱり重要でしょうか。
125 :
デフォルトの名無しさん:02/02/05 00:02
>>122 それってこちらが押したキーを見て、それに勝てる手を後出しするんだろ(w
126 :
デフォルトの名無しさん:02/02/05 00:04
>>122 話はそれるけど、じゃんけんで勝つには、相手のひとつ前の手を出すと7割
勝てるらしいね、人間は無意識にグー・チョキ・パーと順番に出してしまう
らしいよ。
相手がひつつ前にグーを出してたら、今回はこっちがグーを出すみたいに。
>>125 それは強い(w
table[3(相手が前に出した手)][3(さらにその前の手)]
って感じでもよくない?こっちも初心者だからよくわからないけど。
そろそろ次に行きたいなぁと思う今日この頃。
オセロ♪
129 :
デフォルトの名無しさん:02/02/05 14:20
アルゴリズム作るならオセロはかなり面倒じゃない?
囲碁でおれをたのしませてくれ
131 :
デフォルトの名無しさん:02/02/05 14:51
>>129 思考の深さをnとすると
その盤面からnターン目までの合計でで一番多く取れるところ。
これくらいのアルゴリズムならそんなに難しくない。
>>131 >>131 序盤は出来るだけ少ししかとらない
各辺から2列目は出来るだけ置かない
辺上は出来るだけとる
くらい考えたほうがいいかなぁ。
オセロまじめに勉強したわけじゃないけど。
>>125 そうだったのか・・・・
滅茶苦茶強いのでビックリしてたんだが。
「こ・・ これはすげえアルゴリズムだ!」とか思ってた 鬱
134 :
デフォルトの名無しさん:02/02/05 15:07
>>133 それってゲーセンのマージャンに
「さすがコンピューターだ、実に強い」
と関心しているようなものですぞ(笑
まさかサンタさんとかも信じてないでしょうね(笑
>序盤は出来るだけ少ししかとらない
そういえばそうだ…。
>>134 幼稚園か小学校のとき近くのスーパーのゲームコーナーにじゃんけんゲームがあって、それにはまってたのを覚えてるよ(;´Д`)
そうか・・・あれは遅出ししてたのか・・・純真な子供心をもてあそぶとは、許せん!
どかーん!
(⌒⌒⌒)
||
/ ̄ ̄ ̄ ̄ ̄\
| ・ U |
| |ι |つ
U||  ̄ ̄ ||
 ̄  ̄
もうおこったぞう
じゃんけんゲームめ!!
>1
健太君は1500円持って295円のガム4つと300円のあめ玉
6つ買いました。さてお釣はいくらですか?
139 :
デフォルトの名無しさん:02/02/05 15:44
>>138 こういう非本質的なことは周囲の方にご相談下さい。
強いジャンケンゲームにワラタ。
141 :
デフォルトの名無しさん:02/02/05 16:02
>>140 意外とジャンケンゲームもコンピュータだかこそ勝率を上げる
ことが可能かもよ。
例えば、熱い日なんかは本能的に熱を発散したいが故に「パー」を
出しやすいとか、あいこが続いたのちのグーは統計的に次の手は、
「チョキ」を出しやすい。とか。
>>141 マルコフ連鎖というものにたいする知識をつけることをお勧めする。
143 :
デフォルトの名無しさん:02/02/05 16:53
>>138 いくらを出すんですか?
それ以前に
所持金が1500円なのですか?
それとも手にもってるのが1500円で財布にはもっと沢山あるんですか。
300円もするのに、6つも欲しくなるあめ玉って、どんなんだろ。
く〜〜〜〜〜〜っ 気になりぃ〜〜〜〜〜
あめ玉はあめ玉でもどこで舐めるのかな
146 :
デフォルトの名無しさん:02/02/05 19:38
「あめを探しているんだが」
「あめなんてどこでも売ってるだろうが」
「どこでも売ってないあめを探している・・・
目に見えないほど小さなあめさ」
scanfだと数字以外を入れたらおかしくなりますね。
getsとatoi使って書き直してます。
xyzzyマンセー。
148 :
デフォルトの名無しさん:02/02/07 14:01
>148
getchはダメなん?
150 :
デフォルトの名無しさん:02/02/07 18:28
>>149 fgetsが正解なのをみんな知らんのか。
バッファーオーバーラン攻撃は今日も続きそうだな・・
fgetsですか、、、調べてみます。
>>138 持ってる金額はお釣りには関係ない
渡した金額を教えてくれ
C言語を覚えたいという奴に戦略じゃんけんプログラムを作らせるのもどうかと思うが?
漏れ忠告はポインタと配列についてアフォな本読んでデタラメ覚えないようにってことかな
>1
お題だけど、文字で、もぐらたたきなんかはどうかな?
環境依存な感じのするkbhit()って関数もあるし。(BCC&VCは持ってるはず。)
エクケープシーケンスで色変えたり、カーソル移動したり、画面消したりできるし、
面白いと思うんだけど。どう?
>153
ANSIエスケープシーケンスはNT系コマンド
プロンプトでは無効なのをご承知か。
>>153 もぐらたたきってどうやんの?
ピュアCで入力(叩く)までの時間に制限つけることって出来たっけ?
>>152 自分はポインタ、配列については
秘伝 C言語問答 ポインタ編 柴田望洋
Cプログラミング専門課程 藤原博文
を読んでる途中です。
前者は第2版ではなく新版なんですけど。
もしかして、「と」本でしょうか、、、
157 :
デフォルトの名無しさん:02/02/08 01:32
>>156 柴田氏は、どうでもよいことから書く癖があるようだ。
昔C++の本を読んで、今そう思う。
プリミティブな概念から覚えるのは、
時間が沢山あって我慢強ければよいのだろうが・・・
158 :
デフォルトの名無しさん:02/02/08 01:40
暇な学生には、望洋氏の本は一度は読んでおくべき本だと思うよ。
ただ、手っ取り早く書けるようになる類の本ではないと思われ。
159 :
デフォルトの名無しさん:02/02/08 09:16
今度の院試でCが出るんだけど、大事なとこって何かな?
多分、構造体、共用体、ポインタ、配列、ループくらい
だと思うんですが・・・。基礎的な問題ばかりなので、普通に
解けるとは思うのですが、何か基本的な重要事項って
ほかにありませんでしたっけ?
どこまでが基本的なのか基準がわからん
161 :
デフォルトの名無しさん:02/02/08 10:28
>>159 それってそれだけで
Cの教科書の半分以上が出題ポイントだと言っているに等しい。
これ以上どうしろというのだ。もっと増やして欲しいのか?
試験でマッシヴなコードや知識が必要となるような問題が出
るはずもないので、というか他の所の勉強をしておいた方が
点になるかもしれません。
関数くらいは基本に入れとこうよ。
まぁ、関数ポインタとダブルポインタと多次元配列は重点的にやっときなさい。
>154
うは。知りませんでした。
お題としては面白いと思ったのだけれど。Win9x系限定か。残念。
154、ありがと。
>155
ピュアCだと厳しいのではないかな。
多分方言な感じの_kbhit()はそこで動作が止まらず、キーのバッファから一文字分を
_getch()に突っ込んで次に行きます。
マシンをいじってると思うので、ANSIの守備外ではないかと思います。
余談だけど、ウエイトにはclockを使うといいよ。
LONGだから、40日くらいで桁があふれちゃうけど、ゲームで40日耐久は無いでしょ。(笑
>>166 162 : /*すまん、適当すぎる・・・いい思考ルーチンを考えてくれ*/
163 : int rnd;
164 : do
165 : {
166 : rnd = rand()%3;
167 : } while(!card_check(pMy,rnd));
本当に適当すぎる(W
限定じゃんけんってカイジでやってたカードの奴ですか?
>>169 そーです、あの限定じゃんけんです。
ルールの変更や、思考ルーチンを考えてね!
カードの買い占めとか同盟を組めたら面白いかも。
ソースは51さんのソースを元にしてるんで、がんばって(結構、手直ししたけど)
system("ls -la");
とかしたあとに標準出力に表示される文字を
プログラム内の変数に入れるのってどうしたらよいですか?
パイプではなくその後の行ですぐその変数を使いたいのです。
ざわざわサウンド搭載
173 :
デフォルトの名無しさん:02/02/10 16:02
>>152 前橋和弥の「C言語ポインタ完全制覇」ってどうですか?
>173
ポインタの理解が完璧じゃないと思う人
は読んでもいいかと
175 :
デフォルトの名無しさん:02/02/10 17:02
>>174 ある程度は信用しても大丈夫ってことですか?
>176
心配なら実際に本屋でみてみぃ
あふ
176→175
178 :
デフォルトの名無しさん:02/02/10 17:20
いや、実際に勝って所有してるんですけど、過激な発言が多いから
本当に信用できるのか不安になったのです。
MAJIこういうスレやめれ。2chに自分専用すれたてんのやめろ。
重くなるわ、ageるやついるわで、迷惑極まりない。
よって終了。
>179
>180
すみません。
例えば、
char string[64];
sprintf(string,"%s",system("perl -e \"print test\""));
printf("%s",string)//stringにperlからの出力[test]が入っている
というのが理想です。
もちろんsystem()の戻り値は実際にはこうではないですが・・・
Apacheとかのウェブサーバが*.cgiファイルをperlなどに渡すときって
system("perl test.cgi >temp.txt");
とかしてそのあとにtemp.txtを開いてクライアントに送ってるのでしょうかね・・?
もっとスマートなやり方がある気がしたので・・
184 :
デフォルトの名無しさん:02/02/11 09:54
,区切りのテキストファイル
fdjlk,fdkaj,fdsajl,fsak,dsaj
の3番目だけを読み出したいというプログラムのコードはどう作ればよいですか?
>>184 なにもせずに、とりあえず質問しようとか思うな。
まずやってみてから聞け
3番目だけを読み出すように作れ
>>183 まさしくそれをするためのパイプだが。
char string[64];
FILE *child = popen("perl -e \"print test\"", "r");
fread(string, 1, sizeof string, child);
pclose(child);
あ、間違えた。つーか>183からのバグだが。
FILE *child = popen("perl -e \"print 'test'\"", "r");
何にも出て来やしねぇと思ったら、testがファイルハンドルと見なされてるじゃ
ねーか。
あと>188じゃ省略してるが、fread()の戻り値はちゃんと見ろよ。
NUL terminateも必要だし。
>188,189
激烈サンクスです。
popenという関数を知らなかったです・・・
1リクエストごとにテンプファイルを作って
でもテンプファイルは重なると上書きされちゃうから、注意しなきゃ・・
とか思ってたところでした。
なんか光明が見えそうです。
192 :
デフォルトの名無しさん:02/02/14 17:44
たまにはage
193 :
デフォルトの名無しさん:02/02/14 17:48
a
age
195 :
デフォルトの名無しさん:02/03/05 16:37
196 :
デフォルトの名無しさん:02/03/18 11:03
保守age
あれ、196もついてる…
198 :
デフォルトの名無しさん:02/03/28 10:44
>>197 君がいない間にジャンケンゲームをがんばってた人がいたから。
進んでんの?
こういうスレで罵倒されずに進行するとは驚いた。
応援してるぞ。
203 :
デフォルトの名無しさん:02/03/28 23:46
>>203 どうもです。
もう少し削れるなーとは思うんですが
自分の技術ではどこをどう削っていいんだか、、、
エディタのいいのも見つからないし。
205 :
デフォルトの名無しさん:02/03/29 10:59
>>205 xyzzy使ってみました。いい感じですね。
エディタはできればEmacsっぽいのがいいので
少しこれでがんばってみます。
今までWin2000のコマンドプロンプトでDOS用の
Memacs使ってたんで、、、
207 :
デフォルトの名無しさん:02/03/30 01:28
保守
209 :
デフォルトの名無しさん:02/03/30 11:43
いや〜ん