C言語なら俺に聞け(入門篇)at TECH
C言語なら俺に聞け(入門篇) - 暇つぶし2ch936:デフォルトの名無しさん
06/07/18 15:01:43
>>932
pはポインタ。p_rootもポインタ。
その値は代入によって同じになっているはず。
つまり、p->c == p_root->c && p->follow->c == p_root->follow->c && p->other->c == p_root->other->c && p->trans == p_root->transということ。

>>933
環境依存でよければ、例えばWindowsならShellExecute()辺りが向いているかもしれない。
しかし、その程度のことも調べられないようなら手を出さない方が無難だとも思う。

>>934
宿題スレにでも逝ってみたら?

937:デフォルトの名無しさん
06/07/18 15:20:11
>>933
ありがとうございます。
これを足がかりにもう少し調べて見ます。

938:デフォルトの名無しさん
06/07/18 15:20:42
>>937>>936あてです。すみません。

939:デフォルトの名無しさん
06/07/18 15:58:56
>>936
次にね
while( p!=NULL ){
p=p->other;
}
って書いてあるんですよ。
このpって何を示してるの?
pのメンバ全部のこと示してる?

ちなみにこれも基本情報の過去問だけど…
URLリンク(www.rs.kagu.sut.ac.jp)
↑ここ

940:デフォルトの名無しさん
06/07/18 17:17:26
>>939
LETTER型のオブジェクト

941:デフォルトの名無しさん
06/07/18 17:17:33
pは構造体先頭を指している。

942:デフォルトの名無しさん
06/07/18 18:03:43
p->cのことでええんかな?
どうも~

943:デフォルトの名無しさん
06/07/18 18:17:53
URLリンク(kansai2channeler.hp.infoseek.co.jp)
Cでシェルを実装し、パイプラインをpipeシステムコールを使ってできる
ようにしたいのですが、3つ以上のコマンドを繋ぐことができません。
どのようにすればよろしいでしょうか?

944:936
06/07/18 19:00:14
>>939
だからpはポインタなんだってばさ。ポイントしている先があるかないかのチェックをしているわけだね。
だから>942は間違い。>941もおかしいな、先頭のみを指しているわけではないのだから。
つーか、ポインタの勉強してきなさいよ。

>>943
コメントもろくにないソースをいきなり読まされる身になってくれ。
つーか、どこが入門レベルなんだか。

945:943
06/07/18 19:30:15
>>944
すいません、実行後に標準入力からコマンドを入力し、そのコマンドをgetcl関数で
スペース毎にでargmv[0],argmv[1]...に格納し、exec_one_command関数で実行。
その中にパイプがあればパイプの処理をするという仕様です。
自分でやったところはexec_one_command内でgetclでできたコマンドからパイプを
見つけてそれをNULLに置き換え、パイプの数に応じてexecvpで実行していくという
ところです。

なんとかして完成させたいのですが、ここじゃ不味いですか('A`)
どこいけばいいでしょうか・・・


946:デフォルトの名無しさん
06/07/18 20:07:28
>>944
すいません
どこでベンキョしてくればいいでしょう
お勧めの本とかページとかあります?

947:デフォルトの名無しさん
06/07/18 20:08:56
void funcB()
{
return;
}

void funcA()
{
funcB();
printf();
}

こういう場合ってprintf()って作動しますか?

948:デフォルトの名無しさん
06/07/18 20:11:12
するよ

949:デフォルトの名無しさん
06/07/18 23:20:14
>>947
funcA()を呼べばね。

>>946
書籍スレにでもどうぞ。

>>945
ここでもいいけど、みての通りここだとレスつかないねぇ。
pipeなんて非標準だし、環境依存OKスレかUnixプログラミングスレ辺りかね。

950:デフォルトの名無しさん
06/07/19 00:36:41
>>944
先頭指してなかったら、キャストもせずに、->演算子使えるわけないじゃん。

951:デフォルトの名無しさん
06/07/19 00:51:03
>>950
アホ?

952:デフォルトの名無しさん
06/07/19 01:02:50
p->otherはstruct letter* だから>>941を間違いってのはアレだよな

953:デフォルトの名無しさん
06/07/19 07:50:03
for(;;)とwhile(1)はどっちがはやいんですかね?

954:デフォルトの名無しさん
06/07/19 08:03:07
>>953
大丈夫、お前よりもよっぽど賢いコンパイラにとって、それらはどちらも同じと解釈されるから気にするな。
#まぁ、前者を推奨するがな。

955:デフォルトの名無しさん
06/07/19 09:10:13
大昔の頭の悪いコンパイラだと for(;;) の方が早いとか聞いた気もするが、
今のコンパイラならどっちでもいいな。

956:デフォルトの名無しさん
06/07/19 09:12:34
(;;)

957:デフォルトの名無しさん
06/07/19 09:52:47
(;o;)

958:デフォルトの名無しさん
06/07/19 10:03:37
(;A;)

959:デフォルトの名無しさん
06/07/19 10:14:25
('A')

960:デフォルトの名無しさん
06/07/19 10:46:03
("ω")

961:デフォルトの名無しさん
06/07/19 11:29:39
( ; _ ; )

962:デフォルトの名無しさん
06/07/19 16:27:56
(T-T)

963:デフォルトの名無しさん
06/07/19 17:36:00
(:-D)

964:デフォルトの名無しさん
06/07/19 17:42:05
:-D~~

965:デフォルトの名無しさん
06/07/19 22:24:10
>>863
void SASSERT_(int(*p)[1]) { }
#define SASSERT(b) SASSERT_((int(*)[(b) ? 1 : -1])0)

は、単に

#define SASSERT(b) ((void)(int(*)[(b) ? 1 : -1])0)

でいいことに今頃気づいた。

966:デフォルトの名無しさん
06/07/21 00:37:15
K&R本の1.5.2 文字のカウント
のプログラムをちゃんと打って、シグウィンでコンパイルしても
実行したら全くカウントしてくれないのですが、
どうしてでしょうか?誰か教えて下さい。

967:デフォルトの名無しさん
06/07/21 02:24:54
>>966
そのプログラムを貼れ。

968:デフォルトの名無しさん
06/07/21 07:27:35
#include <stdio.h>

/* 入力される文字をカウント;第1版 */
main()
{
long nc;

nc = 0;
while (getchar() != EOF)
++nc;
printf("%ld\n", nc);
}

969:デフォルトの名無しさん
06/07/21 08:29:16
入力を終了しないからいつまで経っても表示されないだけに一票。

970:デフォルトの名無しさん
06/07/21 09:21:38
でもこっちはちゃんとできるんですよ。

#include <stdio.h>

/* 入力された文字を複写;第2版 */
main()
{
int c;

while((c = getchar()) != EOF)
putchar(c);
}

971:デフォルトの名無しさん
06/07/21 10:54:10
いやだから・・・。

972:デフォルトの名無しさん
06/07/21 11:50:37
ST.c: 関数 `function2' 内:
FLIST.c:75: 警告: 引数 2 個の `strcat' を渡しますにより、キャストなしで整数からポインタを作りました
:wq!

上記の警告がでました。問題の75行目 strcatは以下です。
strcat(strLine,ctime( &buf.st_mtime ));/*警告箇所*/
st_mtimeはファイル情報を取得する処理【stat関数】のメンバでbufの変数定義は
struct stat buf;、strLine変数はchar strLine[255];としております。
警告を回避するキャストの方法を教えてください。環境はLinux redhatです。

973:デフォルトの名無しさん
06/07/21 12:24:15
>>972
#include <time.h>
してないってことはない?

974:デフォルトの名無しさん
06/07/21 12:40:43
レスありがとうございました。インクルード記述はあります。
プラットホームをUnixからlinuxに移した際に
リコンパイルで警告がでました。

975:デフォルトの名無しさん
06/07/21 13:04:56
>>974
その周辺ロジックだけのプログラム作っても再現する?
こちらでは問題ないのだが。
以下、テストコード。
--
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>

int main(int argc, char ** argv)
{
char strLine[255];
sprintf(strLine, "%s:", argv[1]);
struct stat buf;
stat(argv[1], & buf);
strcat(strLine,ctime(&buf.st_mtime));
puts(strLine);
return 0;
}


976:デフォルトの名無しさん
06/07/21 13:32:38
>>968
それは何か入力後に EOF を渡す必要がある。
これは Cygwin だとどうなっているのか分からないが、
UNIX 系 OS だとデフォルトでは Ctrl+D でできるのが
普通だ。Windows のコマンドプロンプトや MS-DOS
プロンプトでは Ctrl+Z だ。どちらかを入力してみれば
できるんじゃないだろうか。


977:968
06/07/21 15:13:46
>>976
ありがとうございます。Ctrl+Zで出来ました。

978:デフォルトの名無しさん
06/07/21 15:18:18
結局>969じゃん。

979:968
06/07/21 16:38:45
間違えました。Ctrl+Dでした。

>>978
入力を終了しなくても出来そうだな、とか
馬鹿な考えを起こしていたもので...m(_ _)m

980:デフォルトの名無しさん
06/07/22 14:43:42
> 賢いコンパイラにとって、それらはどちらも同じと解釈されるから
while(1) だと警告がでる
for(;;) だとでない

981:デフォルトの名無しさん
06/07/23 12:03:52
プロトタイプ宣言のない関数’printf'の呼び出し(関数main)
という警告文が出るけどなに?

982:デフォルトの名無しさん
06/07/23 12:07:13
>>981
#include <stdio.h>がないとか
printfがpirntfになってたりとかじゃないかな?

983:981
06/07/23 12:10:28
>>982
その辺は確認しているのだけど
 そのへんが問題なのかな?

984:デフォルトの名無しさん
06/07/23 12:33:16
こういう場合、ソースを貼り付けたら一発で分かったりすることも多い。

985:981
06/07/23 12:46:51
#include <sudio.h>

int main( )
{
int n=500+ 150;
printf("%d", n);
return 0;
}
こんな感じなんだけど諸兄の
意見はいかがですかね?

986:デフォルトの名無しさん
06/07/23 12:48:02
int a;
char s[3] = "FF"

a == 255
みたいなイメージで、文字データとして16進の形でcharの配列に入ってるものをint形の変数に代入する方法ってない?


987:デフォルトの名無しさん
06/07/23 12:48:41
1はツンデレ

988:デフォルトの名無しさん
06/07/23 12:52:46
>>985
1行目で既に破綻が

989:デフォルトの名無しさん
06/07/23 12:59:38
>>986
strtol

990:981
06/07/23 13:00:32
>>988
ありがと。いまきずいた(汗

991:986
06/07/23 13:04:15
>>989
さんくす、助かった

992:デフォルトの名無しさん
06/07/23 18:01:34
よくコンパイルまで行ったな。

993:デフォルトの名無しさん
06/07/24 10:40:46
おまいら日本語よりC言語のほうが意思疎通出来るんだな(w

994:デフォルトの名無しさん
06/07/24 10:55:00
次スレは>>995が立てるそうです。

995:デフォルトの名無しさん
06/07/24 18:38:56
次スレはいらない。

996:デフォルトの名無しさん
06/07/25 09:49:42
入らなかったら拡張しろ

997:デフォルトの名無しさん
06/07/25 16:42:16
1000

998:デフォルトの名無しさん
06/07/25 18:11:33
スマン…まさか携帯から立つとは思わなかったんだ…
次スレ
C言語なら俺に聞け(入門篇) ぱぁと2~
スレリンク(tech板)

スレタイについては反省していない

999:デフォルトの名無しさん
06/07/25 18:21:20
>>998


1000:デフォルトの名無しさん
06/07/25 18:29:03
>>998
おまえというやつは・・・乙

1001:1001
Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch