トップページ⇒tech
1001コメント289KB

C言語ならアタシに聞きなさい<36>

レス数が1000を超えています。これ以上書き込みはできません。
0001美奈NGNG
C言語のことなら誰よりもわかるから、アタシに聞きなさいよ。
アタシがいないときも優秀な下僕たちが答えてくれるわ☆
でも課題丸投げなら他スレにいってね。

・C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
・comp.lang.c FAQ(英語の原文)
http://www.eskimo.com/~scs/C-faq/top.html
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
推薦図書/必読書のためのスレッド PART6
http://pc3.2ch.net/test/read.cgi/tech/1033207156/

・前スレ <35>
http://pc3.2ch.net/test/read.cgi/tech/1034337064/

コンパイラ、過去ログなどのリンクは>>2-5 あたり
0002デフォルトの名無しさんNGNG
【コンパイラ】
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
0003デフォルトの名無しさんNGNG
>>1
乙!
0004デフォルトの名無しさんNGNG
【その他】
http://www.cmt.phys.kyushu-u.ac.jp/~M.Sakurai/prog/progf.html
http://www.bloodshed.net/index.html

【注意】
Cmachineは一般的なCと挙動が違いすぎるので動作の保証はできません。
まともな処理系を使いましょう。
0005デフォルトの名無しさんNGNG
すみませんが、教えてください。
JFrameでactionListenerを使ってイベントをうまく拾えないのですが、
いい見本となるソースはありませんか?
0006デフォルトの名無しさんNGNG
先生!!

Cのgoto文はどんな時に使うのが好ましいのか教えてください!!
0007デフォルトの名無しさんNGNG
>>6
label: goto label;
0008デフォルトの名無しさんNGNG
>>5
C言語じゃないのでJavaスレに行きなさい。

>>6
乱用は避けるべきですが、例外処理に使うのが適当だと思われます。
00095NGNG
>>8
差別ですか?
教えてくれてもいいと思いますが?
0010デフォルトの名無しさんNGNG
>>5
ありません。

はい、次。
0011デフォルトの名無しさんNGNG
gcc の goto は switch 文の代わりに使ったりできるらしい。
info の 'Labels as Values' にある。
0012デフォルトの名無しさんNGNG
>>8
>>10
( ̄ー ̄)ニヤリ
0013デフォルトの名無しさんNGNG
先生教えてください。
以下のプログラムを書いたのですが、system関数はでかいプログラム
を実行すると、エラーになると本に書いてました。system関数を使わず
にすます方法はないでしょうか(あくまでもCのプログラムとして実行
させたいと思っています)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <process.h>

void main(int argc, char *argv[])
{
char g_name[50] = "tcc -IB:\\include -LB:\\lib -e";


strcat(g_name,argv[1]);
strcat(g_name," ");
strcat(g_name,argv[1]);
strcat(g_name,".c");

system(g_name);

}
コンパイラ tc2.0 dos版(涙)

0014デフォルトの名無しさんNGNG
>>13
DOSの文字数制限の話だろ。
MAKEファイルを作成して、MAKEしる。
0015デフォルトの名無しさんNGNG
>>1
今度はアタシに聞きなさいになったんですか?
0016デフォルトの名無しさんNGNG
sizeof演算子で質問(?)

現在テスト中の環境、CPUが特殊らしくて
char型の実体のアドレスはどこでもいいがshort,int,longは偶数アドレスに
実体が配置されていないとシステムが暴走するとのこと。
こ〜ゆ〜特殊な環境で宣言された以下の構造体があるとします。

typedef struct stdata {
intia;
charca;
charcb;
shortsa;
charcc;
intib;
} STRUCT_DATA;

で、

a = b + sizeof(STRUCT_DATA);

と

a = sizeof(STRUCT_DATA);
a = a + b;

で最終的なa の値が変化するんですが、こゆ事って有り得ることすかね?

あー書いててもわけわかんね。
0017デフォルトの名無しさんNGNG
>>16
あんたのコードがバグってるんじゃないの?
0018デフォルトの名無しさんNGNG
そりゃ、bが違ってるんだろ。
再現する最小限のソース作ってみ。
0019デフォルトの名無しさんNGNG
>>16
それは特殊ってほどでもないと思う。
あと普通のCPUでも、偶数とか8バイトおきにメンバを置くってのは
やってる。(そのほうが効率いいから)
0020デフォルトの名無しさんNGNG
>>15
なんか宿題スレと合体したような感じだね
0021デフォルトの名無しさんNGNG
win+vcでネットワーク使ってみようと思ってるのですが、
gethostbyname((char*)"www.xxxxx.com")
とかくと、必ずNULLを返します。
これを使うには、なにか前に実行しなければならない関数があるのでしょうか?

0022デフォルトの名無しさんNGNG
>>21
WSAStartup()なんじゃない?
サンプルは検索すれば見つかると思う。
0023デフォルトの名無しさんNGNG
はい!動きました。有難うございます。
APIって書いてありますからWinだけかもしれませんね。
0024名無しさん@カラアゲうまうまNGNG
>>23
winsockは別ライブラリになってるから、個別に初期化する必要がある。
0025デフォルトの名無しさんNGNG
配列が0から始まる理由を…。
納得できるご説明お願いします!
0026デフォルトの名無しさんNGNG
array[0] == *(array+0) == *array
0027デフォルトの名無しさんNGNG
#include < stdio.h >

void main ( void )
{
char s[100];

fgets( s,100, stdin );
if ( instr( s, "YASU" ) == 1) {
printf( "%sにYASUは含まれる\n", s );
} else {
printf( "%sにYASUは含まれない\n", s );
}
}

どなたかこの文字列検索のプログラムの作成の仕方を教えて下さい
0028デフォルトの名無しさんNGNG
>>25
仕様
0029デフォルトの名無しさんNGNG
>>27
#define instr(s, t) strstr((s), (t))
0030デフォルトの名無しさんNGNG
>>27
#define instr(a,b) (strstr(a,b)!=NULL)
0031デフォルトの名無しさんNGNG
>>29-30
#include <string.h>
0032デフォルトの名無しさんNGNG
>>25
規格で決まっている。
>>27
1 が読めんのか。
>>29-31
宿題スレじゃないんだから答えないように。
0033デフォルトの名無しさんNGNG
答えても、丸写しした >>27 は先生に「何故こうしたか」を説明できないだろー
0034デフォルトの名無しさんNGNG
>>32
お前どっか行けよ
浮いてる
0035デフォルトの名無しさんNGNG
>>34
> 浮いてる
60cmぐらい?
0036デフォルトの名無しさんNGNG
>>35
ややワロタ。

>>34
前スレで宿題・課題の丸投げウザイってことで >>1 に「丸投げ禁止」が入ったんだから、
>>32は間違ってない。宿題スレに誘導してやればイイんでないの?
0037デフォルトの名無しさんNGNG
    >>32
       ((( (゚∀゚))) アヒャ
         ↑
         │        ウイテル・・・
ウイテル・・・    │    ∧_∧
    ∧∧   60cm   (,,,   )     ウイテル・・・
   (  ,,).  .│    (    )   ∧_∧
   /  |    │    | | |    (,,   )
 〜(__).   ↓    (__)_)    (____)〜
""""""""""""""""""""""""""""""""""""""""""
0038デフォルトの名無しさんNGNG
モナーの身長は 42.86cm か。
003929NGNG
>>32
正しく動くけど、宿題だとしたら間違いなく×をつけられる解答にしてみたつもりだ。
いや、○をもらえるかもしらんが…

どっちにしろ教師の想定していた解答ではないだろうからつっこみが入ると思うぞ。
0040デフォルトの名無しさんNGNG

  おしえてください。
 VC.netでグラフやアニメーションかけますか?
0041デフォルトの名無しさんNGNG
>>40
かけます


はい次
0042デフォルトの名無しさんNGNG

たとえば、http://www.tecnet.or.jp/~tdap3/tentai.html
にある奴Cでもできますか??
0043デフォルトの名無しさんNGNG
できるよ。環境さえ正しければ。
0044デフォルトの名無しさんNGNG
>>43
環境ってVCだけでいいっすか??
0045デフォルトの名無しさんNGNG
ヘッダファイルの書き方って、定石とかありまする?
ぼく、staticな関数のプロトタイプなんか専用のも別に作って、一個のソースファイルに
つきヘッダ2こづつ作ってるんですけど、これってもしかして無駄?
まったく一人で書いてるので、ミュータントみたいかもしれないけど....
0046デフォルトの名無しさんNGNG
>>44
それならOK。
ここはWin以外の環境も含まれるからね。
次から VC or MFC or Win32API 関連スレで聞くといいよ。
0047デフォルトの名無しさんNGNG
>>42
そういうページ好き。
おもしろい。
004844NGNG

ありがとうございました。感謝(・略)感謝
0049海外出張から帰ってきたビル・ジョブスNGNG
+演算子の2つの役割って知ってるか?

ところで、おれのスレタイ変えてんじゃねーよゴルァ!
「おれに聞け!」シリーズなんだけど・・・。
0050デフォルトの名無しさんNGNG
>>45
ユニークな値を#definesしてヘッダーの2重インクルードをしないとか。

#if !defined(structs_H__01234567_89AB_CDEF_0123_456789ABCDEF__INCLUDED_)
#define structs_H__01234567_89AB_CDEF_0123_456789ABCDEF__INCLUDED_
/*ここから俺様の好き放題*/

/*EOF*/
#endif // !defined(structs_H__01234567_89AB_CDEF_0123_456789ABCDEF__INCLUDED_)

0051デフォルトの名無しさんNGNG
「おれ」が居なかったものはしょうがない。
0052デフォルトの名無しさんNGNG
>>45
まったく無駄とまでは思わないけど、「staticなプロトタイプが入ってて
特定のソースからしかincludeしないヘッダ」と「externのプロトタイプが
入ってて複数のソースからincludeするヘッダ」が混在してるのはあまり
好ましくないような。せめて見ただけで区別できるようなファイル名を
付けるとかした方がいいんじゃないかな。
でも漏れなら、staticなプロトタイプはソースの頭に入れてしまうけどね。
0053デフォルトの名無しさんNGNG
>>50
だせ。
0054デフォルトの名無しさんNGNG
>>45
無駄。
0055hiloshiNGNG
最近ようやく、ポインタと文字列について理解してきたので、
某HPにあった「文字列の巡回」というプログラムを作ってみました。
これはたとえば”1234”と入力すると、
1234
4123
3412
2341
と表示されるプログラムです。
試行錯誤しながら作ったんで、みづらいかもしれませんが、

0056デフォルトの名無しさんNGNG
先生教えてください
sock=socket(AF_INET,SOCK_RAW,IPPROTO_TCP);
のようなsockについて,来た接続を切断するにはどうすればいんでしょうか?
0057hiloshiNGNG
#include <stdio.h>
#include <string.h>

/*文字列strを後ろに一つずらして文字列cpにコピー*/
char *copy(char *str,char *cp,int len)
{
int a;
char *s=cp;

cp[0]=str[len-1];

for(a=0;a<len-1;a++)
cp[a+1]=str[a];

while(*str++=*cp++)
;

return(s);
}
0058hiloshiNGNG
int main(void)
{
char str[51];
char cp[51]={0};
int len;
int i;

puts("■文字列の巡回パターン■");
printf("50字以内で文字列を入力してください。\n");

gets(str);

printf("\n%s\n",str); /*入力された文字をそのまま出力*/

len=strlen(str);

printf("%s\n",copy(str,cp,len)); /*一つだけずらしたのを出力*/

for(i=1;i<=len-2;i++)
printf("%s\n",copy(str,cp,len));

return(0);
}
0059hiloshiNGNG
二つ質問があるんですが、

�@charへのポインタ型を返す関数copyの返却値を、
return(cp)とするとうまく表示されません。
自分の認識では、上のcpは文字列cpの先頭要素のアドレス、つまりポインタですから
これをそのまま返しても問題ないように思います。
しかしうまく表示されなかったので、はじめにcpの先頭要素のアドレスを
ポインタsに初期化子として代入して、そのsを返すとうまく表示されました。
これがどうしてかわかりません。
�Aこのソースでプログラムを実行しても特に問題はなかったんですが、
コンパイルの段階で、「警告」と出て、
copy関数内のwhle文の条件式である
「*str++=*cp++」について、
「おそらく不正な代入」と表示されました。
どうしてなんでしょうか?
そもそも、Warningや警告というのはエラーとは違う意味で出てくると思うんですが、
実行してもエラーがなければOKっていう訳にはいかないんですかね?
0060海外出張から帰ってきたビル・ジョブスNGNG
ファイル増えると管理が大変になるよ。
でもファイル分けないと出来ないこともあるね。分かるかな?
0061デフォルトの名無しさんNGNG
>59 文字列の実体はどこにあるの?
0062海外出張から帰ってきたビル・ジョブスNGNG
>59
処理系教えてくれ
0063hiloshiNGNG
!!!
すいません。文字列の実体ってどういうことすか?
例えばvc[3]={1,2,3}だったら
1,2,3のことですか?
0064hiloshiNGNG
>>62
OSがXPで、コンパイラはbccです。
答えになってなかったらすいません。
0065名無しさん@XEmacsNGNG
>>59
ソース見ないと分かんないんだけど、
*str++=*cp++
のところで cp がインクリメントされてるみたいだけど?
それが原因じゃない?>> return(cp) でうまくいかない
0066hiloshiNGNG
>>65
ああああああ!!!
そうっすね。ありがとです。
つまり関数の最後では、cpはヌル文字直前をさしてるってことですかね?
0067デフォルトの名無しさんNGNG
>>56
closeすればいいだろ。
遮断ならshutdown
0068名無しさん@XEmacsNGNG
>>66
おそらくヌル文字直後
0069デフォルトの名無しさんNGNG
だってcp変わってるじゃん
0070海外出張から帰ってきたビル・ジョブスNGNG
>>68
正解(代入後に++されるから)
0071デフォルトの名無しさんNGNG
>>57-59
> �@charへのポインタ型を返す関数copyの返却値を、
> return(cp)とするとうまく表示されません。

はもう回答されてるから

> �Aこのソースでプログラムを実行しても特に問題はなかったんですが、
> コンパイルの段階で、「警告」と出て、
> copy関数内のwhle文の条件式である
> 「*str++=*cp++」について、
> 「おそらく不正な代入」と表示されました。

変数の値を調べるつもりで
  while(i == 10)
とか書くところを
  while(i = 10)
と書いてしまうコーディングミスがなされる事が多いから
57 のコードは問題無い
どうしても警告消したい場合は判定を省略しないで
  while((*str++ = *cp++) != '\0')
とかやってみる
0072名無しさん@XEmacsNGNG
>>59
2の方だけど、条件式を
(*str++=*cp++) != '\0'
にしたら警告消えない?
コンパイラによってはカッコで囲むだけで消えるかも
(*str++=*cp++)
0073hiloshiNGNG
>>68
!!!
えーと、whileの中身は非0である限り実行ですよね?
するとcpがどんどん増えて、いずれヌル文字に・・・
そしたらcpがヌル文字になった時にも
評価式は評価されてるってことすか?

cp++って後置増分演算子だから、評価した後に増えるんですよね?
ヌル文字の時は条件が0になるから評価されないんじゃないんですか?
なんか混乱してきましたw
0074hiloshiNGNG
>>71
>>72
ありがとうございます。
(*str++=*cp++) != 0
で警告が消えましたw
やっぱりきちんと書いた方がいいってことですね。

それにしても皆さんすごすぎて
こんな初歩な質問ですいません。
0075デフォルトの名無しさんNGNG
>>73
> cp++って後置増分演算子だから、評価した後に増えるんですよね?
「条件が0になるかどうかを調べる評価」 *cp++ が終わった後に増えるんですよね?
0076デフォルトの名無しさんNGNG
>>78
66 も 68 も 70 も不正解
while 終了後に cp はぴったり '\0' を指している


ついで

>>58
入力する文字列の桁数が決まっている場合は fgets() がよろし
メッセージ無視して 51 文字以上入力されたら目も当てられない
  char str[51];
  printf("50字以内で文字列を入力してください。\n");
  fgets(str, sizeof(str), stdin);
こんな感じで
入門書だと説明してくれないのね
007776NGNG
未来を指してしまった
78 ではなく 73
0078デフォルトの名無しさんNGNG
うんこ
007976NGNG
>>76
> 66 も 68 も 70 も不正解
> while 終了後に cp はぴったり '\0' を指している

嘘書いた
68 と 70 が正解ごめんね
0080デフォルトの名無しさんNGNG
>78
入力するうんこの桁数が決まっている場合は fgets() がよろし
メッセージ無視して 51 文字以上入力されたら目も当てられない
char str[51];
printf("50字以内でうんこを入力してください。\n");
fgets(str, sizeof(str), stdin);
こんな感じで
入門書だと説明してくれないのね
0081hiloshiNGNG
ぐわあああ
いったいどれが本当なんだああ
わからなくなってしまいました。
どなかたか、完璧な回答をお願いできないでしょうか・・・

>>76
fgetsなんてはじめて聞いたんですが、
引数のstrは文字列ですよね
sizeofがstrの長さで、
stdinっていうのはなんですか?

ちなみに今、柴田望洋さんの「定本 明解C言語」っていう本で勉強してるんですが
この本どうなんすか?
オレ的にはちょっとむずかしいかなってw
バカなだけかもしれないんですけど・・・
0082デフォルトの名無しさんNGNG
まあ、チャレンジャーじゃないかぎり、
うんこをたくさん入れないと思われ。
0083hiloshiNGNG
あ、そうか。
あくまで評価式ですもんね。
評価するだけして、空文になってますけど
その後は無視してって事か!!
あー、ちょっとわかった気がします。
0084海外出張から帰ってきたビル・ジョブスNGNG
>>76
まぁ処理系依存なんだからそんなにアツクなるなよ。
おれの作ったコンパイラはノンオプティマイズ時は\0の次を指すよ。
0085デフォルトの名無しさんNGNG
\1
0086hiloshiNGNG
もう一個ぶっちゃけちゃうとわかんないのがあるんですけど。
こんなの載せちゃまずいでしょうが、勉強だと思って勘弁してください。
http://rina.jpn.ph/~rance/c_language/check.html#1
ここにある問題1の設問3、Aをやってみたんですが、できません!
2段目以降が全部Dになるんです。
0087hiloshiNGNG
#include <stdio.h>

void turn(char *a,char *b,char *c,char *d)
{
char *x,*y,*z;

while(*x++=*a++)
;
while(*y++=*b++)
;
while(*z++=*c++)
;

while(*a++=*d++)
;
while(*b++=*x++)
;
while(*c++=*y++)
;
while(*d++=*z++)
;
}
0088hiloshiNGNG
int main(void)
{
char anny[]="A";
char bany[]="B";
char chery[]="C";
char domy[]="D";
int i;

puts(" anny bany chery domy");
puts("------------------------");

printf(" %s %s %s %s\n",anny,bany,chery,domy);

for(i=1;i<=4;i++)
{
turn(anny,bany,chery,domy);
printf(" %s %s %s %s\n",anny,bany,chery,domy);
}

return(0);
}
0089デフォルトの名無しさんNGNG
また低金利か
0090デフォルトの名無しさんNGNG
勉強だと思って勘弁しろ、なんて言うんだねぇ...勉強になターヨ
0091海外出張から帰ってきたビル・ジョブスNGNG
>>hiloshi
ところで、C言語における"真"と"偽"の各値を知ってる?
0092デフォルトの名無しさんNGNG
真 !!0
偽 !0
009392NGNG
やっちまった!
0094hiloshiNGNG
>>91
う・・・
正直いってよく意味が・・・
真は非0で偽は0じゃないんですか?
0095海外出張から帰ってきたビル・ジョブスNGNG
>>hiloshi
正解です。
0096hiloshiNGNG
おお
なんか合ってたw
勉強した成果がちょっとだけ出ました。
こんな問題いいですね。
プログラムばっか作ってたら、もっと根本のとこを忘れがちになるんで。
0097名無しさん@XEmacsNGNG
>>87
間違い過ぎ
0098hiloshiNGNG
>>97
どこがどう間違ってるんですか?
それすらもわからない・・・
ああ・・・
0099lets thinking!NGNG
#include <stdio.h>

int main(void){
char anny[]="A";
char bany[]="B";
char chery[]="C";
char domy[]="D";
int i;

puts(" anny bany chery domy");
puts("------------------------");

printf(" %5s %5s %5s %5s\n",anny,bany,chery,domy);

for(i=1;i<=4;i++)
{
char *tmp;
*tmp=*anny;
*anny=*bany;
*bany=*chery;
*chery=*domy;
*domy=*tmp;
printf(" %5s %5s %5s %5s\n",anny,bany,chery,domy);
}
return 0;
}
010056NGNG
>>67
デーモンの裏でパケット監視させてるんで
close,shutdownはできなかたんですよ.
相手を拒否できますか?
iptableやipchainはナシの方向で.
010129NGNG
>>98
ヒントを出してあげよう。
問題ではanny〜domyはchar型の変数となっている。
で、代入する値は'A'〜'D'となっている。"A"〜"D"とは違う。

それともう一つ。ポインタは何かを指すものということは知ってるよな?
>>87のx,y,zはどこを指してるんだ?
0102デフォルトの名無しさんNGNG
次の話題に移っているようだが掘り起こし

>>81
fgets() は gets() とほぼ同じだけど、バッファサイズと読み出し場所を指定でき
stdin は簡単に説明すると gets() がデータ呼んでくるのと同じモノ
知らないキーワードを示されたら Web 検索しるようにしると吉
自分で調べられるようにならないと実力伸びていかないとか

>>80
漏れの文体が気に入ったのね
でも &nbsp; 抜けてるし
0103デフォルトの名無しさんNGNG
charanny = 'A';
charbany = 'B';
charchery = 'C';
chardomy = 'D';

これでいーじゃん。
なぜ文字列?
0104デフォルトの名無しさんNGNG
>>103
問題からすると、これでいいじゃなくて、
そうでなければならない。
0105デフォルトの名無しさんNGNG
>>103

しまたタブが…

char anny = 'A';
char bany = 'B';
char chery = 'C';
char domy = 'D';

ですな。
0106デフォルトの名無しさんNGNG
>>105
ニヤリ
0107海外出張から帰ってきたビル・ジョブスNGNG
>>hiloshi
いっぱい間違えて、禿げそうになるまで考えると、君の未来は明るいぞ!
しかし、結果だけにとらわれず、格好良くてセンスの良いコード記述を心がけよう!

例えば、
for (cp[0] = str[len-1], i = 1;・・・
のように、解釈ブロックを意識して記述すると読むほうも楽で、後のデバッグも楽。
0108デフォルトの名無しさんNGNG
もしかして >>57-59 でやろうとしてた事って、

  size_t l, i, j;
  const char * const s = "The C Language*";
  puts("==== Q2_B ====");
  l = strlen(s);
  for(i = 0; i < 10; i++)
  {
    for(j = 0; j < l; j++)
      putchar(s[(j + l - i) % l]);
    putchar('\n');
  }

じゃないか?
0109hiloshiNGNG
うぅ。すいません。
いくつか質問があるんですが。

>>101
’と”の違いがまだよく分かってないみたいです。
どういう風に認識すればいいんでしょうか?
>>103
これも今までは
char vc[]="ABC";
のように”でくくっていたのに
’でいいのは文字列じゃなくて文字定数だからですか?
putcharみたいな。
>>107
すいません。解釈ブロックって一体・・・?
0110デフォルトの名無しさんNGNG
>>109
char a[] = "abc"; は、char a[] = {'a', 'b', 'c', '\0'}; と同じ。
0111デフォルトの名無しさんNGNG
それと、char a[] = "abc"; と char *p = "abc"; の "abc"は決定的に
意味が違うので注意。
0112デフォルトの名無しさんNGNG
>>111
どう違うのでしょうか、先生。
0113デフォルトの名無しさんNGNG
ここに詳しい解説が
http://homepage2.nifty.com/rohizuka/ka/pa_003_a.htm
0114デフォルトの名無しさんNGNG
"abc"の置かれる場所が違うってことでは?
0115112NGNG
>>114
それはa[]の方は変更してはいけないところに置かれていて、*pの方は変更してもいいところにおかれているということでしょうか?
0116デフォルトの名無しさんNGNG
>>115
逆でしょう。
aはスタックに、pはどこだっけコード領域?、
組み込み系だとROMを指すことになるかと。
0117デフォルトの名無しさんNGNG
ごめんね漏れも 107 の後半は何を言ってるのかわからない
0118デフォルトの名無しさんNGNG
コードセグメントだねぇ。
0119デフォルトの名無しさんNGNG
>>115
> それはa[]の方は変更してはいけないところに置かれていて、*pの方は変更してもいいところにおかれているということでしょうか?

これは、反対だよ。a[] の内容は、変更してもいいけど、p の指す先は、変更しちゃダメ。

>>111 は、多分こういうことを言いたいんだと思うけど、"abc" と書くと、char a[] = "abc"; の "abc" 自体は、ROM エリアに置かれたりする (開始時に a[] にコピーする) から余計混乱する。
0120デフォルトの名無しさんNGNG
>>119
いや、別に混乱はしないでしょ
int a[]={1,2,3};
と本質的にはかわらないよ
0121デフォルトの名無しさんNGNG
char a[] = "abc"; は"abc"の方がa[]にコピーされるが、
char *p = "abc"; は pが"abc"を指すように初期化される、って
事かな?

"abc"自体には差はないかも。
0122デフォルトの名無しさんNGNG
>>120
> int a[]={1,2,3};

で、char *p = "abc"; みたいな書き方できる ?
0123デフォルトの名無しさんNGNG
>>121
コピーされるというかabcの各文字+\0で初期化されるってだけ。
char a[]={'a','b','c','\0'};と書くのは面倒だから。
0124デフォルトの名無しさんNGNG
>>123
(何を言いたいんだろう...。そんなことは、みんなわかっていると思うけど...。)
0125デフォルトの名無しさんNGNG
>>124
コピーされると言うと、メモリー上のどこかに"abc"をおいてそれをa[]にコピーするみたいじゃない。
0126デフォルトの名無しさんNGNG
>>125
void foo()
{
 char a[] = "abc";
 ...
}

なら、そうするのが普通だと思うけど。
0127デフォルトの名無しさんNGNG
char *p = "abc";
char a[] = "abc";

pには"abc"の先頭アドレスが代入されてて、
配列aには文字列"abc"が代入されてるってことですよね。
aは配列aの先頭アドレスを指すから
printf("%s\n",a);でも
printf("%s\n",p);でも
abc
って表示されるけど。
aもpもアドレスを表してるから。


・・。あってますか?
0128海外出張から帰ってきたビル・ジョブスNGNG
>すいません。解釈ブロックって一体・・・?
処理の集約をしたほうが良いということ。
例のcp[]に対しての前処理なら、for文に含めたほうがスッキリしませんか?
0129デフォルトの名無しさんNGNG
>>127
概ね正解。でも、何か気持ち悪い。
0130デフォルトの名無しさんNGNG
>>126

gccで="abc"と={'a','b','c','\0'}の時のソースをコンパイルして吐き出したアセンブラのコードを見てみた。

同じことやっているのにコードが変わるんだねぇ。
="..."だと必ず最後に\0がつくけれど、={...}だとつくとは限らないから同じコードを吐くようにするのは面倒なのかな。
0131130NGNG
必ずじゃないな。
配列の要素数と文字列の長さが同じなら\0はつかないな。
0132デフォルトの名無しさんNGNG
#define _PATH_SERVICES "c:\windows\system32\drivers\services"
windowsでこういう書き方ってできないですね
どーかけばいいのでしょうか
0133デフォルトの名無しさんNGNG
>127

文字列の長さを変えて、sizeof(p)とsizeof(a)の値を比べてみると勉強になるよ。
0134デフォルトの名無しさんNGNG
>>132
\は\\と書いて\をエスケープ
0135デフォルトの名無しさんNGNG
>>132
\→\\

ってこと?
0136デフォルトの名無しさんNGNG
そっか。char a[] = "abc"; の初期化の方法は実装依存なんだ。
a[]に'a','b','c','\0'を一文字ずつ代入しても別にいいから。

"abc"をコピーするとばかり思ってたアタシは頭固かったです。
0137デフォルトの名無しさんNGNG
>132
\→\\
0138デフォルトの名無しさんNGNG
テキストエディタってみなさん何使ってますか?
フリーのでいいのがあったらぜひ教えてください
0139デフォルトの名無しさんNGNG
メモ帳
0140おばかです。NGNG
 1以上100以下の整数値を入力せよというメッセージを表示し、整数値nを読み、その値を添字
とするフィボナッチ数列の値anを計算し、表示し、終了するプログラムを書け。
 ただし、a1=1,a2=1,an+2=an+1+anである。範囲以外の数値を読み込んだら、1以上100以下の整数値を
入力せよというメッセージを表示して入力を待つ。

このプログラムをできるだけ簡単なプログラムで教えてください。(for,while,if程度のプログラムで)
0141デフォルトの名無しさんNGNG
>>138
copy con
0142デフォルトの名無しさんNGNG
>>140
この程度自分で出来ないなら今行ってる学校やめて違う道を探した方が良い。
0143デフォルトの名無しさんNGNG
#include <stdio.h>
int main(){
int piyo;
hoge:
printf("→");
scanf("%d",&piyo);
if(piyo < 1 || piyo > 100) goto hoge;
else if(piyo == 1)puts("a1=1");
else if(piyo == 2)puts("a2=1");
else if(piyo == 3)puts("a3=2");
else if(piyo == 4)puts("a4=3");
...

}
0144デフォルトの名無しさんNGNG
>>1バストはいくつぐらいですか?
ヒップは?顔は誰似?
0145デフォルトの名無しさんNGNG
>>143
switch禁止みたいだからif-elseを使ったの?
0146デフォルトの名無しさんNGNG
>>1
ネカマ歴は?
住んでる場所は?
ワキガですか?
彼女いない歴は?
お母さんとできてますか?
0147デフォルトの名無しさんNGNG
http://gooo.jp
無料掲示板
無料レンタル掲示板
0148143NGNG
素人だからswitchの存在忘れてたの。
0149デフォルトの名無しさんNGNG
結局 char a[] = "abc" は char a[] = { 'A', 'B', 'C', '\0' } に同じ
これは丸暗記するしか無し

で

char a[] = "abc";  /* Statement1 */
char *p = "abc";   /* Statement2 */

となるとイメージ的にはこんな感じ
罫線多少ズレるけど許して
                    a[0]  a[1]  a[2]  a[3]
                   .┏━━┯━━┯━━┯━━┓
                  a┃char.│char.│char│char.┃
                   .┗━━┷━━┷━━┷━━┛
        Statement2 が    ↑  ↑  ↑  ↑Statement1 が実行
        実行されるたびに  .│  │  │  │されるたびにコピー
. ┏━━━┓アドレスをセット ┌──┬──┬──┬──┐
p┃char * ┃←──────.│ 'A' │ 'B' │ 'C' │ '\0'.│←どっかの変更不能
. ┗━━━┛           └──┴──┴──┴──┘ なメモリ領域
                    p[0]  p[1]  p[2]  p[3]

なお、a と p はそれぞれ配列型 (char[4]) とポインタ型 (char*) で全然別の型
でも関数とかに渡すと配列型はその最初の要素へのポインタ型 (この場合は
char*) に成り下がる

>>133
> sizeof(p)とsizeof(a)
この場合はどっちも 4 だからよくわからない
0150デフォルトの名無しさんNGNG
>>149

133 :デフォルトの名無しさん :02/10/23 01:09
>127

文字列の長さを変えて、sizeof(p)とsizeof(a)の値を比べてみると勉強になるよ。
~~~~~~~~~~~~~~~~~~~~
0151デフォルトの名無しさんNGNG
つまりこの辺
http://www.catnet.ne.jp/kouno/c_faq/c6.html

1 のリンクは役に立ってないのかな
0152149NGNG
>>150 すまぬ
0153デフォルトの名無しさんNGNG
>>149
ポインタが4バイトと決めてかかるなよぉ〜
0154デフォルトの名無しさんNGNG
>>140
0はいけないってことは、数列の最初の要素の添え字は1?
0155149NGNG
>>153 すまぬ
0156デフォルトの名無しさんNGNG
>>140
つくってみた。
俺の環境(4byte integer)だと添え字が100になる前にオーバーフロウしたよ(泣
0157デフォルトの名無しさんNGNG
>>149
やっとわかりますた。
ありが�d。
0158デフォルトの名無しさんNGNG
>>140

int main()
{
int i, j = 1, k, f1 = 1, f2 = 1, fib;

while (1) {
scanf("%d", &i);
if (1 <= i && i <= 100) break;
puts("1以上100以下で入力して下さい");
}

j = 1; k = i;
while (k--) {
if (j == 1 || j == 2)
fib = 1;
else {
fib = f1 + f2;
f2 = f1;
f1 = fib;
}
j++;
}

printf("fib(%d) = %d\n", i, fib);

return 0;
}
0159デフォルトの名無しさんNGNG
>>156、>>158
32-bit の unsigned でも、46 あたりでもう Overflow するね
double でも 80 あたりから精度が足りなくなる模様
64-bit unsigned でも 93 で Overflow
問題作った人の気が知れない
0160143NGNG
俺の勝ちですか?

とかいってみるテスト。
0161デフォルトの名無しさんNGNG
>>160
確かにオーバーフロウの可能性はないな(ワラ
でもプログラム作るときに自分で計算しないといけないぞー
電卓も桁が足りなくて使えないと思うし。
0162デフォルトの名無しさんNGNG
>>160
ソースをちゃんと完成させてから勝ち誇りなさい
0163おばかです。NGNG
みなさんありがとう!!
0164デフォルトの名無しさんNGNG
>>160
あなたのプログラムに "A" と入力していいですか?
0165デフォルトの名無しさんNGNG
ダサいかも知らんがゾーン 10 進でやった。

#define ZONE_DECIMAL_MAX_COLUMNS 32
#define ZONE_DECIMAL_MAX_BUF (ZONE_DECIMAL_MAX_COLUMNS + 1)

void zd_SetUInt(char *DecValue, unsigned long NewValue)
{
  char buf[ZONE_DECIMAL_MAX_BUF];
  size_t l, i = 0;
  l = sprintf(buf, "%u", NewValue);
  memset(DecValue, 0x00, ZONE_DECIMAL_MAX_BUF);
  for(; ; )
  {
    l--;
    DecValue[i] = buf[l] - '0';
    if(!l)
      break;
  }
}
0166デフォルトの名無しさんNGNG
void zd_Add(char *DecValue, char *AddValue)
{
  size_t i;
  char Carry = 0;
  for(i = 0; i < ZONE_DECIMAL_MAX_COLUMNS; i++)
  {
    if((DecValue[i] += AddValue[i] + Carry) >= 10)
    {
      DecValue[i] -= 10;
      Carry = 1;
    }
    else
      Carry = 0;
  }
}
0167デフォルトの名無しさんNGNG
char *zd_ToAscii(char *DecValue, char *StrBuf)
{
  size_t i = ZONE_DECIMAL_MAX_COLUMNS;
  size_t j = 0;
  for(; ; )
  {
    if(DecValue[i])
    {
      for(; ; )
      {
        StrBuf[j++] = DecValue[i] + '0';
        if(!i)
          break;
        i--;
      }
      StrBuf[j] = '\0';
      break;
    }
    if(!i)
      break;
    i--;
  }
  return StrBuf;
}
0168デフォルトの名無しさんNGNG
int main(void)
{
  char prev2[ZONE_DECIMAL_MAX_BUF], prev1[ZONE_DECIMAL_MAX_BUF], cur[ZONE_DECIMAL_MAX_BUF];
  int i;
  char buf[ZONE_DECIMAL_MAX_BUF + 1];

  zd_SetUInt(prev2, 1);
  zd_SetUInt(prev1, 2);

  printf("1:1 2:2 ");
  for(i = 3; i <= 100; i++)
  {
    memcpy(cur, prev2, ZONE_DECIMAL_MAX_BUF);
    zd_Add(cur, prev1);
    memcpy(prev2, prev1, ZONE_DECIMAL_MAX_BUF);
    memcpy(prev1, cur, ZONE_DECIMAL_MAX_BUF);
    printf("%d:%s ", i, zd_ToAscii(cur, buf));
  }
  getchar();

  return(0);
}
0169デフォルトの名無しさんNGNG
結果
1:1 2:2 3:3 4:5 5:8 6:13 7:21 8:34 9:55 10:89 11:144 12:233 13:377
14:610 15:987 16:1597 17:2584 18:4181 19:6765 20:10946 21:17711 22:28657
23:46368 24:75025 25:121393 26:196418 27:317811 28:514229 29:832040
30:1346269 31:2178309 32:3524578 33:5702887 34:9227465 35:14930352
36:24157817 37:39088169 38:63245986 39:102334155 40:165580141
41:267914296 42:433494437 43:701408733 44:1134903170 45:1836311903
46:2971215073 47:4807526976 48:7778742049 49:12586269025 50:20365011074
51:32951280099 52:53316291173 53:86267571272 54:139583862445
55:225851433717 56:365435296162 57:591286729879 58:956722026041
59:1548008755920 60:2504730781961 61:4052739537881 62:6557470319842
63:10610209857723 64:17167680177565 65:27777890035288 66:44945570212853
67:72723460248141 68:117669030460994 69:190392490709135 70:308061521170129
71:498454011879264 72:806515533049393 73:1304969544928657
74:2111485077978050 75:3416454622906707 76:5527939700884757
77:8944394323791464 78:14472334024676221 79:23416728348467685
80:37889062373143906 81:61305790721611591 82:99194853094755497
83:160500643816367088 84:259695496911122585 85:420196140727489673
86:679891637638612258 87:1100087778366101931 88:1779979416004714189
89:2880067194370816120 90:4660046610375530309 91:7540113804746346429
92:12200160415121876738 93:19740274219868223167 94:31940434634990099905
95:51680708854858323072 96:83621143489848422977 97:135301852344706746049
98:218922995834555169026 99:354224848179261915075 100:573147844013817084101
0170デフォルトの名無しさんNGNG
573147844013817084101をコピーして、
電卓起動して、
貼りつけて、
log押したら21桁と言うことが分かりました。
0171デフォルトの名無しさんNGNG
>>165
(・∀・)イイ!

ゾーンなんて久しぶりに聞いたな…。
それ自体は別にダサくないと思うけど、インスタンスが配列むき出しなのはダサい。
0172デフォルトの名無しさんNGNG
じゃあ俺はパックでつくろう。
0173165NGNG
>>170
10 進で 21 桁という事は、2 進で何 bit あれば表現できる?

>>171
> インスタンスが配列むき出しなのはダサい
C++ ならともかく、C では仕方ないと思う。
それとも、struct で包めという話?
確かにそれなら、代入に memcpy() でなく = が使えるが。

ちなみに 167 は 全域 0x00 の DecValue を受けるとマズいな。
StrBuf[j] = '\0'; は return の直前だった。

実際、 169 + 143 が最強かもな。
0174デフォルトの名無しさんNGNG
宿題の解答にはなりえないという意味でもいいな>>143
0175デフォルトの名無しさんNGNG
>>173

えっと、 312か。
0176173NGNG
>>174
ああ、まさしく。

>>175
pow(2, 70) == 1180591620717411303424 で 22 桁。
これで 10 進で 21 桁を十分に表現できる。
普通に計算するなら 128-bit の int が必要という事だな。

pow(2, 312) は・・・とんでもない数字になるぞ。
8343699359066055009355553539724812947666814540455674882605631280555545803830627148527195652096
実に 95 桁、無量大数 pow(10, 88) をゆうに超える。
0177デフォルトの名無しさんNGNG
掘り起こし

>>60
> ファイル増えると管理が大変になるよ。
> でもファイル分けないと出来ないこともあるね。分かるかな?

ごめんねこれ分からない
分割コンパイルとかそういう事じゃないよね
0178デフォルトの名無しさんNGNG
char TEST(*temp)
{
char *a;
char *b;

a = GetA(temp);
b = GetB(temp);

}
とやると、aとbの値が同じになるんですが、
どうすればいいでしょうか?
0179デフォルトの名無しさんNGNG
>>178
何を言いたいのか全然わからない。
0180デフォルトの名無しさんNGNG
>>178

何がやりたいか、まず それから書け。
0181デフォルトの名無しさんNGNG
>>178
1から勉強しなおせ
0182デフォルトの名無しさんNGNG
>>178
GetA() と GetB() の内容が示されないと何とも言えないし
もし両者が同じ挙動なら a と b が同じになるのも納得いくかも
でも最初の 「char TEST(*temp)」 って仮引数の型が指定されてなくて
コンパイルエラーになると思うし
そういえば return も無いね
0183デフォルトの名無しさんNGNG
>>178
C より先に質問の仕方を考えろ。
0184デフォルトの名無しさんNGNG
学校で使用するためC++6.0をインストしたのはいいのですが、
どうしてもコンパイルすると

「ツールを開始できません。
この操作を正しく終了しました。
ツールを開始できません。
'vcspawn.exe' 実行時のエラーです。 ビルドを実行できませんでした。

test.obj - エラー 1、警告 0」

が、出てしまいます・・・。コンパイルしたプログラムはサンプルからとったので
間違えているはずがないのですが・・・
何が原因だか教えてくれませんか?
0185デフォルトの名無しさんNGNG
>>184
割れ厨は氏ね
0186デフォルトの名無しさんNGNG
>>184
インストールの仕方が間違ってる。
マニュアルを熟読すべし。
0187デフォルトの名無しさんNGNG
剰余の計算を
long i=x/y;
res=x-i*y;
のようにやっているのをライブラリ関数のfmod(x,y)としたら
急に動作が遅くなってしまいました。
どのような理由が考えられるのでしょうか。
0188184NGNG
すいません・・・たしかに友達から借りたやつです・・・

やっぱり製品版買わないと正式に動かないのですか?
0189デフォルトの名無しさんNGNG
>>188
馬鹿者。
動く動かないの問題ではなく、それは犯罪だ。
0190178NGNG
>>182
char TEST(char *temp)
でした。。
returnは書き込むときに消えちゃったみたいです、

GetA()とGetB()の処理は全然違います。
でも、aの値がbの値になってしまうんです。
b = GetB(temp);
を消すと、aの値は正常に出るんですが、
入れると、aがbの値になります。

初心者ですみませんがよろしくおねがいします。。
0191デフォルトの名無しさんNGNG
>間違えているはずがないのですが・・・
この学習姿勢
0192デフォルトの名無しさんNGNG
プロセスの使用メモリ量を調べたいのだが、
int getrusage(int who, struct rusage *usage);
ってものの、rusage構造体のどのメンバーを
調べればよいか知っている方いませんか?
manみても、よくわからんし、
ru_maxrssかなぁなんて思っていたのだが、机上計算と違う値を返すし。
0193デフォルトの名無しさんNGNG
今、線形リスト研究中・・・。
http://www.cs.u-gakugei.ac.jp/~miyadera/LECTURE/ElecBook2/ptech20.htm
 while( current=getmemory(), scanf("%d", ¤t->data) != EOF )
/* 24 */ {
/* 25 */ previous->next = current;
/* 26 */ previous = current;
/* 27 */ }
while( scanf("%d", &temp) != EOF )
/* 22 */ {
/* 23 */ current=getmemory();
/* 24 */ current->data = temp;
/* 25 */ if( previous == NULL )
/* 26 */ head = current;
/* 27 */ else
/* 28 */ previous->next = current;
/* 29 */ previous = current;
/* 30 */ }
ここのEOFが、認識できません。previous=current;
とすると、末尾ソードを差し込むっていうのはわかって
ます。scanf()関数は、位置インジゲータを返さない
奴だというのはわかってます。
0194デフォルトの名無しさんNGNG
>>187
x と y は double?
なら fmod() 呼び出しのオーバーへッドくらいしか考え付かない
というより一度 long i を経由することで型変換のオーバーヘッドがあるはず
なんだけど・・・

x と y が long なら、fmod() 呼び出しで要らない型変換してるので遅い
というか x % y でいいとか

どれくらい違うの?
アセンブリリスティングは出せる?
コードがもうちょっとはっきりしないと何とも言えない
0195デフォルトの名無しさんNGNG
ちょっと露骨な言い方したコンパイラーが認識できなんじゃ
なくて自分がEOFの流れがわからない。<<194
0196デフォルトの名無しさんNGNG
>>190
だ〜か〜ら〜
GetA() と GetB() の内容が示されないと何とも言えないし

return が消えてて関数終端の } が残ってるのは解せないけど
先に a を求めてるのにその後の b = GetB(temp); のせいで a が変わるとすれば
GetA() は temp を返しててかつ GetB() 内部で temp を変更してる?
想像ではこれ以上辿れないよ
0197デフォルトの名無しさんNGNG
>>190が言ってる意味を推測してみた。たとえば

char *GetA(char *p)
{
  return strcpy(p, "漏れはA");
}
char *GetB(char *p);
{
  return strcpy(p, "漏れはB");
}

という2つの関数があったとして、
それを
void test(void)
{
  char *a,*b;
  a = GetA(temp);
  b = GetB(temp);
  printf("%s", a);
}

のように呼び出すと「漏れはB」が表示されるということ?
だったらそれが当たり前なんだけど。
0198デフォルトの名無しさんNGNG
>>192
スレ違いかもね
ここでは純粋 C を訊いて

「UNIXプログラミング質問すれ」
http://pc3.2ch.net/test/read.cgi/tech/992057422/l50
0199197NGNG
あ、1箇所余計なセミコロンが付いてしまった。まあいいか。
0200hiloshiNGNG
どうも。昨日も来たんですけど、
あれから自分なりに考えたんですがいい結果が得られません。

つくりたいプログラムは4つの配列に
A、B,C,Dとそれぞれ初期化して
一つずつずらして表示するっていうものです。
ソースは次レスに
0201hiloshiNGNG
#include <stdio.h>

void turn(char *a,char *b,char *c,char *d)
{
char *x=d;

while((*d++=*c++)!=0)
;
while((*c++=*b++)!=0)
;
while((*b++=*a++)!=0)
;
while((*a++=*x++)!=0)
;
}
0202hiloshiNGNG
int main(void)
{
char anny[]={'A','\0'};
char bany[]={'B','\0'};
char chery[]={'C','\0'};
char domy[]={'D','\0'};
int i;

puts(" anny bany chery domy");
puts("------------------------");

printf(" %s %s %s %s\n",anny,bany,chery,domy);

for(i=1;i<=4;i++)
{
turn(anny,bany,chery,domy);
printf(" %s %s %s %s\n",anny,bany,chery,domy);
}

return(0);
}
0203デフォルトの名無しさんNGNG
>>197
tempはどこにあるの?
グローバル変数?
0204hiloshiNGNG
どこがわるいのか教えてくれませんか?
0205197NGNG
ああ、もう1つミスってるわ。
void test(void) の中

char temp[40]; /* サイズは適当 */
という変数を追加。
0206197NGNG
>>203
ごめん。どこにあってもいいよ。
0207デフォルトの名無しさんNGNG
>>204
その質問のしかた(涙
0208197NGNG
要するに、>>190の GetAもGetBも
引数で渡されたポインタをそのまま返すような関数
なんじゃないかな、と推測してみた。
0209デフォルトの名無しさんNGNG
>>193
まともなプログラム書きたいなら scanf() と gets() は絶対ダメ
scanf() やめて fgets() + atoi() 使えば
こんな感じで

char bug[256];
while(fgets(buf, sizeof(buf), stdin))
{
  current = getmemory();
  t->data = atoi(buf);
  previous->next = current;
  previous = current;
}

それと EOF って要するに入力の終わりを判定したいんだろうけど
例えば相手がキーボードだと打てば打つだけ続いて永遠に終わらない
適当に切り上げる条件付けなきゃダメ

あと行頭にコメントアウトで行番号入れるの見づらいし編集しづらいし
行挿入した時大変だし止めた方がいいよ
行番号を表示してくれるエディタを使えば幸せ
0210209NGNG
バグってる
×: char bug[256];
○: char buf[256];
0211デフォルトの名無しさんNGNG
>>209
> 例えば相手がキーボードだと打てば打つだけ続いて永遠に終わらない
いいえ、Winだとctrl+z, Unixだとctrl+dで終わりますが何か?
0212209NGNG
>>211
そういうのを環境依存って言うんだよ
そういう話題を扱いたいならスレ違い
0213デフォルトの名無しさんNGNG
>>212
かわいそうな人だ・・・日常に余裕無いんだね。
0214デフォルトの名無しさんNGNG
A-D変換ボードから送られてくるデータを取り込む関数は何を使えばいいのでしょうか?
0215デフォルトの名無しさんNGNG
>>204
昨日の続きというと >>86 の事かな
そうすると設問は

| char型の変数 anny, bany, chery, domy を宣言し、それぞれに初期値として
| 'A', 'B', 'C', 'D' を持たせる。

って書いてあるけどそれがどうして

> つくりたいプログラムは4つの配列に
> A、B,C,Dとそれぞれ初期化して

になっちゃうの?
C の前に日本語を理解してね
0216デフォルトの名無しさんNGNG
>>214
inb

でも
そういうのを環境依存

だから

そういう話題を扱いたいならスレ違い

だとおもうよ。
0217デフォルトの名無しさんNGNG
おいお前ら
204がかわいそうだろ
答えてやれよ
そういうオレもめんどくさい
0218デフォルトの名無しさんNGNG
>>214
fread
0219214NGNG

しまった!sage進行ですか?もしそうならすみません。
0220デフォルトの名無しさんNGNG
>>201
行と列の中をカウントするソースの一部です。
 この中のfor文を利用して'A'+(i1+j1)のようにしてみては
どうでしょうか。 なお、i2とj2についてはユーザー指定です。
 改行が、多すぎると( ゚Д゚)ゴルァでの全部かけません。
ij=i2*j2;
for(i1=0;i1<ij;i1+=j2){
putchar('\n');
for(j1=0;j1<j2;j1++){
i3=(len++)%j2;
p[i3][j1]=i1+j1;
printf("%3d",p[i3][j1]);
}
}
0221デフォルトの名無しさんNGNG
>>219
まさか。
どちらでもいいけど、質問ならageるべき。
0222デフォルトの名無しさんNGNG
>>213
はいはい、どうせ DOS と UNIX しか知らないんでしょ

>>214
その A-D 変換ボードの仕様書以外にそれを解決する情報は無いよ
0223デフォルトの名無しさんNGNG
inb?
MSDNライブラリにでてないのですが…?
0224デフォルトの名無しさんNGNG
>>201
cとかbとかインクリーメントとされたあとに代入が行われているけどいいの?
0225デフォルトの名無しさんNGNG
>>217
215 の通り前提条件が間違ってる
だから 204 に答えるとしたら 「問題のとらえ方が悪い」
よって 201-202 のソースは添削しようが無い
0226デフォルトの名無しさんNGNG
char型の変数だっていっているのに、なぜchar型の配列をつくるんだろう・・
0227デフォルトの名無しさんNGNG
べつスレに書いてたのですが反応が無いのでこちらに転載します
DLソフトのように取得した画像に番号を割り振ってフォルダに
保存していく機能を持たせるにはどんな感じのプログラムにすればいいのでしょうか?
房な質問ですみません。使用する関数を教えてもらえれば幸いです。
まだ、学習したてで、コンストラクタを使えば良いのか、ただ単にハンドル渡して
組み立てれば良いのか混乱しています。
よろしくお願いします。
0228hiloshiNGNG
>>226
すいません。よく分かってないもので。

char型の変数にいれるってことは
char a={'A'};
とかってことですか?
この時はヌル文字とかいらないんですか?
文字列の時だけヌル文字がいるんですか?

でもchar型の変数で表現できるのは2バイト文字だけですよね?
0229デフォルトの名無しさんNGNG
>>227
コンストラクタはC++とかでしょ?
Cにはないから他のスレッドにいって。
0230デフォルトの名無しさんNGNG
>>227
>まだ、学習したてで、コンストラクタを使えば良いのか、ただ単にハンドル渡して組み立てれば良いのか混乱しています。

どっちも突拍子のない気がするのは確かです。
もう少し勉強を続けてはどうでしょうか?
0231デフォルトの名無しさんNGNG
>>223
222 読んでね
実際に inb 使うかどうかき知らないよ
inb は <asm/io.h> で思い切り環境依存

>>227
あのね、ここは C のスレだよ
激しく弾けるほどスレ違い
0232デフォルトの名無しさんNGNG
>>228
>でもchar型の変数で表現できるのは2バイト文字だけですよね?

実装依存(藁が無ければ1バイトだけだと思います。
0233デフォルトの名無しさんNGNG
>>231
そうか?仕様言語がCカモしれん。
コンストラクタと言う言葉だけで判断するにはあまりにも彼は電波だ。
0234デフォルトの名無しさんNGNG
コンストラクタを使わなくても大丈夫です。
大体どんな感じのプログラムになるのかだけでも教えてもらえませんか?
イメージがわかないんです。
0235デフォルトの名無しさんNGNG
ヽ(*`Д´)ノゴルァ<<193を相手にしろ>>201は、>>220で
解決じゃ・・・。
0236デフォルトの名無しさんNGNG
>>222
> はいはい、どうせ DOS と UNIX しか知らないんでしょ
プッ、DOSもUNIXも知らない人が必死です。

>>200
答えだけ示す、理由は自分で考えろ
ヒント:while((*d++=*c++)!=0)実行後、dとcは何処を指している?

void my_strcpy(char *a, char *b)
{
while((*a++=*b++)!=0)
;
}

void turn(char *a,char *b,char *c,char *d)
{
char *x=d;

my_strcpy(d, c);
my_strcpy(c, b);
my_strcpy(b, a);
my_strcpy(a, x);
}
0237デフォルトの名無しさんNGNG
>>235
ポインタもまともに張れんのか・・・。
0238デフォルトの名無しさんNGNG
>ヒント:while((*d++=*c++)!=0)実行後、dとcは何処を指している?

指してる先をインクリメントしてるのでdもcも指してる場所は変わらないと思われ。
0239デフォルトの名無しさんNGNG
>>212
なんでここで環境云々の話になるんだ?
そもそもfgets使ってる時点で思いっきり環境依存なのだが。
0240デフォルトの名無しさんNGNG
>>238
ん?
ポインタをインクリメントして、インクリーメントする前のポインタが指さしているところを間接参照しているんじゃないの?
0241デフォルトの名無しさんNGNG
>>238
ネタでつか?
0242デフォルトの名無しさんNGNG
C言語使ってる時点で環境依存です。

>>240
ごみん。食べるスパゲティは好きなんだけどね。
0243デフォルトの名無しさんNGNG
そういうのを環境依存って言うんだよ
そういう話題を扱いたいならスレ違い
0244デフォルトの名無しさんNGNG
>>235
193 には 209 で答えたよ
第一 220 は何をやってるか分からないし、215 は読んだ?
0245デフォルトの名無しさんNGNG
>>239
> そもそもfgets使ってる時点で思いっきり環境依存なのだが。
(゚Д゚)ハァ?
0246227NGNG
なんとか教えてもらえませんか?
すれ違いなのは分かってるんですがVC++関係のスレがいま寂れてて
まともなレス返ってこないんですよね…
0247デフォルトの名無しさんNGNG
>>246
C++スレッドがあるでしょ(^_^;)
0248デフォルトの名無しさんNGNG
>>246
C++ is Not C
0249デフォルトの名無しさんNGNG
>>234
> 大体どんな感じのプログラムになるのかだけでも教えてもらえませんか?

sprintf(fname, "hoge%04u.jpg", i++);
fp = fopen(fname, "wb");
fclose(fp);
0250193NGNG
どうもです。
0251デフォルトの名無しさんNGNG
未 定 義 の 次 は 環 境 依 存 か
0252デフォルトの名無しさんNGNG
>>243
激しく同意。
標準入出力なプログラムの話題は別スレでやれ。
0253デフォルトの名無しさんNGNG
>>246
スレ立てるまでも無いへ逝けばたいてい答え出る。
0254デフォルトの名無しさんNGNG
処理系依存、環境依存、未定義

ネタはつきないぜ(*^_^*)
0255デフォルトの名無しさんNGNG
>>252
MACユーザですか?
0256デフォルトの名無しさんNGNG
>>254
後NULLな。
0257デフォルトの名無しさんNGNG
>>246
まともなレス返ってこなくて当たり前だよ
あのね、あんたの用件は VC++ スレでもスレ違いだよ
なぜならあんたは言語について訊いてるんじゃなくて
ソフトの設計について訊いてるんだから
0258デフォルトの名無しさんNGNG
>>256
void main(void)もな。
0259デフォルトの名無しさんNGNG
>>255
最近はまともなのが付いてるけどな。
CodeWarrior時代は苦労した。
0260デフォルトの名無しさんNGNG
>>252
標準入出力は標準ですが何か?
0261デフォルトの名無しさんNGNG









           C は ク ソ 言 語









0262デフォルトの名無しさんNGNG
>>249 ありがとうございます。参考にさせていただきます。
>>253 ありがとうございます。そちらでもきいてみます。
スレ違いでご迷惑かけました。答えてくれた方ありがとうございました。
0263 ◆hMJAPH9PWA NGNG
>>247
C++スレでも無駄だと思う…

>246
なんていうか、スレ違いとかそう言うレベルじゃないと思います…。
とりあえずK&Rなりストラウストラップ本でも読んでください。
0264デフォルトの名無しさんNGNG
>>260
そのOSでな。

UNIXのコンソールからDOSにパイプでデータ送れたりしたら認めるが。
0265デフォルトの名無しさんNGNG
>>261
それは同意するが、Cを使わないとできないようなことがあるのも事実。
Cを使わないとするとアセンブラレベルに降りないとならなくなるし、
だから便利ではあるのよ。
0266デフォルトの名無しさんNGNG
標準入出力は環境依存とか言ってる逝ってる人のいるスレはここですか?
0267デフォルトの名無しさんNGNG

がーん!
printfもスレ違いなの?
0268デフォルトの名無しさんNGNG
まいったねこりゃ
0269デフォルトの名無しさんNGNG
>>266
どこでもprintfが使えると信じてるうちは幸せだ。
0270デフォルトの名無しさんNGNG
printf("Here is Hell World);
0271デフォルトの名無しさんNGNG
>>267
printf("%s\n",NULL);の結果は処理系依存だす。
0272デフォルトの名無しさんNGNG
>>269
アフォ
標準ライブラリが使えないのは環境依存だ
0273デフォルトの名無しさんNGNG
スレ違いは言い過ぎだったが後に引けなくて困ってる様子を思い浮かべるスレ
0274デフォルトの名無しさんNGNG
別に買い換える必要はないよね?
0275デフォルトの名無しさんNGNG
>>272
標準ライブラリが使えるか使えないかは環境に依存する。
0276デフォルトの名無しさんNGNG
俺のティンポは環境依存ですが何か?
0277デフォルトの名無しさんNGNG
sizeof(TIMPO)の値は処理系依存だな。
0278デフォルトの名無しさんNGNG
サイズではなく臭いが
0279デフォルトの名無しさんNGNG
>>275
だからといって標準ライブラリは使えないという前提で話を進めるとものすごいことになる。
0280デフォルトの名無しさんNGNG
>>270
文法エラー: 文字列リテラルが終了していません。
>>275
そんな事はわかっている。
しかし規格の上では定められてるものなんだから、このスレで扱ったって
いいだろう。
しかしキーボードから EOF を打つ方法や A-D 変換ボードなんてのは規格で
決まってないだろう。
そういうのを環境依存と言うんだ。
>>276
良し。
0281デフォルトの名無しさんNGNG
ANSI C または ISO Cでないプログラム言語を
「C言語」と強弁している人がいる人がいるスレはここですか?
0282デフォルトの名無しさんNGNG
>>266 >>281
ここです。
0283デフォルトの名無しさんNGNG
>>279
そうそう。
大部分の質問に「環境依存だからでてゆけ」と答えないといけなくなる(涙
0284デフォルトの名無しさんNGNG
標準入出力の話は別スレでやれと言われたのですが、どのスレでやればよいのでしょうか?
これ以上スレ違いだとバカにされるのはまっぴらなので教えてください。
0285デフォルトの名無しさんNGNG
>>284
C言語を使うならここでいい。
他の言語で標準入出力を扱うのならば、適切なスレッドで。

とマジレスしてみる。
0286デフォルトの名無しさんNGNG
strlen とか memcpyとか malloc なんかはここでも可でしょうか?
0287デフォルトの名無しさんNGNG
>>283
そもそも、>>209がそういう狭量な態度だったから問題になっているのでは?
0288デフォルトの名無しさんNGNG
>>287
そうだね。
0289209NGNG
>>286
ダメです。環境依存です。
0290デフォルトの名無しさんNGNG
>>287
209 は特に間違っていない。
でなければ処理系に依存しないキーボードの EOF の判定方法を呈示してみろ。
0291290NGNG
> 適当に切り上げる条件付けなきゃダメ
って代替案を促してるのが狭量なのか?
0292デフォルトの名無しさんNGNG
キーボードから入力しても必ず終了させられるコードを書いてみてよ。
ただし決まった回数ループすると終了するというものはだめだよ。
0293デフォルトの名無しさんNGNG
>>209が>>211にムキになったところからこのCスレ名物のハイスピードレス大会が幕を開けた。
0294デフォルトの名無しさんNGNG
kokosogasemai
0295デフォルトの名無しさんNGNG
マジレスだけど、
209=280だとすれば、彼の言ってることも納得できる。
0296デフォルトの名無しさんNGNG
>>293
ただの煽り。ちょっと遊んであげればすんだのにね。
まぁ、冗談を解する余裕もない心の狭い>>209だからこそこの偉業を達成できたと。
0297デフォルトの名無しさんNGNG
>>293 おもろければいいやん
0298デフォルトの名無しさんNGNG
偉業といえば、俺はNULL論争を起こしたことがあるぜ。
そんなつもりはなかったのに(涙
0299デフォルトの名無しさんNGNG
>>292
Cにはキーボードなどは規定されていない、
しかし、たいがいのOSにはキーボードからEOFを検出できる仕組みがある。
例えばWinだとctrl+z, Unixだとctrl+d

209はCについては間違っていないが、OSの知識は無知だったという結論でいいか?
0300デフォルトの名無しさんNGNG
>>211もわざわざ「Winだと〜、Unixだと〜」って依存を前提に書いてるんだから
大目に見てやれよ
0301デフォルトの名無しさんNGNG
>>290
だから、そういう態度が狭量だって言うんだよ。
一般的なUNIXとDOSでキーボード入力でEOF発生できるという情報が出たんだからいいじゃん。
他の環境でのEOFを発生方法知ってるのならそれを提示してくれればいい。
わざわざ環境依存だ云々いって切り捨てなくてもいいと思うけどね。

#ちなみに、EOFの判定方法はfgetsがNULLを返したときだね。
0302デフォルトの名無しさんNGNG
未定義などのネタが当分出てないから、みんな飢えてるのかもな
0303デフォルトの名無しさんNGNG
>>299
>Cにはキーボードなどは規定されていない、
そのための標準入力か。勉強になる。
0304デフォルトの名無しさんNGNG
>>209さん、もうすぐ100レスです。そろそろ降参してください。
0305209NGNG
ごめんね
でも環境に依存するようなコードをここで呈示するのは極力避けるべき
だと思うのね
間違ってる?
0306デフォルトの名無しさんNGNG
>>194
レスどうも。
unsigned long modulo(unsigned long x,unsigned long y) {
unsigned long res;
long i=x/y;
res=x-i*y;
return (res);
}
これなんですが。この関数を呼ぶのをやめて単純にfmod(x,y)に
したのですが・・・。暗号化のために累乗と剰余を頻繁に行う
プログラムなのですが剰余をfmodに変えたら
4倍時間がかかってしまいました。
%については失念していたのでこれも試そうと思います。
ありがとうございました。
0307デフォルトの名無しさんNGNG
>>305
常識の範囲である程度認めてあげてよ。
常識って何と言われたら何もいえなくなるけど
0308デフォルトの名無しさんNGNG
質問者の環境に合わせたコードでいいと思うが。
0309デフォルトの名無しさんNGNG
>>305
「ctrl+zはCではEOFを表す!」って言ってるわけじゃないんだから。
Winではそうだね、よかったね、って話なんだから。
0310デフォルトの名無しさんNGNG
>>228
やりたいことは
ABCD
DABC
CDAB
BCDA
とか
ABCD
BCDA
CDAB
DCAB みたいな結果を得たいんだと思うけど
それなら一つの配列に入れたほうが簡単だと思うが
0311デフォルトの名無しさんNGNG
>>308
だね。
今まではある程度の環境依存なら環境を示せといってきたし
0312290NGNG
>>301
> 適当に切り上げる条件付けなきゃダメ
って代替案を促してるのが狭量なのか?
ってもう一回書かなきゃダメか?
209 は fgets() での EOF 判定方法もちゃんと提示している。
その辺を読み取れない方が狭量じゃないのか?
0313デフォルトの名無しさんNGNG
>>310
問題が変数名を指定している
0314デフォルトの名無しさんNGNG
>>305
前提をちゃんと挙げていた。

って言うか荒らしに反応する人も荒らしです。
0315209NGNG
>>310
おい、それは依存だろ。
0316209NGNG
>>307-309
らじゃ
もう少しゆるい目で見てみる
0317ヘタレエンジニアNGNG
 流体解析ソフトを動かすため、Visual C++ 6.0とやらを
オベンキョ しなければならないのですが、「VC++」で数値計算させ
るために参考となる良い本がわかりません。

 なんか、データベース用とか、ダイアログがどうした、とか、そんなの
ばかりが書店に溢れています。

 変な質問ですが、こんな僕のためにお答えしていただける、奇特な方が
おられたら、神と崇めたいと思います。

0318301NGNG
>>312
UNIXとDOSでのEOF発生方法を「環境依存だ」と言って切り捨ててるところをいってるのだが。
0319209NGNG
>>314
すまん最初荒らしと気付かなかったし
>>315
にせもの
0320デフォルトの名無しさんNGNG
>>317
多分、今の流れを見てのネタだと思うけど、
それは参考書スレッドでやって。


俺間違っているかな?(T_T)
0321デフォルトの名無しさんNGNG
>>317
「C言語」 「入門」 で検索してください。
あと勝手に崇められると迷惑だと思います。
0322290NGNG
>>318
つまり漏れが目くそで 318 が鼻くそ
0323デフォルトの名無しさんNGNG
ヘタレエンジニアに崇められてもな。
0324ヘタレエンジニアNGNG
>>320
 いえ、Windows板の方にここを教えてもらって、C言語とスレ名にあるから
ここに書き込んだまでです。

「推薦図書/必読書・・・」というスレでよろしいでしょうか。質問ばかり
ですいません。
0325デフォルトの名無しさんNGNG
>>324
そう。
>>1にリンクがあるよ
0326ヘタレエンジニアNGNG
>>321
 ありがとうございます。試してみまふ。

>>325
 ありがとうございます。早速、書きました。

 しかし、なんだかんだ言われている2ちゃんねるですが、物凄い有用な
サイトですね・・・。
0327hiloshiNGNG
すいません。また質問です。
char型の変数をprintfで表示するための変換指定子はなんですか?
%dでやると、JISコードの値が出てしまう・・
0328デフォルトの名無しさんNGNG
>>327
JISじゃないだろ
%c
0329デフォルトの名無しさんNGNG
>>327
%c

つか、これくらいは聞くなよ。参考書読め。期待してるんだから頑張れよ。
0330デフォルトの名無しさんNGNG
>>327
> JISコードの値
おそらくAsciiコードかShift_Jisコードだと思うんだが
ところで文字コードも環境(以下略
0331デフォルトの名無しさんNGNG
char anny = 'A', bany = 'B', chery = 'C', domy = 'D';
puts(" anny bany chery domy");
puts("------------------------");
printf(" %c %c %c %c\n", anny, bany, chery, domy);
printf(" %c %c %c %c\n", domy, chery, bany, anny);
0332hiloshiNGNG
すいません。今度はもっと上級な質問をします。

でもオレの持ってる本には文字列は詳しく書いてるんですけど
文字のことはさっぱりで・・・。
でもここのおかげで少しずつわかってきたんで
みなさんに感謝多々です。
0333デフォルトの名無しさんNGNG
>>332
何のためのWebだよ。
0334デフォルトの名無しさんNGNG
>>332
>すいません。今度はもっと上級な質問をします。
じゃなくて、ある程度自分で調べてから質問しろよってこと
0335hiloshiNGNG
ある程度調べるってことで、ここで質問してるんですよ
0336hiloshiNGNG
あとコードの事ですけど、
オレの持ってる本はJISコードという文字コード体系が広く普及してる
って書いてあるんだけど、これは間違ってんの?
0337デフォルトの名無しさんNGNG
>>335
ある程度調べる、じゃなくて
ある程度 *自分で* 調べる、だ。
0338デフォルトの名無しさんNGNG
>>335
次からは死のうな。

>>336
環境依存。メジャーどころだけ見ると明らかに間違い。
0339デフォルトの名無しさんNGNG
>>336
それは間違っていない。
が、広く普及してるからと言ってあなたの環境もそれを採用しているかどうかは
別の話だ。
0340デフォルトの名無しさんNGNG
>>335
「調べる」 と 「訊く」 の区別は大丈夫か?
0341hiloshiNGNG
あーうぜーなお前ら
どうせ禿げたオタクばっかだろ
黙って質問に答えてればいいんだよ
それくらいしか能のないんだから
先生気分ですか?じこまんですか?
どうぞ死んでください。
0342pppNGNG
BMPファイル情報表示は完成したのですが、
画像ファイルの白黒化を教えて頂きたいです。
malloc()関数を使い、8・24ビットカラー画像どちらでも
変換できるといったように。
どなたか、ご親切な方のサンプルソースをご教授願いたいです。
/* #include */
#include<stdio.h>
#include<stdlib.h> //exit用
#include<conio.h>   //getch用
#pragma pack(1) //構造体メンバを1バイトサイズの単位に設定

/* ファイルヘッダ構造体型 */
typedef struct tagBITMAPFILEHEADER {
unsigned short bfType; //フォーマットの種類を表す数値(Windows BMPの場合 0x4D42)
unsigned long bfSize; //ファイルサイズ
unsigned short bfReserved1; //予約領域(0)
unsigned short bfReserved2; //予約領域(0)
unsigned long bfOffBits; //ファイル先頭からのバイト数で表したイメージデータの位置
} BITMAPFILEHEADER;
0343pppNGNG
/* 情報ヘッダ構造体型(BMPファイル独自のヘッダ) */
typedef struct tagBITMAPINFOHEADER {
unsigned long biSize; //情報ヘッダのサイズ(40)
long biWidth; //画像の幅(ピクセル単位)
long biHeight; //画像の高さ(ピクセル単位)
unsigned short biPlanes; //プレーン(レイヤー)の数(通常1)
unsigned short biBitCount; //1ピクセルあたりのビット数と画像の種類(下記補足参照)
unsigned long biCompression; //圧縮の種類(下記補足参照)
unsigned long biSizeImage; //イメージデータのみのバイトサイズ
unsigned long biXPelsPerMeter; //横軸画素数/メートル(省略値0)
unsigned long biYPelsPerMeter; //縦軸画素数/メートル(省略値0)
unsigned long biClrUsed; //画像中で使用されている色数(RGBQUADの個数)
//画像タイプの最大発色数と同じ場合は0
unsigned long biClrImportant; //画像を表示する上で重要な色の数、すべての色が重要な場合は0
} BITMAPINFOHEADER;

/* カラーテーブル */
typedef struct tagRGBQUAD {
unsigned rgbBlue; //青の輝度
unsigned rgbGreen; //緑の輝度
unsigned rgbRed; //赤の輝度
unsigned rgbReserved; //Must be zero
} RGBQUAD;
0344pppNGNG
/* プロトタイプ宣言 */
void printBmp(BITMAPFILEHEADER fh,BITMAPINFOHEADER ih); //BMPファイルのヘッダ情報の表示
void readBmp(char *filename,BITMAPFILEHEADER *fh,BITMAPINFOHEADER *ih); //BMPファイルのヘッダを読み込む

/* main start */
void main(int argc,char *argv[])
{
BITMAPFILEHEADER bfh; //ファイルヘッダ構造体
BITMAPINFOHEADER bih; //情報ヘッダ構造体
char *filename;

filename = argv[1];

readBmp(filename,&bfh,&bih);

printBmp(bfh,bih);

if(argc!=2)
{
printf("\nコマンドライン引数エラー!\n"); //コマンドライン引数の確認
exit(1);
}

fopen(argv[1],"rb");
}
/* main end */
0345pppNGNG
/* BMPファイルのヘッダ情報の表示 */
void printBmp(BITMAPFILEHEADER fh,BITMAPINFOHEADER ih)
{
printf("<<ファイルヘッダの内容>>\n\n");

printf("ファイルタイプ = 0x%X (BM)\n",fh.bfType);
printf("ファイルサイズ = %d バイト\n",fh.bfSize);
printf("予約領域1 = %d",fh.bfReserved1);
printf("   予約領域2 = %d\n",fh.bfReserved2);
printf("オフセット = %d バイト\n\n",fh.bfOffBits);

printf("<<情報ヘッダの内容>>\n\n");

printf("情報ヘッダのサイズ = %d バイト\n",ih.biSize);
printf("画像の幅 = %d ピクセル\n",ih.biWidth);
printf("画像の高さ = %d ピクセル\n",ih.biHeight);
printf("プレーン数 = %d\n",ih.biPlanes);
printf("ビット/ピクセル = %d bpp\n",ih.biBitCount);
printf("圧縮の種類 = %d (RGB)\n",ih.biCompression);
printf("イメージデータサイズ = %d バイト\n",ih.biSizeImage);
printf("横軸画素数/m = %d pixel/m  ×",ih.biXPelsPerMeter);
printf("  縦軸画素数/m = %d pixel/m\n",ih.biYPelsPerMeter);
printf("使用色数 = %d",ih.biClrUsed);
printf("   重要色数 = %d\n\n",ih.biClrImportant);

return;
}
0346pppNGNG
/* BMPファイルのヘッダ情報を読み込む */
void readBmp(char *filename,BITMAPFILEHEADER *fh,BITMAPINFOHEADER *ih)
{
FILE *fp;

/* ファイルオープン */
printf("\n入力ファイル : %s",filename);

if((fp=fopen(filename,"rb"))==NULL)
{
printf("\nオープンエラー!\n");
exit(1);
}

printf("\n\n");

/* ファイル読み込み */
fread(&(fh->bfType),sizeof(fh->bfType),1,fp);
fread(&(fh->bfSize),sizeof(fh->bfSize),1,fp);
fread(&(fh->bfReserved1),sizeof(fh->bfReserved1),1,fp);
fread(&(fh->bfReserved2),sizeof(fh->bfReserved2),1,fp);
fread(&(fh->bfOffBits),sizeof(fh->bfOffBits),1,fp);
0347デフォルトの名無しさんNGNG
>>341
さっきの荒らしの方ですね。
0348pppNGNG
fread(&(ih->biSize),sizeof(ih->biSize),1,fp);
fread(&(ih->biWidth),sizeof(ih->biWidth),1,fp);
fread(&(ih->biHeight),sizeof(ih->biHeight),1,fp);
fread(&(ih->biPlanes),sizeof(ih->biPlanes),1,fp);
fread(&(ih->biBitCount),sizeof(ih->biBitCount),1,fp);
fread(&(ih->biCompression),sizeof(ih->biCompression),1,fp);
fread(&(ih->biSizeImage),sizeof(ih->biSizeImage),1,fp);
fread(&(ih->biXPelsPerMeter),sizeof(ih->biXPelsPerMeter),1,fp);
fread(&(ih->biYPelsPerMeter),sizeof(ih->biYPelsPerMeter),1,fp);
fread(&(ih->biClrUsed),sizeof(ih->biClrUsed),1,fp);
fread(&(ih->biClrImportant),sizeof(ih->biClrImportant),1,fp);

fclose(fp);
getch();
}
0349デフォルトの名無しさんNGNG
341 について謝罪しない限り hiloshi は放置
0350hiloshiNGNG
ところで皆さんはポインタを習得するのに
どれくらいかかりました?
0351デフォルトの名無しさんNGNG
トリップ必須だなっと
0352hiloshiNGNG
>>349
オレじゃないよーー!!!
誰だーーー!!!
0353デフォルトの名無しさんNGNG
341=349
0354デフォルトの名無しさんNGNG
hiloshiは本物偽者どちらもウザい
0355デフォルトの名無しさんNGNG
まずは、その本のその部分を正確に抜粋して貰わないことには、
ナントモ言えない。
0356デフォルトの名無しさんNGNG
>>342
http://www02.so-net.ne.jp/~koujin/jpeg/RGB2YCbCr.html
で Y だけをビットマップにすれば白黒。

スレ違いという事はわかった上で書いてる?
次からは API スレでも行って。
0357デフォルトの名無しさんNGNG
>>350
ポインタ単独ではそんなに時間がかからなかったが
それはメモリのアクセス方法とかアセンブラについての
基礎知識があったわけでそれを含めると結構時間がかかってると思う。。
0358デフォルトの名無しさんNGNG
>355は>>336に対して。 リロード忘れてウトゥ
0359デフォルトの名無しさんNGNG
>>350
トリップつけろや。ニセモノもつけてくるかもしらんが、
内容で本物かどうかはある程度判別つくんで心配すんな。

で、どの程度で習得できたといえるのかがわからんなあ。

ポインタは指すものと思っておけばいいんじゃないか。
あるメモリ領域があって、ポインタはそこを指してる。
頭のなかでポインタからその領域に向かって矢印が出てるとイメージすりゃいい(w
0360hiloshiNGNG
じゃちょっと抜粋します。犯罪っぽいですけどね。

「C言語での文字とは、その文字に与えられたコードすなわち整数値である。ただし、たとえ同じ文字であっても
その値はプログラムの実行環境によって異なる可能性があります。より具体的には、プログラムが実行される
環境で採用されている文字コードに依存した値になります。
日本で広く普及しているパソコンの多くはJISコードという文字コード体系が利用されていますので
これを例にとって解説しましょう。」
って感じです
0361デフォルトの名無しさんNGNG
>>350
ポインタはある日突然閃いたかのように分かるので、習得期間は不定。
0362デフォルトの名無しさんNGNG
実は「JIS X 0201コード」の略という罠、、、なら、正しい。
ASCIIコードに対抗するJISコード(典型的には、バックスラッシュと
円の違いを主とする)なわけで。
0363hiloshi ◆W2li6n5Xa6 NGNG
こんな感じでw

何も書かないのもあれなんで、ちょっと質問いいですか?
ほんと考えたんですけど、わかんないんです。

void turn(char *a,char *b,char *c,char *d)
{
char *x=d;
*d=*c;
*c=*b;
*b=*a;
*a=*x;
}
っていう風にしますよね?
最初の、ポインタxの宣言のときにポインタdのアドレスをいれて
そのあとどんどん入れ替えていきますよね。
それで最後にaにもとのdの値をいれようとしても、
xはポインタだから、もう既にcの値が代入されたdをxに代入しますよね?
こういう時に、もとのdの値を関数内でちゃんと保存する方法ってないんですか?
0364デフォルトの名無しさんNGNG
>>360
あとは書名と著者と出版社とページを挙げれば引用の範疇になるから大丈夫。

で、その記述はなんとも不完全なような気がする。

色々推測するとして、
・その本はMS-DOSが全盛の時代に書かれた
・そうすると広く普及してるパソコンというのはNECのPC-98x1シリーズに該当するだろう
・確かにPC-98x1シリーズでは、text vramではJISコードを用いていた
だから、状況を限定すればその記述も間違いとはいえないような気がするが、
Cの参考書としてはよろしくないな。

日本で現状広く普及してるパソコンにはWindowsが乗っていて、
こいつが通常扱う文字コード体系はShift-JISかUnicodeだ。
0365デフォルトの名無しさんNGNG
getservbyname.cの一節にこのようなものがあるんですが

while ( (p = getservent()) ) {
if (strcmp(name, p->s_name) == 0)

なんでnameとp->s_nameを比較してるんでしょうか
ちなみに本をよみながらやってるんですが
その本のサンプルプログラムには
getservbyname(argv[1],"udp")
として呼び出してありこのプログラムの実行例は
# ./a.out 1024
こうで
nameには"1024"
p->s_nameには"rtmp"
などのポインタが入ってます
全然ちがうものを比較してるようにみえるのですが
なぜでしょうか?
0366hiloshi ◆W2li6n5Xa6 NGNG
>>xはポインタだから、もう既にcの値が代入されたdをxに代入しますよね?

すいません。間違えました。
xはポインタだから、もう既にcの値が代入されたdを、aに代入です
0367hiloshi ◆W2li6n5Xa6 NGNG
>>364
それらを書いた方がいいって事ですか?

でもたぶん98シリーズの事を言ってるんだと思います。
それ系の本を書いてる人みたいだし。
書かれたのは1999年ですけど。
0368デフォルトの名無しさんNGNG
>363
char x = *d;
...
*a = x;
0369デフォルトの名無しさんNGNG
>>363
dの指してる先の中身を保存したいんだろ。xにdを保存してどうするよ。
dの指してる先に'Q'があったとして、
 d--------->'Q'
こんな状態。で、char *x = d;をやると、
 d--------->'Q'
 x----------^
xも同じ所を指すようになる。
そうじゃなくてやりたいことは'Q'そのものを保存したいんだろ。
だったら、char y = *d;とやるべきだ。
0370hiloshi ◆W2li6n5Xa6 NGNG
>>368
そうですね。基本ですね。あんなに悩んだ自分がばかみたいです。
すいません。お手数かけました。
0371デフォルトの名無しさんNGNG
>>367
うん、書いたほうがいいと思う。

んで、その記述だけで本全体を判断するのは危険だが、
少なくともその部分の記述はウソと言ってもいい。忘れたほうがいい。
0372hiloshi ◆W2li6n5Xa6 NGNG
じゃあ書いておきます。

書名:定本 明解C言語
著者:柴田望洋
出版社:ソフトバンク社
ページ:200ページ

です。
0373193NGNG
今、線形リスト研究中。
typedef struct __node{
charname[20];
chartel[16];
struct __node *next;
}Node;

typedef struct {
Node *head;
Node *tail;
}List;
以下略
void Insertnode(List *list,const char *name,const char *tel)
{
Node *ptr=list->head;

list->head=getmemory();
strcpy(list->head->name,name);
strcpy(list->head->tell,tell);
list->head->next=ptr;
}
void Appendnode(List *list,const char *name,const char *tel)
{
Node *ptr=list->tail;

list->tail=getmemory();
strcpy(ptr->name,name);
strcpy(ptr->tel,name);
ptr->next=list->tail;
}
以下略 先頭へのノード挿入 末尾へのノード挿入
0374193NGNG
list->head->next=ptr;とptr->next=list->tail
ptrは、もちろんノードの省略の意味だけど。
 微妙に、変化した記述の意味がわからん。
0375デフォルトの名無しさんNGNG
>>365
getservbyname.c って何
0376デフォルトの名無しさんNGNG
>>365
その結果、引数で指定したサービスが見つからないことが期待されるのか
どうかでいろいろ変わってくると思うのだが。
0377デフォルトの名無しさんNGNG
>>374
日本語勉強して
何かわからないのか分からない
「微妙に、変化した記述」 って何を指すの
0378193NGNG
じゃあ!!数学的に答えます。
 ○->■に指すことは、積と表す事にする。
  list->head->next=ptr;a*b*c=A
ptr->next=list->tail;A*c=a*b;
(A=a*b)としているが全部省略したら
  同じ意味を指すので省略しないこととする。
   ちなみに、headとtailの区別は考えてる。
  この微妙な変化に、ソートの真髄があるんじゃ
  ないかと考えている。
0379デフォルトの名無しさんNGNG
>>378
歪曲するのが好きなの?
0380デフォルトの名無しさんNGNG
>>375
システムコールですね
0381デフォルトの名無しさんNGNG
それってソートなん?
0382デフォルトの名無しさんNGNG
> (A=a*b)としているが
どこをどーしたら、そうなるん?
0383デフォルトの名無しさんNGNG
>>378
何か数学的なのかちっとも分からないし
「○->■に指すことは、積と表す事にする」 って定義が全然生きてないし
「微妙な変化」 がつまり何を指すのかやっぱり分からないし
どこにもソートになるような記述は無いし
結局何を訴えたいのかさえ
0384デフォルトの名無しさんNGNG
電波キタ─wwヘ√レvv〜(゚∀゚)─wwヘ√レvv〜─!!
0385デフォルトの名無しさんNGNG
readでfopenしたテキストファイルをeofになるまでfgetsするプログラムを作ったんですが、
Win2kとWin98で動きが違って困ってます。

現象としては、CRLFのみの行を取得しようとした時
Win2kでは普通に読んでくれるんですが、
Win98だとeofになってしまいます。

何故eofになってしまうのかがよく分かりません。

申し訳ありませんが、ご存じの方がいらっしゃいましたらご教授下さい。
0386デフォルトの名無しさんNGNG
>>380
いずれにせよ、システムコールとはちと違うと思うが。
0387193NGNG
>>383ね だったら、この掲示板に全部ソース書いていいのか。
 その一部分で、意味理解しないこと自体おかし。
  日本語ちゃんと読んでる。 そう考えても自然じゃないの(積)
 カンシャク持ちだねヽ(*`Д´)ノゴルァ
0388デフォルトの名無しさんNGNG
文字列の数字をint型の数字に変えたいんですけど、javaみたいに一発変換できる関数ないですか?
0389デフォルトの名無しさんNGNG
>>388
strtol
0390デフォルトの名無しさんNGNG
>>380
library call
0391hiloshi ◆W2li6n5Xa6 NGNG
>>388
atoiじゃダメなんですか?
0392デフォルトの名無しさんNGNG
>>342みたいにいきなり長いコードをコピペするのも荒らしに近いなぁ
0393デフォルトの名無しさんNGNG
>>391
そういえばそんなのありましたね。すっかり忘れてました。

>>391,>>389
ありがとうございました。
0394193NGNG
 もう寝るは、おやすみ!!
0395デフォルトの名無しさんNGNG
電波サッタ─wwヘ√レvv〜(゚∀゚)─wwヘ√レvv〜─!!
0396デフォルトの名無しさんNGNG
>>385
テキストの途中で読み込みが止まってしまうのは、元ファイルに EOF コード '\x1A'
が混じっている等がありますが、そりは Windows 3000 でも一緒だったはず。
よくわからないので、再現する最低のコードを示せませんか?
0397396NGNG
う・・・Windows 3000 カコイイ・・・
0398デフォルトの名無しさんNGNG
>>385
本当にfgetsがNULLを返すの?
0399385NGNG
>>385
こんな感じです

  FILE*  fpHoge;
  char  cHogeData[256];
  char*  cRet;
  bool  bRet = true;

  if ((fpHoge= fopen("C:\\hogehoge.txt","r")) == NULL){
    return;
  }

  while(bRet!=false){

    memset(cHogeData, 0x20, sizeof(cHogeData));

    cRet= fgets(cHogeData, 256, fpHoge);

    if(cRet == NULL){
      if(ferror(fpHoge)!=0){
        fclose(fpHoge);
        return;
      }
      if(feof(fpHoge)){
        bRet = flase;
        continue;
      }
    }
  }

  fclose(fpHoge);
0400デフォルトの名無しさんNGNG
>>399
なぜcHogeDataを0x20で埋めるのかサパーリわからん。
0401385NGNG
>>400
変数を使う前にクリアするのが癖なのです
でも、これが原因じゃないですよね?
0402400NGNG
while(fgets(cHogeData),sizeof cHogeData,fpHoge){
/* いろいろ */
}

じゃだめなのか?(^_^;)
0403400NGNG
>>401
0x20ってASCIIでは空白だっけ?
空白でクリアする理由がわからない。
この場合はクリアする理由さえわからないけど。
0404385NGNG
>>402
元々コボラーなので、この書き方好きじゃないんです。
もしかしてこの辺に問題有り?
0405396NGNG
>>404
だから、再現する最低のコードを示してくれないと何もわからないってば〜。
0406デフォルトの名無しさんNGNG
>>399
問題となる現象は、CRLFだけの行を読んだときに
fgetsがNULL返して、ferrorがエラーなしで、feofがEOFだと言う
ということでいい?
0407405NGNG
誤爆スマソ
0408デフォルトの名無しさんNGNG
このエラーの意味がわかりません

error C2664: 'CallWindowProcA' : 1 番目の引数を 'int (__stdcall *)(void)' から 'long (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)' に変換できません。

VC++6.0
win98
です
0409デフォルトの名無しさんNGNG
>>408
ポインタが指すものが違う。
キャストして。
0410385NGNG
>>405
すみません。。
>>399のコードだけじゃ足りませんか?

>>406
そうです。
0411デフォルトの名無しさんNGNG
>>408
1 番目の引数を
'int (__stdcall *)(void)' から
'long (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)'
に変換できないってことだよ。
0412デフォルトの名無しさんNGNG
>>410
とりあえず>>402の方法でやってみて。
/* いろいろ */というところにprintf("%s",cHogeData);とでもいれて。
0413385NGNG
>>412
ありがとうございます。
自宅に98マシンが無いので、明日試して報告します。
0414412NGNG
あ、ループ抜けたらfcloseしてね。
0415405NGNG
>>410
405 は誤爆でしたゴメンナサイ。

399 のコードまんまで再現せず。
(当方 Windows 98 SE、VC++6SP5)
テストデータの方がおかしいのでは。
0416385NGNG
>>415
当方もWindows 98 SE、VC++6SP5です。。

データのeofになってしまう部分をhexで見たら
0d0a0d0aだったのですが。
(前後3バイトを付けると 6161220d0a0d0a303030)

もう一度データも洗ってみます
0417デフォルトの名無しさんNGNG
>>416
うーん・・・
そのデータを使ったテキストでも、やっぱり再現しない。
399 への転記ミスとかと違う?
416 の環境で、399 まんまのコードは動く?
0418417NGNG
ああ、まんまと言っても while 終了の直前で printf("%s", cHogeData) してね。
0419385NGNG
>>417
確かに>>399はここに載せる為に若干手を加えているので
これをそのまま動かしたって訳じゃないですね。

こちらも、試してみます。printf付きで

ありがとうございます
0420s.kNGNG
ダブルポインターって何ですか?
あと、ポインタが変数のアドレスを格納するのは分かるのですが、実際に
はどういう時に使うのですか?
0421デフォルトの名無しさんNGNG
>>420
> ダブルポインター

**p のようなものと思われ。
ポインタ変数を指すポインタ。

> 実際にはどういう時に使うのですか?

memset() とか scanf() とか使ったこと無い?
あんな風に呼び出し元の変数の値を変えたい時に使う。

あと、リンクリストとか作る時、

struct List
{
  char data1[4];
  int data2;
  struct List *next;
}

とかやる。
0422デフォルトの名無しさんNGNG
>>420
( `Д) <ポインタのポインタ。
/(ヘ つ )ヘ  2次元配列もどきを作るときに使ったり、
      ポインタの値そのものを変更する関数のパラメータに使ったり・・・
0423デフォルトの名無しさんNGNG
>>421
それはただのポインタなんじゃ・・・
0424デフォルトの名無しさんNGNG
あ、後半はポインタの使用法か・・・
スマソ。
0425デフォルトの名無しさんNGNG
>>420
例えば、FILE *fi があったとして、これを他の関数で代入したい時、

f(fi); ではもちろんだめで、f(&fi); となる。
ところで、この関数のプロトタイプは

void f(FILE **fi);

となって、ポインタのポインタとなる。
0426デフォルトの名無しさんNGNG
int main(int argc, char **argv)
0427デフォルトの名無しさんNGNG
memsetって**を使う?
**といったら真っ先にstrtolを思い浮かべるんだけど。
0428427NGNG
よく見てなかった。
ダブルポインタの利用法じゃなくて、ポインタの利用法か。
0429デフォルトの名無しさんNGNG
420 の書き込みは、どうも罠が多い。
0430デフォルトの名無しさんNGNG
3次元配列を2次元配列に代入したいんですが

n3_data[6][7][8];
n2_data[7][8];

~n3_data初期化の処理

memmove(n2_data,n3_data[0],sizeof(char)*6*7);

でよいのでしょうか?
0431デフォルトの名無しさんNGNG
>>430
いいんじゃない?
ただ、そんなところで悩むのなら
for(i = 0; i < 7; i++){
for(j = 0; j < 8; j++){
n2_data[i][j] = n3_data[0][i][j];
}
}
にしたほうがいいとおもうが。
0432デフォルトの名無しさんNGNG
>>431
ついつい自分の実力でできないようなので,やろうとしてしまう癖があるんですよ
ありがとう
0433デフォルトの名無しさんNGNG
char num[10]={1,-1,0}
char num[10]={1,-1}

どっちでも,あとの配列は0で初期化する?
0434デフォルトの名無しさんNGNG
http://www.dream-express-web.com/space-trust.htm

静内って知ってる?
0435デフォルトの名無しさんNGNG
>>433
ANSI規格では要求される
0436デフォルトの名無しさんNGNG
>>434
> 静内って知ってる?
北海道の地名
0437デフォルトの名無しさんNGNG
北海道静内郡静内町
北海道十勝郡浦幌町静内
0438デフォルトの名無しさんNGNG
すみません。unionがredefinition だと叱られます。
怖くて修正できません。どうすればいいでしょうか?

以下エラーです。

gcc -DHAVE_CONFIG_H -I. -I. -I. -I. -I. -g -O2 -c -o src/ipc/semtool.o `test -f 'src/ipc/semtool.c' || echo './'`src/ipc/semtool.c
In file included from src/ipc/semtool.c:38:
/usr/include/sys/sem.h:93: field `sem_perm' has incomplete type
src/ipc/semtool.c:42: redefinition of `union semun'
src/ipc/semtool.c: In function `createsem':
  略
make[1]: Leaving directory `/tmp/cygutils-1.1.2'
make: *** [all] Error 2
0439432NGNG

--------------------------------------------------------------------------------
ura@V:$ sed -n 93,101p /usr/include/sys/sem.h
struct ipc_perm sem_perm; /* permissions .. see ipc.h */
time_t sem_otime; /* last semop time */
time_t sem_ctime; /* last change time */
struct sem *sem_base; /* ptr to first semaphore in array */
struct sem_undo *undo; /* undo requests on this array */
ushort sem_nsems; /* no. of semaphores in array */
};

--------------------------------------------------------------------------------
ura@V:$ sed -n 42,52p src/ipc/semtool.c
union semun {
int val; /* value for SETVAL */
struct semid_ds *buf; /* buffer for IPC_STAT & IPC_SET */
ushort *array; /* array for GETALL & SETALL */
struct seminfo *__buf; /* buffer for IPC_INFO */
void *__pad;
};
0440438NGNG
>>439
438のマチガイです
0441デフォルトの名無しさんNGNG
>>438-439
union semunが2回以上出てきてるんじゃない?
0442デフォルトの名無しさんNGNG
>>434
関係あるんですか?

http://www.google.co.jp/search?hl=ja&lr=lang_ja&q=%90%C3%93%E0+C%8C%BE%8C%EA
0443デフォルトの名無しさんNGNG
>>438
semtool.c 内でunion semunを定義してるからじゃないか?
48〜52行目をコメントにしてみるとどうなる?
0444デフォルトの名無しさんNGNG
>>438
何をコンパイルしようとしてるのか知らんが、正しくconfigureできてないのかも。
0445デフォルトの名無しさんNGNG
>>438
つーかマルチすんな。
0446デフォルトの名無しさんNGNG
char a[];
char b[10];
とあって、
str(a,b)はエラーですよね?aにメモリ確保してないから。さらにaは大きさ10じゃなかったらやっぱり駄目ですよね?
0447デフォルトの名無しさんNGNG
>>446
じゃなくて、char a[]; そのものがコンパイル通らないだろ。
0448デフォルトの名無しさんNGNG
>>447
*aはよくてもa[]は駄目なんですか?何故?
0449デフォルトの名無しさんNGNG
>>446
グローバルならコンパイル通るかもね
その場合は (char *) 型になるし
内容は何指してるかわからないからダメダメ
0450デフォルトの名無しさんNGNG
>>448
初期化が必要だからじゃないのか。
char a[] = {"hogehoge"};
みたいに
0451デフォルトの名無しさんNGNG
>>450
最初a[]がどこか変なところを指しているのはわかってます。だからmallocでも使ってヒープとらないといけないんじゃないか?という質問なんですが。
0452デフォルトの名無しさんNGNG
配列名に代入できないと思うが
0453デフォルトの名無しさんNGNG
>>451
C-FAQの「配列とポインター」を読むこと。
0454デフォルトの名無しさんNGNG
>>453
この件は C-FAQ に載っていない。

>>451
char a[] と定義する時、関数内であるならばそれはポインタではなく配列であり、
char a[] = "hogehoge"; のような初期化を要求することを意味している。
(450 の初期化は間違っている)
だから 447 の通り 「char a[]; そのものがコンパイル通らない」。

定義がグローバルである場合、それは extern char a[]; と等しく、配列ではなく
ポインタになる。
つまり、char *a; と宣言した場合に等しい。

なお、関数内でも extern char a[];と書いた場合はポインタになる。
0455デフォルトの名無しさんNGNG
>>454
> (450 の初期化は間違っている)

別に間違っていない。

> 定義がグローバルである場合、それは extern char a[]; と等しく、配列ではなく
> ポインタになる。

それは C++ の話で、C の場合はやっぱりコンパイルエラー。
0456デフォルトの名無しさんNGNG
>>451
要は、ポインタ使いたいなら a[] なんててせずに、素直に *a と書きなさいってこった。
0457デフォルトの名無しさんNGNG
>>454
> 定義がグローバルである場合、それは extern char a[]; と等しく、配列ではなく
> ポインタになる。
> つまり、char *a; と宣言した場合に等しい。
激しく間違い
C FAQを見たことはあっても、意味を理解できない阿呆は
以下の文章を16回声に出して読んでみろ。
 6.1:
 Q: あるソースファイルでchar a[6]と定義して、別のファイルで
   extern char *aと宣言した、なぜこれはうまくいかないのか。
 A: extern char *aという宣言が、実際の定義と食い違うからである。
  「タイプTへのポインター」は「タイプTの配列」とは異なる。
  extern char a[]を使え。
http://www.catnet.ne.jp/kouno/c_faq/c6.html
0458デフォルトの名無しさんNGNG
いやー見てて面白いなぁ。たかが言語ごときに苦労してやがる。レベルひくぅ
0459デフォルトの名無しさんNGNG
す、すげぇ・・・前スレの
http://pc3.2ch.net/test/read.cgi/tech/1034337064/781
で出たような話題が早くもまた話題になるなんて・・・
これがCスレの恐ろしさか・・・
0460デフォルトの名無しさんNGNG
>>459
> これがCスレの恐ろしさか・・・
その通り、ジ○ンプのこ○かめと同様です。
0461デフォルトの名無しさんNGNG
ま、配列とポインタは全く別のものだというこった。
同じものとは考えないほうがいい。
同じものとして扱える局面はあるが、根本的には別のものである。

混乱に拍車をかけてるのは関数の宣言で、
void foo(char str[]);
なんてできてしまうことだ。この場合「だけ」は例外でstrはポインタになる。
それ以外で、[]をつけて宣言した場合は全部配列だ。
0462デフォルトの名無しさんNGNG
>>459-460
まぁ、そのくらい住人が多いし初心者も気軽に質問できるってことですよ。
ていうか、前スレのことは全然気がつかなかった。
0463デフォルトの名無しさんNGNG
答える方もレベル低いからレスもあてにならんがな(w
0464デフォルトの名無しさんNGNG
ほんと当てになりませんね(w
http://pc3.2ch.net/test/read.cgi/tech/1034337064/781
↑周辺みて笑いました。さも本当のようにどうどうと書いる。
0465デフォルトの名無しさんNGNG
>>459
gokurousan
0466hiloshi ◆W2li6n5Xa6 NGNG
どうも。
質問とかじゃないんですけど、以前、ソースの中身を気にしろって
事を言われたので、チェックして欲しいなと思いまして。
ちゃんと実行はされるんですけど、もっといい書き方があったら
教えて欲しいです。

作ったプログラムは、車を移動するってやつです。
今オレが使えるものを駆使しましたw

この程度ですが、どうかお願いします。
0467hiloshi ◆W2li6n5Xa6 NGNG
#include <stdio.h>

/*mycarの座標*/
typedef struct
{
int x1;
int y1;
}point;

/*車(mycar)*/
typedef struct
{
double fuel;
point p;
}car;

/*X方向にx2、Y方向にy2移動*/
void move_car(car *a,int x2,int y2)
{
a->p.x1+=x2;
a->p.y1+=y2;
}
0468hiloshi ◆W2li6n5Xa6 NGNG
/*車の状態を表示*/
void print_sub(car a)
{
printf("現在位置 x:%d\n",a.p.x1);
printf("     y:%d\n",a.p.y1);
printf("残り燃料:%.1f\n\n",a.fuel);
}

int main(void)
{
car mycar; /*車*/
int sel;
int x,y; /*移動距離*/
double use_fuel; /*移動して消費した燃料*/

puts("■車移動プログラム■");

mycar.p.x1=mycar.p.y1=0;
mycar.fuel=1000;

print_sub(mycar);
0469hiloshi ◆W2li6n5Xa6 NGNG
while(1)
{
do /*selが1か0でない時は繰り返す*/
{
printf("移動しますか(Yes/1 No/0):");
scanf("%d",&sel);
}while(sel!=1&&sel!=0);

if(sel==1)
{
puts("移動距離を入力してください。");
printf("X方向:"); scanf("%d",&x);
printf("Y方向:"); scanf("%d",&y);
0470hiloshi ◆W2li6n5Xa6 NGNG
use_fuel=((x*10)+(y*10))/7;

mycar.fuel-=use_fuel;

if(mycar.fuel>=0) /*燃料が残るなら動かす*/
move_car(&mycar,x,y);
else /*残らない時はその旨を表示して、燃料を戻す*/
{
puts("\n燃料不足で移動できません。\n");
mycar.fuel+=use_fuel;
}

print_sub(mycar);
}

else /*selが0の時、プログラムは終了へ*/
break;
}

return(0);
}
0471デフォルトの名無しさんNGNG
typedef struct
{
double fuel;
point p;
}car;

のpは,ポインタと間違われる可能性がある

あと,コピペの仕方が見にくいです

スペースを入れてくらはい
0472デフォルトの名無しさんNGNG
あと,テキストファイルとかに書いてうpした方がいいと思われ
そして,すれ違い感が漂っている
0473hiloshi ◆W2li6n5Xa6 NGNG
>>472
>テキストファイルとかに書いてうp
ってどういう事ですか?
あとすれ違い感って
スレ違いってことですか?
0474デフォルトの名無しさんNGNG
>>472
名前見てみろ!
0475472NGNG
    ∧ ∧        / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ̄ ̄( ゚Д゚) ̄ ̄|   < もう寝るよ。おやすみ。
|\⌒⌒⌒⌒⌒⌒\   \
|  \           \    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
\  |⌒⌒⌒⌒⌒⌒|
  \ |_______|
0476デフォルトの名無しさんNGNG
CとC++てなにがちがうの?
0477デフォルトの名無しさんNGNG
全部
0478デフォルトの名無しさんNGNG
C; C+=1;の違い
0479デフォルトの名無しさんNGNG
char box[10][12];

char *GetAdr()
{
 int i;

 for(i=0;i<12;i++)
   box[0][i]=1;

 return box;
}

void main()
{
 int i;
 char *pbox;

 pbox=GetAdr();

 for(i=0;i<12;i++)
  printf("%d\n"pbox[0][i]);
}

いろいろとエラーが出てしまいます。
どのようにすればいいでしょうか?
0480デフォルトの名無しさんNGNG
char** pbox;
0481デフォルトの名無しさんNGNG
char *GetAdr()も問題のようなんですが
0482デフォルトの名無しさんNGNG
char **GetAdr()になおしましたが,
return box;
の時にどうすればいいのかわかりません。
0483デフォルトの名無しさんNGNG
??
0484デフォルトの名無しさんNGNG
>>479
> いろいろとエラーが出てしまいます。
> どのようにすればいいでしょうか?

エラーが出たらエラーメッセージが指摘していることを直せ。
基本だ。
それをしようとしないで人に訊くだけなら迷惑だからプログラミングするな。
0485デフォルトの名無しさんNGNG
return (char **)box;
0486デフォルトの名無しさんNGNG
エラーメッセージは環境依存
0487デフォルトの名無しさんNGNG
>>486
んー、それで論争はちょっと無理げ
0488デフォルトの名無しさんNGNG
>>485
プ
0489デフォルトの名無しさんNGNG
人が折角聞いてんだからさっさと答えろやカス
0490デフォルトの名無しさんNGNG
>>466
間違えて文字入力した時の対策をしてくれ
この世の終わりまで回り続けるところだった
0491490NGNG
くだらないことで上げてしまった
・・・鬱だ氏のう
0492デフォルトの名無しさんNGNG
お題:構造体をいちいちtypedefするのってどうよ?
0493Zetton ◆Rp2WIrE1u2 NGNG
初歩的な質問ですいません。

puts()関数やstrcpy()関数などは
配列の先頭のアドレスを渡すだけで
配列全体にアクセスできるんでしょうか?

puts()関数の内部的動きを教えて下さい。
0494デフォルトの名無しさんNGNG
>>488
あってるやん
0495Zetton ◆Rp2WIrE1u2 NGNG
訂正

初歩的な質問ですいません。

puts()関数やstrcpy()関数などは
配列の先頭のアドレスを渡すだけで
配列全体になぜスできるんでしょうか?

puts()関数の内部的動きを教えて下さい。


0496デフォルトの名無しさんNGNG
>>493

a[0]='m';
a[1]='n';
a[2]='\n'`;

\nが見つかり出力はそこで終わり
0497デフォルトの名無しさんNGNG
>>493
なんでマニュアルを見ないんだろう・・・・
putsもstrcpyも配列内に\0が見つかるまで永久に処理を続けるの。
0498デフォルトの名無しさんNGNG
ZettonのHNはそこらの掲示板で見るのだが・・・。
0499496NGNG
これだから窓際なんだ・・・
0500デフォルトの名無しさんNGNG
>>496
ハァ?
0501デフォルトの名無しさんNGNG
>>500
これだから窓際なんだ・・・
0502デフォルトの名無しさんNGNG
C?( ´,_ゝ`)プッ
0503デフォルトの名無しさんNGNG
>>496
putsは\nを見つけても処理を終えないけど・・・・
0504デフォルトの名無しさんNGNG
>>496により、文字配列の終端子は'\n'ということが証明されますた
0505Zetton ◆Rp2WIrE1u2 NGNG
>>496
ヌル文字のことを言っているのでしょうか?
0506デフォルトの名無しさんNGNG
>>505
fgetsの仕様とごちゃまぜにした。に190円。
0507Zetton ◆Rp2WIrE1u2 NGNG
#include<stdio.h>
void func(int arg[]);
main()
{
int a[]=
{
0,1,2,3
};
func(a);
/*
この時、関数にはaの先頭のアドレス
が渡されると思うんですが、

その場合、ユーザー関数の引数は
ポインタ変数じゃないといけない、
などいろいろな矛盾が出てくるんです。*/
}

void func(int arg[]) /* この時、ユーザー関数の引数には何が入っているのでしょうか? */
{
arg[0]=10;
arg[1]=11;
arg[2]=12;
arg[3]=13;
printf("%d %d %d %d",arg[0],arg[1],arg[2],arg[3]);
}
お願いします。
0508デフォルトの名無しさんNGNG
その質問の仕方は・・・。
やはりあのZettonか
0509デフォルトの名無しさんNGNG
>>492
> お題:構造体をいちいちtypedefするのってどうよ?

宣言の時にいちいち struct つけなくていいからそうする
0510デフォルトの名無しさんNGNG
>>479
なんといっていいか、おそらくこういうことをやりたいんだろう。
二次元の配列をパラメータでやり取りするときはこうやる。

boxがポインタ型になったときはは(char**)じゃないぞ。(char (*)[12])だ。
---
#include <stdio.h>
char box[10][12]; 

char (*GetAdr())[12]
{ 
  int i; 

  for(i=0;i<12;i++) 
    box[0][i]=1; 

  return box; 
} 

int main() 
{ 
  int i; 
  char (* pbox)[12];

  pbox=GetAdr(); 

  for(i=0;i<12;i++) 
    printf("%d\n", pbox[0][i]);
  return 0;
} 
0511デフォルトの名無しさんNGNG
>>507
> void func(int arg[]) /* この時、ユーザー関数の引数には何が入っているのでしょうか? */

&a[0]
0512デフォルトの名無しさんNGNG
>>509
逆にいうとそれだけなんだよな
0513デフォルトの名無しさんNGNG
>>507

printf("%d %d %d %d",a[0],a[1],a[2],a[3]);
func(a);
printf("%d %d %d %d",a[0],a[1],a[2],a[3]);

で検証しないいけないんじゃなかろうか。
0514デフォルトの名無しさんNGNG
>>512
構造体宣言の時に 1 回だけ typedef するのと、構造体定義のたびに struct を
つけて回るのとどっちがいい?
0515デフォルトの名無しさんNGNG
>>512
あとはFILEみたいに構造体であることを使用者が知らなくてよいものをつくるときとか。
それならひとつの型とした方が自然。
0516デフォルトの名無しさんNGNG
>>506
'\0' との区別がついていないに \240-。
0517Zetton ◆Rp2WIrE1u2 NGNG
>>511
アドレスは
ポインタ変数にしか入れれないんじゃないでしょうか?
0518デフォルトの名無しさんNGNG
>>507
もしかしてさ、仮引数におけるvoid arg*とvoid arg[]はまったく同じだということをしらないとか?
0519518NGNG
void arg*じゃなくてvoid *arg
0520デフォルトの名無しさんNGNG
>>515
FILEは使用者がメンバを使うわけじゃないからいいけど
メンバを使う場合は構造体であることがわかりやすい方がいいんじゃないかなぁ。
0521515NGNG
>>520
俺はそう考えてメンバーにアクセスするときはtypedefしないようにしているよ。

あまり受け入れられないスタイルだけど(^_^;)
0522主婦のサークルで〜すNGNG
ほんの少し刺激を求めてる主婦のサークルを作りました!
私たち主婦が楽しめる安全でちょっとトキメキのある出会を求めて
只今男性会員を募集中です!! 女性会員も募集(^○^)/"
http://f-cc.com/~tokimail/
0523デフォルトの名無しさんNGNG
>>470
とりあえず、ざっと見た感想を。

燃料が足りるかどうか判別するのは、move_carの中でやったほうがよくないか?
で、move_carが返す値で燃料が足りてるかどうかmainで表示する。こんな風に。

#define MOVE_EMPTY_FUEL 1
#define MOVE_NORMAL 0
int move_car(...) {
 :
 if (燃料が足りない)
  return MOVE_EMPTY_FUEL;
 :
 return MOVE_NORMAL;
}
int main() {
 :
 switch (move_car(...)) {
 case MOVE_EMPTY_FUEL:
  puts("\n燃料不足で移動できません。\n");
  exit(0);
  break;
みたいな感じ。
あと、print_subという名前はあまりよくないような気がする。
print_carとかね。できるだけ名前は具体的なものをつけた方がいいと思うぞ。
0524デフォルトの名無しさんNGNG
>>522
マジでか!
0525デフォルトの名無しさんNGNG
>>522
C言語の得意な主婦と出会いたいです!
0526デフォルトの名無しさんNGNG
Cの好きな主婦がいいです!
0527デフォルトの名無しさんNGNG
C言語のような主婦がいいです!
0528デフォルトの名無しさんNGNG
主婦でありさえすればCなんてどうでもいいです!
0529デフォルトの名無しさんNGNG
int a;
/* いろいろ */

if(a==1||a==2||a==3||a==4){
/* いろいろ */
}

これは
switch(a){
case 1:
case 2:
case 3:
case 4:
/* いろいろ */
}

と書くべきですよね?
0530デフォルトの名無しさんNGNG
if (0 < a && a < 5)
と書くべき。
0531530NGNG
あ、連番だとそうなるか・・・
じゃあ、、、

int a;
/* いろいろ */

if(a==1||a==2||a==4||a==5){
/* いろいろ */
}

これは
switch(a){
case 1:
case 2:
case 4:
case 5:
/* いろいろ */
}
と書くべきですよね?
0532531NGNG
名前間違った
529だ
0533デフォルトの名無しさんNGNG
知るか、勝手にしろボケ。
0534デフォルトの名無しさんNGNG
switch厨死ね
0535デフォルトの名無しさんNGNG
主婦タン・・・
0536デフォルトの名無しさんNGNG
>>530
それ(switchの方)で良いんでねえの。
switch (var) {
case 1: case 2: case 4: case 5:
/* 処理 */
}
の方が見やすいかもしれない。その辺はお好みで
0537536NGNG
>>530じゃねえやい。>>531だーよ。
0538デフォルトの名無しさんNGNG
switchで、breakしないとそのまま続けて実行するのは便利なのか不便なのか。

0539デフォルトの名無しさんNGNG
>>538
お前の少ない脳でもちょっとは考えて発言しろや
便利に決まってんだろ。ヴォケ
0540デフォルトの名無しさんNGNG
>>539
俺にとっては不便だけどな。
05411/2NGNG
質問というか、アドバイスお願いしたいのですが、
下記のプログラムで、逆ポーランド表記は可能でしょうか?
確認手段がなく、頭の中で実行可能かどうかの判断もできないヘタレなもので。

#include<stdio.h>

char stack[50],polish[50];
double v[50];
int pri[256];
int sp1,sp2;

int main(void)
{
int i;
char *p="逆ポーランド表記にする式";
for(i=0; i<=255; i++)
pri[i]=4;

pri['+']=pri['-']=1;
pri['*']=pri['/']=2;
pri['^']=3;
pri['(']=5;
pri[')']=0;

stack[0]=0; pri[0]=-1;
05422/2NGNG
sp1=sp2=0;
while(*p != '\0'{
while(pri[*p]<=pri[stack[sp1]] && stack[sp1] != '(')
polish[++sp2]=stack[sp1--];
if(*p != ')')
stack[++sp1]=*p;
else
sp1--;
p++;
}

for(i=sp1; i>0; i--)
polish[++sp2] = stack[i];
for(i=1; i<=sp2; i++)
putchar(polish[i]);
}

誤字脱字等は自分でなんとかできますが、
何か決定的な間違いとかありましたらアドバイスを。
0543デフォルトの名無しさんNGNG
>>510

神
普通の書籍では,char (*GetAdr())[12]のようなことが書いていないので助かりました
0544デフォルトの名無しさんNGNG
>>522
主婦だぁ?
中学生以下でないと反応しません
0545デフォルトの名無しさんNGNG
>>531

if (0 < a && a < 5 && a != 3)
0546デフォルトの名無しさんNGNG
>>541
全角スペース入れて見やすくしてくれ
0547デフォルトの名無しさんNGNG
>>541
546 には従うな
&nbsp; にしろ
0548デフォルトの名無しさんNGNG
>>547
それ、ABONEのリンク先表示機能で見たとき死ぬほど読みにくい。やめてくれ。
0549デフォルトの名無しさんNGNG
>>541
数字が 2 桁以上になると実行結果が訳わからなくなる
0550デフォルトの名無しさんNGNG
>>548
そんな事は A Bone の作者に文句言え
547 に言うのは筋が違う
0551hiloshi ◆W2li6n5Xa6 NGNG
どうも。
一通り基礎はやったかなって感じです。
ファイルの入出力とかはまだなんで、新しい本を買いたいと思うんですが

そこで、これが出来たら基礎はおkみたいな
問題出してくれませんか?
テキストの問題とか、Web上のとかは一通りやってみたんで。
お願いします。ぺこり
0552デフォルトの名無しさんNGNG
>>551
「C言語による最新アルゴリズム事典」を立ち読み。
0553hiloshi ◆W2li6n5Xa6 NGNG
>>552

奥村晴彦
『C言語による最新アルゴリズム事典』
技術評論社,1991年,ISBN4-87408-414-1,2400円
ですか?
0554デフォルトの名無しさんNGNG
そのまんまやんっ、古典だねっ(かなり失礼(w)
0555hiloshi ◆W2li6n5Xa6 NGNG
出来れば金がかかんない方が・・・

問題ないですかね?
0556デフォルトの名無しさんNGNG
立ち読みって書いてあるじゃろが〜
0557hiloshi ◆W2li6n5Xa6 NGNG
その場で覚えると!?
ふふ。やってみますw
0558デフォルトの名無しさんNGNG
>>557
立ち読みするならコレ。
http://pc3.2ch.net/test/read.cgi/tech/1006933077/
0559デフォルトの名無しさんNGNG
>>557
公開されてるソースを片端から読んでみるとか。
*BSDやらLinuxやらはコードの宝庫だぞ。

あと、webだと
ttp://www.pro.or.jp/~fuji/mybooks/cdiag/index.html
こんなのもある。これを読めば、どういうプログラムを
書いてはいけないかがわかる(w
0560>>541-542NGNG
すみません。コピペしたらスペースが消えたみたいで…

>>549さん
後輩の宿題なんで詳細はわからないのですが、
二桁以上の式はないようなので、その点は大丈夫かと思います。
アドバイスありがとうございます。

#include<stdio.h>

char stack[50],polish[50];
double v[50];
int pri[256];
int sp1,sp2;

int main(void)
{
int i;
char *p="逆ポーランド表記にする式";
for(i=0; i<=255; i++)
pri[i]=4;

pri['+']=pri['-']=1;
pri['*']=pri['/']=2;
pri['^']=3;
pri['(']=5;
pri[')']=0;

stack[0]=0;
pri[0]=-1;
0561>>541-542NGNG
   sp1=sp2=0;
   while(*p != '\0'{
      while(pri[*p]<=pri[stack[sp1]] && stack[sp1] != '(')
           polish[++sp2]=stack[sp1--];
      if(*p != ')')
           stack[++sp1]=*p;
      else
           sp1--;
      p++;
   }

   for(i=sp1; i>0; i--)
      polish[++sp2] = stack[i];
   for(i=1; i<=sp2; i++)
      putchar(polish[i]);
}

またやってしまった…
逆に迷惑だと思うので修正はひかえます…
0562デフォルトの名無しさんNGNG
金かけられ無いんならライオン本はだめか。
0563デフォルトの名無しさんNGNG
宿題スレ行ってみたら?
0564>>541-542NGNG
すみません。
でも>>549さんのレスをみると一桁なら大丈夫のようなので、
宿題スレにはいかなくても良いかな?と思います。
皆さんアドバイスありがとうございました。
0565549NGNG
>>564
待った、漏れは、詳細な検証はしてないぞ。
1+2 とか 1+(2+3) くらい。

しかし、本人の宿題を持ってくるだけでスレ違いなのに、後輩の宿題とは・・・。
564 もその後輩も気が知れない。
0566デフォルトの名無しさんNGNG
後輩は,美人です
0567hiloshi ◆W2li6n5Xa6 NGNG
今宿題スレに行き、即爆破しました。

fgetsってどう使うんですか?
実引数が3つありますよね?
fgets(A,B,C)ってので、
それぞれどういう意味なんですか?

あと上記だとCのところにstdinとあるやつも
意味不明ですた
0568デフォルトの名無しさんNGNG
>>567
Don't mach!
0569デフォルトの名無しさんNGNG
march!
0570565NGNG
>>566
なるほど、564 の気は知れた。
0571デフォルトの名無しさんNGNG
>>567
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vclib/html/_crt_fgets.2c_.fgetws.asp
0572デフォルトの名無しさんNGNG
>>567
おいおい、ファイルはやっとらんのか。fopenとかそういうやつだ。
man fgetsしろ、といいたいところだがwindowsだったな。
ttp://www.linux.or.jp/JM/html/LDP_man-pages/man3/fgets.3.html
を見れ。これはLinuxのmanページだが、fgetsはISOの標準関数なので、
ここの説明でもんだいなかろ。

わかんない関数が出てきたらまず
http://www.linux.or.jp/JM/
のman on WWWで調べるといいと思う。
0573hiloshi ◆W2li6n5Xa6 NGNG
>>572
ありがとうございます。
ファイルはまだなんですよ。本に書いてる事は一通りやったんですが
一言も出てきませんでした。
だから今Cの解説サイトとか見て、ファイルIOの勉強します。
0574 NGNG
char box[10][12];

const char (*GetAdr())[12]
{
return box;
}

可能?
0575hiloshi ◆W2li6n5Xa6 NGNG
あともう一ついいですか?
Cを勉強しながらC++もやりたいなって思ってるんですよ。
今大学でやってるのはCだけなんですけど
来年からC++とJavaもやるんで、ちょっと予習しようかなって。
CとC++を同時に学ぶ事は何か問題ありますか?
0576デフォルトの名無しさんNGNG
一応言っておく。

>>572 のページはあくまでLinux用だからな。標準ではない拡張がなさ
れてる関数も多いから注意しとけよ。
0577デフォルトの名無しさんNGNG
>>567
これでも買ったらどうだ?
ttp://www.hir-net.com/book/book19/
0578デフォルトの名無しさんNGNG
>>575
C++ は、C を日本語と同じくらいスムースに使えないと手に負えないぞ。
C をベースにして拡張しまくった言語だから。
C++ コンパイラで C をコンパイルすることはできるが、それは C++ を学ぶとは
言わないし。
0579デフォルトの名無しさんNGNG
>>577
あー、この本いいっすよね。たまにバグがあるけど(w
おすすめの本です。
0580デフォルトの名無しさんNGNG
>>574
何を可能か訊きたいのかわからないが、コンパイルは可能だ。
0581デフォルトの名無しさんNGNG
>>575
それならCなんてやらずにC++やっとけよ。
0582hiloshi ◆W2li6n5Xa6 NGNG
>>578
じゃあやっぱりCをやりまくってから
移った方がいいですね。
やっぱもう一冊本買おうかなーって思うんですけど
「新C言語入門 シニア編」 ソフトバンク 林晴比古著
がおすすめだってよく書いてるんですが
この本持ってる人とかどうですか?
0583デフォルトの名無しさんNGNG
ObjectPascal(Delphi) -> Java -> C++がお勧め。
0584hiloshi ◆W2li6n5Xa6 NGNG
>>581
でも今学校でCやってるんすよ。
それが無かったら今すぐにでもC++いきたいんですけどねー。
ああ、やらされる感が・・・
0585デフォルトの名無しさんNGNG
>>582
その本タメよタメタメ!バグだらけだし、未だに古いCのスタイル
使ってるし。
0586デフォルトの名無しさんNGNG
んなもんガッコでC勉強してるフリして家でC++勉強しときゃいいんだよ。
0587デフォルトの名無しさんNGNG
>>585
古い?どのへんが?
0588デフォルトの名無しさんNGNG
だから!ハルヒコ本はやめとけと!あれほど!
0589デフォルトの名無しさんNGNG
あいつに1万以上投資した自分が情けない・・・
0590デフォルトの名無しさんNGNG
>>588
だって学校の教科書だったんだもん!!
今では開くことなくなったなぁ。役に立たないから。
0591デフォルトの名無しさんNGNG
マナたんハァハァだよな
0592デフォルトの名無しさんNGNG
麻〜奈〜
0593デフォルトの名無しさんNGNG
あんたらSMか
0594デフォルトの名無しさんNGNG
まなタンに縛られて鞭打たれてハイヒールで踏まれたいです。
0595デフォルトの名無しさんNGNG
マリオです
0596デフォルトの名無しさんNGNG
ルイージです
0597デフォルトの名無しさんNGNG
>>591-596
C で書いて下さい。
0598デフォルトの名無しさんNGNG
"591 :デフォルトの名無しさん :02/10/25 00:44"
"マナたんハァハァだよな"

"592 :デフォルトの名無しさん :02/10/25 00:47"
"麻〜奈〜"

"593 :デフォルトの名無しさん :02/10/25 00:49"
"あんたらSMか"

"594 :デフォルトの名無しさん :02/10/25 00:50"
"まなタンに縛られて鞭打たれてハイヒールで踏まれたいです。"

"595 :デフォルトの名無しさん :02/10/25 00:52"
"マリオです"

"596 :デフォルトの名無しさん :02/10/25 00:52"
"ルイージです";
0599デフォルトの名無しさんNGNG
>>598
へ〜Cって遭難?
0600Windows 3.1NGNG
まぁ無難に600と
0601デフォルトの名無しさんNGNG
WIN3.1だなんて今の時代に・・・って01時30分かいっ!!!
0602デフォルトの名無しさんNGNG
>>599
まあ、先頭に char *dummy = とか書いてくれれば文法エラーではない。
0603デフォルトの名無しさんNGNG
>>602
( ´_ゝ`)プッ
0604デフォルトの名無しさんNGNG
1;

これだけでもOKだろ?
なんの意味もないから警告はでるかもしれないけど。
0605デフォルトの名無しさんNGNG
>>604
OK だ。
ところで、それで何をやりたい?
0606デフォルトの名無しさんNGNG
>>605
>>602が定数だけ書くのは違反だと言っているみたいだから・・・
0607デフォルトの名無しさんNGNG
int main() {
  ">>602の教訓を生かして、これからはコメントを定数として宣言します!!";
  return 0;
}
0608つまらんNGNG
       604 :デ フォル トの
           1;      名 無し さん
        これだけでもOK       :02/  10  /2
           なんの意                5  02 :39
         605 :デフォ  味もなだろ?      は
           >>604   ルトのいから警告
      OK だ。 ところで     名無しさん  でるかもし
         606 :デフォ 、それ     :02/10/25 0
           >>60 5   ルトので 何 をやりた    れないけど。
           >>602が定    名無しさん  い?    2:41
     60 7 :デフ ォ 数だけ       :02/10/25 0
           in t ma in ルトの書くのは違
             ">>6 () { 名無 しさ ん  反だと 言っ て2:42
             retu 02の教       :02/10/25
           }     rn 0; 訓を 生かして      いるみたいだ から・・・
                          、これからは 02:52
      彡                       コメ  ント  を定数
         彡                        とし  て宣  言し
             彡                      ま  す!!";

(,,ノ゚д゚)ノ
0609デフォルトの名無しさんNGNG
つまらないかどうかは環境依存
0610デフォルトの名無しさんNGNG
つまらないってゆうか未定義
0611デフォルトの名無しさんNGNG
未定義かどうかは環境依存
0612デフォルトの名無しさんNGNG
環境依存ってゆうか未定義
0613デフォルトの名無しさんNGNG
未定義っていうか文法違反
0614デフォルトの名無しさんNGNG
マ板ってこんな下らないスレばかりなんですね。
0615デフォルトの名無しさんNGNG
614 が間違ったことを言った
0616デフォルトの名無しさんNGNG
本当は2ちゃんねるは全部こんな下らないスレばかり。
0617デフォルトの名無しさんNGNG
616 が知ったようなかぶりをこいていい気になっている模様 ミットモ(・A・)ナイ!
0618デフォルトの名無しさんNGNG
キャッチャーがミットもってないと困るよね。
0619デフォルトの名無しさんNGNG
俺がC言語を語ってやろうと思ったが、やめた。
0620hiloshi ◆W2li6n5Xa6 NGNG
もう一つ質問!
Cで2冊目に買う本としてお勧めってあります?
0621デフォルトの名無しさんNGNG
Effective C++
0622デフォルトの名無しさんNGNG
書き込む前に、スレにふさわしい内容か考えてね
本の事なら ↓ に逝ってちょ

推薦図書/必読書のためのスレッド PART 6
http://pc3.2ch.net/test/read.cgi/tech/1033207156/l50
0623デフォルトの名無しさんNGNG
>>620
K&R
この本が理解できれば、Cを使えると言ってもいいし、
C++に移行してもいいだろう。
0624K&R厨NGNG
本は買うのが勿体ないからWeb活用汁。
それでもってんなら聖書イットケ
0625デフォルトの名無しさんNGNG
やっぱりGoF本でしょう?
0626hiloshi ◆W2li6n5Xa6 NGNG
>>622
すいませんでした。
今度から調べます。
0627デフォルトの名無しさんNGNG
今まで調べてなかったのかよ・・・氏ねヴォケ
0628hiloshi ◆W2li6n5Xa6 NGNG
>>627
まあC言語に関する質問かなって・・・
0629デフォルトの名無しさんNGNG
今更C言語ですか??( ´,_ゝ`)プッ
0630hiloshi ◆W2li6n5Xa6 NGNG
いまさらですよねーマジで。
9月くらいにHello World作りましたから。
でも来年からはJavaとC++が出来る!!
0631デフォルトの名無しさんNGNG
そんなもん自分で進んで勉強したらいいだろーが
ガキ?
0632hiloshi ◆W2li6n5Xa6 NGNG
>>631
オレは本を読みながらやったほうが
技術も身に付くと思ってるので聞いているだけです。
0633デフォルトの名無しさんNGNG
>>632
幻想です。
0634デフォルトの名無しさんNGNG
#define MAX 100
...
char str[MAX]

とする場合と

char str[100]

にする場合では何が違うんですか?どんなケースに使い分けるんですか?
0635デフォルトの名無しさんNGNG
実行スピードが関係してくるんだよ
出来るだけマクロ使ったほうが良い。
0636デフォルトの名無しさんNGNG
>>634
定数には名前を付けた方がわかりやすい。
って言うか、


hankei * PI * PIとhankei * 3.141592653589793238 * 3.141592653589793238の差。

後、値が変わったときの修正が一カ所ですむのも魅力。
0637デフォルトの名無しさんNGNG
thanks!!
0638デフォルトの名無しさんNGNG
char str[MAX] がグローバルだったり、参照回数が頻繁だったり、
要素数でいろいろ処理することがあれば、プログラムを改良する
時に、マクロ一箇所書きかえれば済むでしょ。
0639デフォルトの名無しさんNGNG
>>634 保守性が違う。

その100という数字を後で、1000に変えるとき、
MAXを1000に変えるだけで済むか、
その変数のスコープ内の100という値を1000に変えるか。

後者の場合、その変数とは無関係な100が存在している
可能性も考慮しなくてはならない。
0640デフォルトの名無しさんNGNG
>>635
漏れは実行スピードは変わらないと思ってたけど・・・。
0641デフォルトの名無しさんNGNG
>>634
プリプロセッサが書き換えるから実行効率は変わらん
保守性向上や、読む人に意味をはっきりさせるためにマクロをつかう
p[100] と q[100] だと 100 が同じ意味なのか偶然同じ数なのかが区別できん
0642デフォルトの名無しさんNGNG
>>640
コンパイルの時多少落ちるよなw
0643デフォルトの名無しさんNGNG
今時こんな質問で懇切丁寧に答えてくれる香具師なんていないよ・・・
真面目すぎ
0644デフォルトの名無しさんNGNG
>>643
マジックナンバーの問題って重要だと思うよ。

自分の主観的なイメージを周りに反映させようとしているの?
エゴだよ。それ。
0645デフォルトの名無しさんNGNG
厨房もまじめに厨房してくれるスレ
0646デフォルトの名無しさんNGNG
>>643
簡単な質問だから厨房がはりきってしまった
0647デフォルトの名無しさんNGNG
goto文に関する注意点でよく“ほとんど使われることが無い”とか“使うぐらいなら
プログラムを見直すほうがよい”とかかれているんですが、どうして使わないほうが
よいのでしょうか?房な私から見れば書式も簡単で使いやすいんですが…。
0648デフォルトの名無しさんNGNG
>>647
プログラムが死ぬほど読みにくくなるんです。
昔のは関数とかの垣根を無視してジャンプできたりしたんで。
0649647NGNG
安易にループから脱出すると読みにくいってことですか?
0650デフォルトの名無しさんNGNG
>>649
安易にループの中からループ開始前の行に戻れたりするんです。

x;

while(a == 0)
{

if(a != 8)
goto x:

}


後、順次、選択、繰返で構造化プログラムの制御は可能ってことになってるしね。
一つの命令でそれらを超えたことを出来るからね。

行儀の悪いおばはんみたいなもんだ。
0651デフォルトの名無しさんNGNG
ルール違反に近いということで。
0652デフォルトの名無しさんNGNG
>>649
たとえばソース中にifとかwhileとあってもプログラムの制御が
どこに飛ぶか一目瞭然だけど、

goto label;

とかあると、ラベルがどこにあるか探さないと制御がどこにいくか
分からないでしょ。

でかい関数のなかで、gotoが多数使われていると、追いかけるのが
なかなかたいへん。
0653デフォルトの名無しさんNGNG
>>652
超分かりやすかったです、ありがと
0654デフォルトの名無しさんNGNG
ダミーのOwlMainを誤って使用しました。
っていたいなんなんでしょう?

誰か、おしえて〜〜
0655s.kNGNG
静的記憶域期間と自動記憶域期間、ファイル有効範囲とはなにか教えて
ください。あと、静的記憶域期間はなんと読むのですか。
0656デフォルトの名無しさんNGNG
論争が起きそうな質問じゃないと満足できなくなった漏れはCスレ中毒の重症ですか
0657デフォルトの名無しさんNGNG
>>655
要はstaticな変数のスコープ?
0658s.kNGNG
>>657さん
そうです
0659デフォルトの名無しさんNGNG
性的記憶とはなにの記憶で児童記憶とは(ry
0660デフォルトの名無しさんNGNG
>>657
JIS用語らしい。X3010に同じ語句があった。
0661デフォルトの名無しさんNGNG
>>658
じゃあ論争の火種を。

auto:宣言されたブロックとその子孫ブロック内でのみ生きられる。
static:プログラム終了まで居続ける。
0662デフォルトの名無しさんNGNG
>>661
そのままなので論争になりそうな気がしない。
0663655NGNG
static int sx=0;とint ax=0;の違いを教えて下さい。
0664デフォルトの名無しさんNGNG
関数の中か外か。
0665デフォルトの名無しさんNGNG
>655
ファイル有効範囲
auto:extern可
static:extern不可
0666デフォルトの名無しさんNGNG
シングルトン
0667デフォルトの名無しさんNGNG
>>666
は、意図的にそうしてるだけだわね。
0668デフォルトの名無しさんNGNG
このstaticってキーワード、変数の寿命を指定するのと(>>655の言うところの
「静的記憶域期間」)、名前のスコープをファイル内に限定するのと
(同じく>>655の「ファイル有効範囲」)、二つの違う意味を持つというのは
Cの言語仕様のよろしくないところだと思うんだが。

後者の意味のキーワードは"private"とかにすればよかったのに。
C++で使われてしまったのでもはや不可能だが。
0669655NGNG
#include<stdio.h>
int fx=0;
void func(void)
{
static int sx=0;
int ax=0;

printf("%3d%3d%3d\n",ax++,sx++,fx++);
}
int main(void)
{
int i;
puts("ax sx fx");
puts("----------");
for(i=0; i<10; i++)
func();
puts("----------");
return (0);
}
上記のプログラムでaxの値が変化しない所が分かりません。
0670デフォルトの名無しさんNGNG
>>669
auto変数は関数に入るたびに初期化されるから。
static変数はプログラム開始時に一度だけ初期化されるだけ。
0671655NGNG
>>670さん
ありがとうございます
0672デフォルトの名無しさんNGNG
K&R2 §8.7 Example --- A Storage Alocator に、
malloc()とfree()を実現する方法が載っているらしい。

今課題中、近くに本がない
誰か、おしえて〜〜
0673デフォルトの名無しさんNGNG
char a[1024];
とあって、
strcpy(a,"hoge");
とすると自動的にhogeのあとに\0は入りますか?
0674デフォルトの名無しさんNGNG
>>673入ル
0675673NGNG
即レスありがとうございます。
0676デフォルトの名無しさんNGNG
VC++のCRTのソース見ろ。
0677673NGNG
では
char a[1024];
char b[1024] = "hoge";
で
for(i=0;i<4;i++)a[i]=b[i];
の時は?
0678デフォルトの名無しさんNGNG
hoge
0679デフォルトの名無しさんNGNG
>>677
入るかもしれない。
0680デフォルトの名無しさんNGNG
入んないだろ。
0681デフォルトの名無しさんNGNG
>>680
なんでそう言い切れるんだか理由を述べよ。
0682デフォルトの名無しさんNGNG
>>677
ネタですか?
先頭から4文字を自分で数えられないの?
0683デフォルトの名無しさんNGNG
>>682
ハァ?
0684デフォルトの名無しさんNGNG
論争の予感
0685デフォルトの名無しさんNGNG
>681=679
ネタというか、ひねくれ者ですか?
要するに確保時に a[4]がたまたま \0になっているかも
しれないといいたいの?
0686デフォルトの名無しさんNGNG
>>683
ハァ?
0687デフォルトの名無しさんNGNG
>>685
それか静的変数だな。
ネタというか、アフォかと言いたい。
0688デフォルトの名無しさんNGNG
>>685
>>677のaがグローバルじゃないなんてどうしてわかるんだ?
0689デフォルトの名無しさんNGNG
>>688
だからネタですか?
低レベルなネタなら他へ逝ってくれ。
0690デフォルトの名無しさんNGNG
>>689
知るかよ。
0691デフォルトの名無しさんNGNG
>>690=688=683=681=679
はネタなので放置。
0692デフォルトの名無しさんNGNG
おいおいどうして答えた方がネタなんだよ。
0693デフォルトの名無しさんNGNG
>>679が静的を思いつかなくて悔しいからネタにしたがってんじゃねーの
0694デフォルトの名無しさんNGNG
ごめん、>>680だ。
0695デフォルトの名無しさんNGNG
>>692

お前の答えは幼稚なんだよ。
673と677はそういう主旨の質問じゃないだろうが。
それとも自作自演して喜んでるのか?
0696デフォルトの名無しさんNGNG
673=677=692=690=688=683=681=679

か。ネタなら少しは捻れよ。
0697デフォルトの名無しさんNGNG
>>695
自動か静的かによって答えが変わるんだから「かもしれない」で間違いではないだろ。
説明不足ではあるが。
0698デフォルトの名無しさんNGNG
> なんでそう言い切れるんだか理由を述べよ。

こんな煽りを入れるヤシに今更マジレスされてもな。
0699デフォルトの名無しさんNGNG
>>695
どういう主旨でどういう答えが幼稚じゃない答えなんだか示して欲しいものだが。
0700デフォルトの名無しさんNGNG
>>698
自作自演じゃないんだが。
つーかマジレスされると困るのかよ。>>680の答えは。
0701デフォルトの名無しさんNGNG
>>683 の煽りもそうだしな。
ネタは放置。
0702677NGNG
友人に聞いたら入らないそうです。
ってか荒れましたねw
0703デフォルトの名無しさんNGNG
よう知らんけど700突破━━━━(゚∀゚)━━━━ !!!!
0704デフォルトの名無しさんNGNG























0705デフォルトの名無しさんNGNG
>>702
だからaがグローバルなら入るっつの
0706デフォルトの名無しさんNGNG
入るか入らないかと聞かれたら「入らない」というのが答ではないのか?
>>677のforループでは'\0'は入らないぞ。

入っているか? という質問であればそりゃ入っているかもしれないし入っていないかもしれない。
0707デフォルトの名無しさんNGNG


























0708デフォルトの名無しさんNGNG
グローバルな配列って0クリアされたっけ?
0709デフォルトの名無しさんNGNG
>>708
される。ちなみにstaticな配列もグローバルスコープ、ブロックスコープ共に0クリアされる。
0710デフォルトの名無しさんNGNG
ローカル変数のみ初期化されないって言えば分かり易い。
0711デフォルトの名無しさんNGNG
>>710
厳密にはauto変数な、ってautoって言葉は規格から消滅したのかな。
staticでないローカル変数のみ初期化されない。
0712デフォルトの名無しさんNGNG
char a[1024]={0};としとけ
0713デフォルトの名無しさんNGNG
>>679の説明不足と>>680の知識不足が招いた混乱だったわけだが…
0714デフォルトの名無しさんNGNG
























0715デフォルトの名無しさんNGNG
こんな低レベルなネタでこれほど盛り上がるとは...
みんな飢えてんだな。

もっとマシなのをきぼーん。
0716デフォルトの名無しさんNGNG
char a[5]="";
char b[5]={};
0717デフォルトの名無しさんNGNG
char a[100];

/* 配列に空文字列をセットする3つの方法 */
strcpy(a, NULL);
strcpy(a, 0);
strcpy(a, "");
0718デフォルトの名無しさんNGNG
>>717
ネタですか?
0719デフォルトの名無しさんNGNG
ネタです。
0720デフォルトの名無しさんNGNG
どう見てもネタ。
strcpy(a, 0);
はありえない。文字列に数値をコピーて。
0721デフォルトの名無しさんNGNG
どうせなら3回転くらい捻ったネタきぼーん。
0722デフォルトの名無しさんNGNG
>>720
要するにNULLのことでしょ。(関数が宣言されていることを前提に)
0723デフォルトの名無しさんNGNG
いや、ネタはいらん。
0724デフォルトの名無しさんNGNG
ははーん。717=679 だな。
そのうち
717で書いたstrcpyは自作の関数(orマクロ)ですが、何か?
とか言い出すぞ。
0725デフォルトの名無しさんNGNG
>>724
違うけど。
0726デフォルトの名無しさんNGNG
>>724
まださっきの引きずってるのか。
0727デフォルトの名無しさんNGNG
>>725
そう言えよ。また盛り上げろ。
0728デフォルトの名無しさんNGNG
>>680=>>724
粘着ウゼ
0729デフォルトの名無しさんNGNG
>>724の被害妄想は放置(´・∀・`)
0730デフォルトの名無しさんNGNG
>>725=726=728=729
ジサクジエンは放置(´・∀・`)

0731デフォルトの名無しさんNGNG
週末は厨房同士がにぎやかだな、っと。
0732デフォルトの名無しさんNGNG

何でも聞け!
0733デフォルトの名無しさんNGNG
>>722が何を「要するに」と言っているのか気になる。
その関数でどういう動作を想定しているんだ。
0734デフォルトの名無しさんNGNG
>>720
数値って? strcpyは0を(char*)と解釈しますが。
0735デフォルトの名無しさんNGNG
厨房がネタにレスをすると墓穴を掘る法則
0736デフォルトの名無しさんNGNG
strcpy(a, ""); ならわかるが。
0737デフォルトの名無しさんNGNG
strcpy(a, { 'b', '\0' });
これも実は動くって知ってたか?
0738722NGNG
>>733
> その関数でどういう動作を想定しているんだ。
そんなことは知らんよ。というか、
ネタだろ というのを否定したわけじゃない。

> strcpy(a, 0);
> はありえない。文字列に数値をコピーて。
という書き込みに対して、
数値をコピーではなくNULLポインタを渡す動作でしょ
と言ってるだけ。
0739デフォルトの名無しさんNGNG
要するにNULL==0
0740デフォルトの名無しさんNGNG
>>737
動く動かない以前にコンパイル通らないんですけど。
%cat neta.c
#include <string.h>
int main(int argc, char * argv[])
{
char a[8];
strcpy(a, { 'b', '\0' });
return 0;
}
%gcc neta.c
neta.c: In function `main':
neta.c:5: syntax error before `{'
%
0741デフォルトの名無しさんNGNG
cygwinで、 tmpfile(); で作成したテンポラリファイルの中身を読み込みたいのですが
やり方がわからないです。

ご教授願えないでしょうか?
0742デフォルトの名無しさんNGNG
>>739
細かい話をすると、ポインタが与えられる文脈で
0が出てきたらコンパイラはNULLポインタと解釈する。

だから、strcpyのプロトタイプが与えられてないときに、
strcpy(a,0) なんてやると0はどう解釈されるかわからない。
単に、strcpyにバイナリ0がわたるだけ。

プロトタイプが与えられているとNULLポインタが生成されて、
strcpyにNULLポインタが渡る。

規格ではNULLポインタがバイナリ0である保証はない。
(ただしほとんどの処理系はバイナリ0だと思う)
0743デフォルトの名無しさんNGNG
>>741
tmpfileのプロトタイプは
FILE *tmpfile(void);
であるから、読むときはfgetcとかfgetsとかfreadとかを使えばよろしい。
ただし、普通tmpfileを読む前には書いてるのが普通だから(じゃないと空)、
読む関数を発行する前にfseekする必要がある。
0744デフォルトの名無しさんNGNG
>>741
書き込んだあとでrewind()すればファイルポインタが先頭に戻るので、
書いた内容が読めます。
0745741NGNG
>743, >744

動きました、ありがとうございます。
0746デフォルトの名無しさんNGNG
strcpy(a, 0); を実行すると、0番地から始まる内容をCストリングと見なしてaに
コピーしようとする。

0番地にアクセスした場合の動作は処理系依存。
0747デフォルトの名無しさんNGNG
>>746
> 0番地

もうネタは結構。
0748デフォルトの名無しさんNGNG
Cで点を表示する関数ってなんですか?
円とか書けないんですか?
0749デフォルトの名無しさんNGNG
またNULL論争か。

>>748
printf("点円");
0750デフォルトの名無しさんNGNG
そういえば戻り値のない(void)関数をプロトタイプなしで使った場合、
a=func();はコンパイルが通りますよね。
これってどう動作するんですか?
やっぱり未定義ってやつですか?
0751デフォルトの名無しさんNGNG
>>749
( ̄□ ̄;)!!
ないの!?
0752デフォルトの名無しさんNGNG
>>751
標準関数だけだと*と空白をつかって書き出すくらいしか・・・

0753デフォルトの名無しさんNGNG
>>752
標準関数以外を使えばできるとな
どんな関数でつか?
0754デフォルトの名無しさんNGNG

標準ではないから情報処理試験では線を引く関数などを独自に定義しているな。
0755デフォルトの名無しさんNGNG
>>753
正直しらん。
環境を書いてくれれば他の人が答えてくれるかも。
0756デフォルトの名無しさんNGNG
Windows2000です。
0757デフォルトの名無しさんNGNG
>>755
逆に言えば知らなくても大丈夫ってことか
それにしても何でないんだろな
いろいろ便利だと思うのに・・・
0758デフォルトの名無しさんNGNG
>>750
コンパイラはプロトタイプや定義の与えられてない関数があったとき、
その関数が返す値をintと仮定する。
これは古のCから引き継いだ仕様だ。
0759デフォルトの名無しさんNGNG
>>756
コンパイラは何つかってるの?
0760デフォルトの名無しさんNGNG
私はXPにBCCなんですが、
点を表示することは可能でしょうか?
0761デフォルトの名無しさんNGNG
>>760
puts(".");
0762デフォルトの名無しさんNGNG
>760
windows使ってる香具師はとりあえず猫みとけ。
0763ユカリNGNG
どうも、初めまして。
ここのスレは、面白いですね。
http://www.h5.dion.ne.jp/~gekitoku/
http://www.h4.dion.ne.jp/~gekiyasu/
http://www.h5.dion.ne.jp/~gekirea/
http://www.h4.dion.ne.jp/~shinsetu/
http://www.planning-instigator.com/silentpeople/best/index2.html
0764デフォルトの名無しさんNGNG
      6        2/1              05
   7   63 :ユカ  :0         5 21:
       どうも リ 、初めまし 0/2
         このスレは、面 て。  すね。     itoku/
     こ h t tp://www.h5  白いで     e.jp/~gek
       htt p       4.  .dion.n   iyasu/
       ht t  ://www.h   ne.jp/~gek        ea/
     h tt  p://www.h5  dion.   jp/~gek ir  
      http  p://www.h4  .dion.ne.       p/~shinsetu/
         ://www .pla  .dion.   ne.j  
            nning -insti   gato r.com/sile
                       ntpeople/be
       彡                     st/inde x2.ht ml
          彡

(,,ノ゚д゚)ノ
0765デフォルトの名無しさんNGNG
すげー、専用板まであるじゃん。
0766また貴様か!&rlo;!ろり懲はし少&lro;NGNG
また貴様か!&&rrlo;!ろり懲はし少&&rlro;
              ヽ \
             / \ \
       ∧_∧/
      (;´Д`)     i i i
      /    ヽ _   i i i--、
     ./| |   | |   ̄ ̄ ̄ |:::::|.
    / \ヽ/| |       ノ__ノ..
   /   \\| |
   / /⌒\ し(メ    .i i i . .
 / /    > ) \  ノノノ
/ /     / /    .\_  ザックザック
し'     (_つ   /:::::/::...   /ヽ
          ; "ノ・ ./∴: / )i iヽ-、_へ    ,ヘ
          '',, : :―― / / i i i iヽ . ̄ ゙― ノ /
    n_    _/;    i  .ノ / /ノ-' ̄ ゙ ― 、__ノ
  _ノ 二二二、_( _Д_ ;)-ヽ_ノ-'>>763
  ゙ー ''~      ∨ ̄∨
0767デフォルトの名無しさんNGNG
 
0768デフォルトの名無しさんNGNG
はじめてのC
0769デフォルトの名無しさんNGNG
timeGetTime関数を普段使っているのですが,もっとせいのうのいい関数はあるのでしょうか?
0770デフォルトの名無しさんNGNG
せいのうのいいってのは1/1,000,000,000,000,000秒ぐらいの精度です。
0771デフォルトの名無しさんNGNG
>>770
RTCはそんなに高い精度持たないだろ。
0772デフォルトの名無しさんNGNG
もっと威勢の良い?
0773デフォルトの名無しさんNGNG
今ファイルの入出力をやってるんですが
「追加モードで "car.dat" をオープンする」
ってどういうことですか?
0774デフォルトの名無しさんNGNG
>>770
テラ単位越えてる?それ。
0775デフォルトの名無しさんNGNG
fopen(p,"car.dat","w+"); ?
0776デフォルトの名無しさんNGNG
>>775
なるほど。
r+とw+ってどう違うんですかね?
書き込んで読む込むのと
読み込んで書き込む?
逆か?
読み込んで書き込むのはわかりますけど、
書き込んでから読み込む必要ってあります?
0777デフォルトの名無しさんNGNG
777
0778デフォルトの名無しさんNGNG
セブンセブンセブン
0779mokorikomoNGNG
>770
そんな解像度のハードウェアが存在するのか?
0780デフォルトの名無しさんNGNG
7of9
0781デフォルトの名無しさんNGNG
>>770
2^(-15) or 10^(-15) Dotch?
0782デフォルトの名無しさんNGNG
>>773
fopen("car.dat","a");

>>775
引数が多いぞ。
0783デフォルトの名無しさんNGNG
>>770その他
以降はこちらへどうぞ

ここだけ時間が5年進んでいるスレ。
http://pc3.2ch.net/test/read.cgi/tech/1028450760/
0784デフォルトの名無しさんNGNG
これを実行したらおかしな事に・・
なんでかわかる?

#include <stdio.h>

int check_str(char *name)
{
char *end="end";

while((*name++)==(*end++))
if(*name=='\0'&&*end=='\0')
return(1);

return(0);
}
0785デフォルトの名無しさんNGNG
int main(void)
{
FILE *fp;
char maker[20],car[20];
int cc;
fp=fopen("car.dat","w");
while(1)
{
printf("メーカ名を入力してください(終了条件/end):");
gets(maker);
if(!check_str(maker))
{
printf("車種を入力してください:");
gets(car);
printf("排気量を入力してください:");
scanf("%d",&cc);
fprintf(fp,"メーカ名:%s 車種:%s 排気量:%d\n",maker,car,cc);
}
else
break;
}
fclose(fp);
return(0);
}

0786デフォルトの名無しさんNGNG
>>785
取りあえずstrcmp()って知ってるか?
0787デフォルトの名無しさんNGNG
>>785
しらねーだ
なんだべかそれ?
0788デフォルトの名無しさんNGNG
>>785
思い出した!
stringヘッダのだ
文字列比較ってやっちゃな
0789デフォルトの名無しさんNGNG
>>788
そうだっちゃ
0790デフォルトの名無しさんNGNG
オレは自分に言ってるのか・・・

訂正箇所
>>785
改め
>>786
0791デフォルトの名無しさんNGNG
>>785 動かしてみな。

#include <stdio.h>
#include <string.h>

int main(void)
{
FILE *fp;
char maker[20],car[20];
int cc;
fp=fopen("car.dat","w");
while(1)
{
printf("メーカ名を入力してください(終了条件/end):");
scanf(" %s", maker);
if (strcmp(maker, "/end"))
{
printf("車種を入力してください:");
scanf(" %s", car);
printf("排気量を入力してください:");
scanf("%d",&cc);
fprintf(fp,"メーカ名:%s 車種:%s 排気量:%d\n",maker,car,cc);
}
else
break;
}
fclose(fp);
return(0);
}
0792デフォルトの名無しさんNGNG
そしたらcheck_strは要らんね。
でもなんかね、二回目からのメーカ入力のところが
飛ばされるんだ。
一回目はちゃんと入力待ちになるのに、
二回目はなんねーんだよ。
なんなんだよこれはよー。
0793デフォルトの名無しさんNGNG
こっちの方がいいや。

#include <stdio.h>
#include <string.h>

int main(void)
{
FILE *fp;
char maker[20],car[20];
int cc;
fp=fopen("car.dat","w");
while(1)
{
printf("メーカ名を入力してください(終了条件/end):");
scanf("%s", maker);
if (strcmp(maker, "/end"))
{
printf("車種を入力してください:");
scanf("%s", car);
printf("排気量を入力してください:");
scanf("%d",&cc);
fprintf(fp,"メーカ名:%s 車種:%s 排気量:%d\n",maker,car,cc);
}
else
break;
}
fclose(fp);
return(0);
}
0794デフォルトの名無しさんNGNG
>>792
飛ばされるのは、scanf("%d", &cc); で残った改行文字が次の gets(); で
読まれるからだよ。

こういう場合は scanf("%s")にして、改行文字を飛ばせばいい。
0795デフォルトの名無しさんNGNG
一つ質問!
なんでgetsじゃなくscanf?
もしかして変な動作はgetsが原因?
0796デフォルトの名無しさんNGNG
>>795
ホワイトスペース文字 " ", "\t", "\n"は %c 以外での型指定文字では
読みとられないから。

gets()はホワイトスペース文字も読み込んでしまう。但し行末の改行文字
は"\0"に変えるけど。
0797デフォルトの名無しさんNGNG
今getsをscanfにしたら正常に動作しますた・・・。
やべー!どっちを使えばいいんだ!
scanfはスペース読めないんだよね?
しかも評判悪いし・・・。
でもなんでこのプログラムは
getsじゃだめなんべか?
わからんべ。
教えて欲しいだす。
0798デフォルトの名無しさんNGNG
>>797
>しかも評判悪いし・・・

何がだ?オーバーフローの可能性はgetsにもあるぞ?
0799デフォルトの名無しさんNGNG
>>797
基本的にはgets()とscanf()を混ぜるとよろしくない。どうしても
gets()を使いたいなら、全部gets()にして、最後のscanf()の
所をatoi()でコンバートすべし。
0800デフォルトの名無しさんNGNG
>>796
んー。
実行結果はこうなったんだよね。

メーカ名を入力してください(終了条件/end):HONDA
車種を入力してください:CIVIC
排気量を入力してください:1500
メーカ名を入力してください(終了条件/end):車種を入力してください:
排気量を入力してください:
a
メーカ名を入力してください(終了条件/end):車種を入力してください:end

たぶんgetsが原因だと思うんだけど
0801デフォルトの名無しさんNGNG
>>798
なんかね、C++の入門サイトみたいなとこに
「あの悪名高きscanf・・・うんぬんかんぬん」
って書いてあったよ。

しかもここの住人にもgets使えっていわれたし
0802デフォルトの名無しさんNGNG
ほれ。全部gets()。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void)
{
FILE *fp;
char maker[20],car[20],buf[20];
int cc;
fp=fopen("car.dat","w");
while(1)
{
printf("メーカ名を入力してください(終了条件/end):");
gets(maker);
if (strcmp(maker, "/end"))
{
printf("車種を入力してください:");
gets(car);
printf("排気量を入力してください:");
gets(buf);
cc=atoi(buf);
fprintf(fp,"メーカ名:%s 車種:%s 排気量:%d\n",maker,car,cc);
}
else
break;
}
fclose(fp);
return(0);
}
0803デフォルトの名無しさんNGNG
すんまそん。勉強になりますただ。
田舎に帰るにはまだはやいんべ。んだ。
もう少しがんばりますんだ。んだ。(ほじほじ
0804デフォルトの名無しさんNGNG
>>801
このスレで勧めたのはfgetsじゃないのか
0805デフォルトの名無しさんNGNG
>>804
gccとかご丁寧に警告出すしね。
0806デフォルトの名無しさんNGNG
このスレじゃなかったんで。
fgetsってファイル入力の時に使うンでないの?
0807デフォルトの名無しさんNGNG
>>804
そうそう、このスレではfgetsとsscanfだったような。
0808デフォルトの名無しさんNGNG
fgets()をstdinに対して使うと安全だ。  
0809デフォルトの名無しさんNGNG
#define gets2(s, n) fgets(s, n, stdin)
0810デフォルトの名無しさんNGNG
というかどのスレが一番いいんだあ!!
初心者のオレにはわからん!
ちなみに前はC言語の事ならオレにきけ!とか
行ってますた
今度からここにしよう

ところでsscanfとfscanfってどう違うン?
0811デフォルトの名無しさんNGNG
>>810
標準入力決め打ちか任意のファイルか。
0812デフォルトの名無しさんNGNG
マクロね、はいはい。
で、stdinってのは標準入力ストリーム?だっけ?
つまりキーボードね、はいはい。
で、1つ目が文字列でしょ?代入する。
2つ目は文字数?これがよくわかんねーんだが・・・

さあ、どする!!??
0813デフォルトの名無しさんNGNG
>>810
fscanf()もホワイトスペース文字を読み飛ばさないから都合悪いよ。
sscanf()はバッファにホワイトスペース文字が残っても捨てられるだけ。
0814ユカリNGNG

プランテック製の「 RX-2000�V 」を改造済み
にした、アイティーエス製の「 RX-2000�V 」↓
http://user.auctions.yahoo.co.jp/jp/user/neo_uuronntya#.2ch.net/

現在、本当に人気がある様です。
≪宣伝ではありません≫

関連ホームページ↓
http://www.h5.dion.ne.jp/~gekitoku/
http://www.h4.dion.ne.jp/~gekiyasu/
http://www.h5.dion.ne.jp/~gekirea/
http://www.h4.dion.ne.jp/~shinsetu/
http://www.planning-instigator.com/silentpeople/best/index2.html
0815デフォルトの名無しさんNGNG
>>812
char buf[20]; とかしてあって、
fgets(buf, 20, stdin); とすれば、bufの文字数を超えて読みとられる
のを防げる。
0816デフォルトの名無しさんNGNG
>>813
その辺の話はまだオレには早いみたいね。
全然わからん。

オレの聞いた感じだと、
\nをちゃんと改行として認識できる関数と、
認識できない関数を混ぜてつかったら危険だ!
だからそんな改行とかなんて、切捨てる関数を使え!!
って感じ?
0817デフォルトの名無しさんNGNG
>>816
ちょっとニュアンスが違うけど、だいたいそういうことです。
0818デフォルトの名無しさんNGNG
結論:iostream最強
0819デフォルトの名無しさんNGNG
あともう一つ!
>>811
>標準入力決め打ちか任意のファイルか。
sscanfがキーボードで
fscanfはどっちでもって事かい?
0820デフォルトの名無しさんNGNG
std::getlineを使えってこった。
0821デフォルトの名無しさんNGNG
>>819
fgets() + sscanf()がキーボード
fscanf()はファイル

という風にしておいた方がよさげ。
0822デフォルトの名無しさんNGNG
>>821
サンクス!!お礼にオレの溜め込んでるエロサイトから一つ・・
ttp://www.3wisp.com/asian/jscg/jh032/jscgirls02.htm
0823デフォルトの名無しさんNGNG
>>822
(・∀・)イイ!!
0824デフォルトの名無しさんNGNG
だろ!?
まだまだあるぜ・・・
ttp://www.girlshost.com/asian/jpsexy/008/gallery8.htm
0825デフォルトの名無しさんNGNG
もう終わりね!
また教えてもらったら
公開するさ
おまえらがんばれ!
0826デフォルトの名無しさんNGNG
(;´Д`)ハァハァハァハァ
0827デフォルトの名無しさんNGNG
せっかくだが既に行ったことのあるサイトだ
0828デフォルトの名無しさんNGNG
>>827
仲間キタ━(・∀・)━!
0829デフォルトの名無しさんNGNG
そんな事よりお前ら
Cの質問しろよ








もっときぼん
0830C言語初心者NGNG
質問です。
2chのトリップを演算するコードをどなたかCで書いていただけませんか?

PHPだと、、
$name1 = $name;
if(strstr($name,"#")){
$pass = substr($name, strpos($name,"#")+1);
$pass = str_replace(',',',',$pass);
$salt = substr($pass."H.", 1, 2);
$salt = ereg_replace("[^\.-z]", ".", $salt);
$salt = strtr($salt,":;<=>?@[\\]^_`","ABCDEFGabcdef");
$name2 = substr($name, 0, strpos($name,"#"));
$name = $name2." ◆</b>".substr(crypt($pass,$salt),-10)."<b>";
}
こんな感じらしいですけど、これのC言語で書いたものを欲しいのです、、、
どなたか、お願いします。。。
0831デフォルトの名無しさんNGNG
>>830
オレはトリップの条件がわからん・・・
0832デフォルトの名無しさんNGNG
>>830
crypt()がわからなければどうにもらならないのでは?
0833デフォルトの名無しさんNGNG
PHPのコードっていうとこれかな?
http://tcnweb.ne.jp/~takayu/cgi-bin/up/img/494.txt

俺もCはわからんが・・
0834デフォルトの名無しさんNGNG
win32用のcrypt()もどっかに転がってるよ。
結局ラウンジで公開されてたツールつかってたけど。
0835C言語初心者NGNG
>>834
まじですか?
ちょっとググって調べてみます。

0836デフォルトの名無しさんNGNG
トリップ作成プログラム の mktrip(Ver.0.03) は
ソース付きだったよ

Delphi + c だったけど
0837デフォルトの名無しさんNGNG
質問です

別プロセスの標準出力の内容を取得したいのですが
どうやったらよいのでしょう?

OutputDebugString() の出力内容は取得できたのですが
printf()やらの内容の取り方がわかりません。

ちなみに「別プロセス」は完全に別(ソリティアとか notapad.exe )です。

ソースではなく、概要くらいでよいのでわかる人いらっしゃいますか?
0838デフォルトの名無しさんNGNG
WIN32APIスレに池
0839デフォルトの名無しさんNGNG
gccの場合、cryptって-lcryptオプションが必要なのよね。以前、小一時間悩んだ。
0840デフォルトの名無しさんNGNG
暗号化プログラムはアメリカやフランスの規制もあってか
切り離すようになったんでないのかな
0841デフォルトの名無しさんNGNG
そのためのパイプではないか。
0842デフォルトの名無しさんNGNG
Linuxならpopenを使ってリードモードでオープンか。
他はしらん。
0843842NGNG
とは言うものの、リードで使ったことないから間違っているかも。
0844837NGNG
>838
>841
>842

サンクスです。

めちゃめちゃ盲点でした(w

ちょっとやってみます。
0845デフォルトの名無しさんNGNG
海でgets!
0846デフォルトの名無しさんNGNG
>>776w+は前の内容はあれば捨てる。r+は捨てない。
0847デフォルトの名無しさんNGNG
837 は一体何をやりたいんだ?
ソリティアやメモ帳は標準出力を吐いてるのか?
0848デフォルトの名無しさんNGNG
>>847
>>837はそれをつきとめたんだよ、きっと!
・ソリティアの画→標準出力から画像バイナリ出力→BitBltで表示
・メモ帳→標準出力から(以下略
0849デフォルトの名無しさんNGNG
char *pass2trip(const char *pass)
{
char *s = (char*)malloc(strlen(pass)+3), *t, salt[3];
char *tr[2] = {":;<=>?@[\\=^_`", "ABCDEFGabcdef"};

sprintf(s, "%s.H", pass);
sprintf(salt, "%c%c", s[1], s[2]);
free(s);
for (s=salt; *s; s++) if (*s < '.' || *s > 'z') *s = '.';
for (s=salt; *s; s++) {
if ((t=strchr(tr[0], *s)) != NULL)
*s = tr[1][s-tr[0]];
}
s = crypt(pass, salt);
return &s[strlen(s)-10];
}
0850デフォルトの名無しさんNGNG
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define __USE_XOPEN
#include <unistd.h>
int main(int ac, char **av)
{
char *trip;
if (ac!=2) { printf("usage:%s pass\n", *av); exit(1);}
trip = pass2trip(*(av+1));/* 変換 */
printf("%s\n",trip);
return 0;
}
0851C言語初心者NGNG
>>849-850
おお!!
どうもありがとうございました。
0852デフォルトの名無しさんNGNG
>>849
おーすごい、早速いただきました。すばらしい。
0853アフォNGNG
ミスってるよ。
*s = tr[1][s-tr[0]];
*s = tr[1][t-tr[0]];
0854デフォルトの名無しさんNGNG
------ここから
char *pass2trip(const char *pass)
{
char *s = (char*)malloc(strlen(pass)+3), *t, salt[3];
char *tr[2] = {":;<=>?@[\\=^_`", "ABCDEFGabcdef"};

sprintf(s, "%s.H", pass);
sprintf(salt, "%c%c", s[1], s[2]);
free(s);
for (s=salt; *s; s++) {
if (*s < '.' || *s > 'z') *s = '.';
if ((t=strchr(tr[0], *s)) != NULL)
*s = tr[1][t-tr[0]];
}
s = crypt(pass, salt);
return &s[strlen(s)-10];
}

-------ここまで
検証してなくてスマンです。
./pass2trip hogehuga
qpAhStv0fs
今度は大丈夫の様。
http://pc3.2ch.net/test/read.cgi/tech/1020206592/130
0855デフォルトの名無しさんNGNG
あ、まだあるや。<バグ逝ってきます、鬱。ちゃんとテストしよ…。
0856アフォNGNG
>>855
あんまりサポートに専念すると若死にするよ。(藁
0857もう氏にそうだけどNGNG
char *pass2trip(const char *pass)
{
char *s = (char*)malloc(strlen(pass)+3), *t, salt[3];
char *tr[2] = {":;<=>?@[\\]^_`", "ABCDEFGabcdef"};

sprintf(s, "%sH.", pass);
sprintf(salt, "%c%c", s[1], s[2]);
free(s);
for (s=salt; *s; s++) {
if (*s < '.' || *s > 'z') *s = '.';
if ((t=strchr(tr[0], *s)) != NULL)
*s = tr[1][t-tr[0]];
}
s = crypt(pass, salt);
return &s[strlen(s)-10];
}

これでどうかな?
折角なので。
0858デフォルトの名無しさんNGNG
死ね
http://pc3.2ch.net/test/read.cgi/tech/1035517888/

1 :hiloshi ◆W2li6n5Xa6 :02/10/25 12:51
  とりあえずお前ら市ね

  はげとデブとヒッキーが

9 :hiloshi ◆W2li6n5Xa6 :02/10/25 13:13
  オレは天才
  てかCとかマジいらねーし
  C++やりてー
0859デフォルトの名無しさんNGNG
>>858
あら、割れちゃったのかね。
まーなんだ、それが本人だったとしても違っていたとしても、
面白い質問だったり、真摯な質問だったりしたら漏れは答えるよ。
0860デフォルトの名無しさんNGNG
>859
でも、>>334-335 のようなスタンスだったらお断りだ・・・
0861デフォルトの名無しさんNGNG
>>860
そうね。そのときはぐぐれだの本読めだの言うか
流して終わりにするよ(そうしてるし)。
0862837NGNG
>>847
VC++6.0の [ビルド]-[デバッグの開始]-[プロセスへアタッチ]
で任意のプロセスにアタッチした後、
アウトプットウィンドウのデバッグタブに出力される文字列群が取りたいなぁと・・・

何に使うかというと、仕事でも使うんだけど
市販のゲームとか見てるとなかなか楽しいです。
さすがにソリティアでは何も出てこなかったけど、
サカつくとかでは、さりげなくエラー出てたり、製作者の名前とか出てきたり。

スレと関係ないので sage
0863アフォ ◆Ez1ZxZMJoU NGNG
DbgView
DbgMOn
0864デフォルトの名無しさんNGNG
ある一連の処理を、複数個並行して実行することになりました。

そこで、一つの関数の中でそれらの処理をできるだけ小さく分割して実行し、
上位ルーチンからコールを繰り返すことで完了させたいと思いました。
switch分を使い、staticな変数をcaseラベルに用いてプログラムカウンタ代
わりにし、それぞれのcase内には最小単位の処理を記述し、終わると自らcase
ラベルを必要に応じて(条件分岐,ループ動作を含み)書き換えます。
上位ルーチンへは、caseラベルを返り値とすることで、現在のステータスを知らせ
ており、上位ルーチンからは、caseラベルの初期化と、実行限界ラベルを受け取って
制御を行っています。上位ルーチンは、同時に実行したければそれらの下位ルーチンを
同じループの中で呼び出すことになります。

と、いうようなことをやっています。ひとりで書いているので変かもしれません。
しかし、冗長さの弊害がさけられず、switch文の使い方としても気持ちわるいものが
あります。他に合理的なアプローチがあれば教えて下さい。よろしくお願いいたします。
0865アフォ ◆Ez1ZxZMJoU NGNG
構造体
関数ポインタ
スレッド
0866デフォルトの名無しさんNGNG
>>864
> 終わると自らcaseラベルを必要に応じて(条件分岐,ループ動作を含み)書き換えます。

何を言っているのかさっぱり分からず

> しかし、冗長さの弊害がさけられず、switch文の使い方としても気持ちわるいものが
> あります。他に合理的なアプローチがあれば教えて下さい。よろしくお願いいたします。

どんな感じなのかまったく窺えないので、雰囲気をつかめる最小限のコードを晒せ。
0867アフォ ◆Ez1ZxZMJoU NGNG
マルチチャンネル?
> ある一連の処理を、複数個並行して実行することになりました。
AAAAAAAAAA?
ABCDEFGHIJ?
わからん
0868デフォルトの名無しさんNGNG
>>866
あのね、わからないのはあなたのレベルが低いからっていう可能性
もあるかもだから、むやみやたらにさっぱりわからんとか書き込む
もんじゃないと思うよ。
半分煽り、半分マジレスね。
0869rubyist@カラアゲうまうまNGNG
半分マジレスだってさ(ppp
0870デフォルトの名無しさんNGNG
>>869
0871デフォルトの名無しさんNGNG
      ∧_∧      ∧_∧
     _( ´∀`)    (´∀` )
  三(⌒),    ノ⊃    ( >>1 .)   糞スレは  
     ̄/ /)  )      | |  |
    . 〈_)\_)      (__(___)
         ∧_∧  .∧_∧
         (  ´∀) (´∀` )
       ≡≡三 三ニ⌒) >>1 .)    立てるなって
        /  /)  )  ̄.| |  |
        〈__)__)  (__(___)
           ∧_∧  ,__ ∧_∧
          (    ´)ノ ):;:;)∀`)
          /    ̄,ノ'' >>1 . )   言ってるだろうが
         C   /~ / /   /
         /   / 〉 (__(__./
         \__)\)
                      ヽ l //
            ∧_∧(⌒) ―― ☆ ―――
            (    ) /|l  // | ヽ   ヴォケがーー!
           (/     ノl|ll / / |  ヽ
            (O  ノ 彡''   /  .|
            /  ./ 〉
            \__)_)
0872デフォルトの名無しさんNGNG
やい 871、漏れの白星パンチを盗むな。
あと 870 は何が言いたい?
0873デフォルトの名無しさんNGNG
>>864
switch文使ってるのになんとか限界って言うのは必要?
default:に飛ばすとか。

sub(int label){
switch (label) {
case ONE:hoge(&label);
case TWO:huga(&label);
default:puni(&label);
}
return label;
}

parent() {
static int label;
label = sub(label);
}
0874デフォルトの名無しさんNGNG
atoi("hoge")
が 0 を返すことは保証されていますか?
0875864:コードのみNGNG
/* 引数:limiter=その呼び出しで実行限界とするcase文の事例数値 */
/* 返り値:0=処理完了, 1=実行中 */
char coldFire( int limiter )
{
 static int myControl; /* switch文の制御数値 */

 if( limiter < 0 ) /* limiterが無効値の場合は制御数値の初期化 */
  myLabel = 0;
 if( limiter < myLabel ) /* 実行限界まで処理したら処理をポーズ */
  return 0;
 result = 1; /* 返り値格納用 */
 switch( myControl )
 {
  case 0: /* 通常の処理 */
   /* 何らかの処理 */
   myControl++;
   break;
  case 1: /* 条件ループ処理 */
   /* あるいは何らかの処理 */
   if( /* なんらかの条件 */ )
    myControl++;
   break;
/**** この間、その他case文の羅列:フラグ分岐等バリエーション多数 ****/
  case endOfCase: /* 最後の処理 */
   /* 何らかの処理 */
   result = 0;
   break;
 }
 return result;
}
   
0876864NGNG
うまく説明できなくてすみません。
基本的には値がゼロになるまで呼び出しを繰り返すことで
処理を完了するようになっています。

それで、なにがしたいかと言うと、同じような関数を複数、
同じループ内で呼び出し、かつ、それぞれの進行状況によっ
て他の処理やインターロックを行いたいというわけです。
0877デフォルトの名無しさんNGNG
>>874
有効で無い数字が現れた時点で終了するので保証される。
0878デフォルトの名無しさんNGNG
>>876
for(i = 0; i < MAX_SHORI; i ++) {
shoriA0001_shokika(&j[i]);
shoriA0002_maeshori(&j[i]);
shoriA0003_bunkiMain(&j[i]);
shoriA0004_atoshori(&j[i]);
}

int shoriA0003_bunkiMain(int* j)
{
int state1 = shoriA0003_B01_shokika(j);
}

VBマンセー グローバル変数マンセー 構造体は戦場では必要無し
0879デフォルトの名無しさんNGNG
この業界入って、何の資格も取らずに40歳までいっちゃうとリストラ対象になるってホントですか?
0880アフォ ◆Ez1ZxZMJoU NGNG
    ∧_∧  / ̄ ̄ ̄ ̄ ̄
    (・∀・ )< いくつぐらいで、「重複ですか?」アラート出るんかな?
  _| ̄ ̄||_)_\_____
/旦|――||// /|
| ̄ ̄ ̄ ̄ ̄| ̄| . |
|_____|三|/
0881デフォルトの名無しさんNGNG
それだと親内がcoldFireだらけになりそうだな。
0882アフォ ◆Ez1ZxZMJoU NGNG
そうかぁ、これかぁ。
http://e-www.motorola.com/webapp/sps/site/homepage.jsp?nodeId=03M0ylgrpxN
0883デフォルトの名無しさんNGNG
みっそみそみそ
みっそみそみそ
味噌スープ!
0884864:上位ルーチンではこんなふうにNGNG
#define initProc -1
#define untilEnd 10000

void dragonBall( void )
{
 coldFire( initProc );
 rabitt2000( initProc);
 pic16f84( initProc );
 while( rabitt2000(10) )
  ;
 for(;;)
 {
  while( coldFire(5) )
   rabitt2000( untilEnd );
  while( coldFire(20) )
  {
   rabitt2000( untilEnd );
   pic16f84(10);
  }
  while( rabitt2000( untilEnd )
   ;
  rabitt2000( initProc);
  while( coldFire( untilEnd )
  {
   rabitt2000( 10 );
   pic16f84( untilEnd );
  }
 }
}
0885864NGNG
こんなふうにして、プロセス間で精度が悪いながらも同期をとりながら
動いています。
もう、端的にお聞きして良いですか? 私、ヘンでしょうか?
0886デフォルトの名無しさんNGNG
> プロセス間で
??
0887アフォ ◆Ez1ZxZMJoU NGNG
綺麗です。
0888864NGNG
>886 ああ、すいません。それぞれの下位ルーチンが行っている処理の間で...という意味です。
0889デフォルトの名無しさんNGNG
そもそもCってどういう意味なんですか?
Bの次だからCってただそれだけ?
他に意味はないの?
0890デフォルトの名無しさんNGNG
>>885
> もう、端的にお聞きして良いですか? 私、ヘンでしょうか?

出されたコードだけ見た限りでは、少しヘンだと思う。
やってることが固定なんだから、
> static int myControl; /* switch文の制御数値 */
わざわざこんなものを用意して制御する必要はないと思う。
(仮に必要だったとしても、俺なら上位ルーチン側で変数を用意する)
0891890NGNG
↑はシングルスレッドでの処理を前提とした場合ね。
0892デフォルトの名無しさんNGNG
>>889
「C言語は,1972年,アメリカAT&Tベル研究所のDennis M.Ritchieによって設計された、
彼の目的は、ミニコンピュータのオペレーティングシステム(OS)であるUNIXを開発する事
であったが、それにふさわしい言語を自らつくりあげたのである.C言語の前身は,1970年
にKen Thompsonによって開発されたB言語である.B言語も同じUNIX開発用に設計された
言語であり、BCPLという言語を改良した物であった.このB言語の次に開発されたものである事から、
”C言語”と名づけられたと言われている.」
と、「第2種情報処理試験合格ゼミC言語の総合研究(平成七年度)」(P.22)には書いてあります.
ってなんでこんな古いのがあるんだよ〜〜
0893892NGNG
技術評論社ね
0894デフォルトの名無しさんNGNG
フィボナッチ探索を用いて、単峰性のデータの最大値を求めるプログラムです。
何故かうまく動作しません。
どこがわるいんですか?
#include <stdio.h>

/* フィボナッチ数列を求める関数 */
int fibonacci(int n)
{
if(n==1||n==2)
return(1);

else
return(fibonacci(n-1)+fibonacci(n-2));
}
0895デフォルトの名無しさんNGNG
int main(void)
{
int data[50]={12,14,26,30,32,43,49,56,67,68,71,84,93,105,118,131,134,164,184,204,208,240,267,284,304,312,309,279,274,264,219,199,197,194,193,192,175,158,142,130,110,95,86,70,54,42,38,32,15,8};
int i=1;
int fn=1; /* 問題に適するフィボナッチ数列のnの値 */
int data_s=50; /* 配列dataの要素数 */
int sel=0; /* 判定用 */

puts("■フィボナッチ探索■");
0896デフォルトの名無しさんNGNG
while(1)
{
if(fibonacci(i)==data_s)
{
fn=i;
break;
}
else if(fibonacci(i)<data_s)
if(data_s-fibonacci(i)<data_s-fibonacci(fn))
fn=i;
else
if(fibonacci(i)-data_s<data_s-fibonacci(fn))
fn=i;
else
sel=1;

if(sel==1)
break;

i++;
}

printf("%d",fn);

return(0);
}
0897デフォルトの名無しさんNGNG
なお、プログラムは途中までしかつくってません
0898デフォルトの名無しさんNGNG
int fibonacci(int n) {
int x = 0, y = 1;
while (n--) {
int z = x;
x += y;
y = z;
}
return x;
}
0899デフォルトの名無しさんNGNG
if else が入れ子になってるときは{}で
はっきりどうかかるか示しなさい。
あと、無限ループじゃなくてforにする。
0900デフォルトの名無しさんNGNG
>>898
もとの再帰を用いた関数はだめですか?
>>899
for文にしたときの条件は
sel==1
でいいですよね?
0901デフォルトの名無しさんNGNG
まちがえた。
sel==0だ
0902デフォルトの名無しさんNGNG
dataは使って無いね。
0903デフォルトの名無しさんNGNG
>>902
途中までだから。
いまつくる!!
0904デフォルトの名無しさんNGNG
もうちょっと先を書いて色々変更したらおかしくなったみたい・・・

#include <stdio.h>

/* フィボナッチ数列を求める関数 */
int fibonacci(int n)
{
if(n==1||n==2)
return(1);

else
return(fibonacci(n-1)+fibonacci(n-2));
}
0905デフォルトの名無しさんNGNG
/* 問題に適するnを求める */
int get_fn(int data_s)
{
int i;
int sel=0; /* 判定用 */
int fn;

for(i=1;sel==0;i++)
{
if(fibonacci(i)==data_s)
{
fn=i;
sel=1;
}
else if(fibonacci(i)<data_s)
{
if(data_s-fibonacci(i)<data_s-fibonacci(fn))
fn=i;
}
else
{
if(fibonacci(i)-data_s<data_s-fibonacci(fn))
fn=i;
else
sel=1;
}
}

return(fn);
}
0906デフォルトの名無しさんNGNG
/* フィボナッチ探索 */
int fib_search(int x,int data[],int sn)
{
int f1,f2;
int search_num;

f1=fibonacci(x-1);
f2=fibonacci(x-2);

printf("%d番目の要素:%d\n",f1,data[f1+sn]);
printf("%d番目の要素:%d\n\n",f2,data[f2+sn]);

if(data[f1]<data[f2])
search_num=f2;
else
search_num=f1;

return(search_num);
}
0907デフォルトの名無しさんNGNG
int main(void)
{
int data[50]={12,14,26,30,32,43,49,56,67,68,71,84,93,
105,118,131,134,164,184,
204,208,240,267,284,304,312,309,279,274,264,219,199,197,194,193,
192,175,158,142,130,110,95,86,70,54,42,38,32,15,8};
int fnum; /* 問題に適するフィボナッチ数列のnの値 */
int data_s=50; /* 配列dataの要素数 */
int serchnumber=0;

puts("■フィボナッチ探索■\n");

fnum=get_fn(data_s);

printf("%d",fnum);

fib_search(fnum,data,serchnumber);

return(0);
}
0908デフォルトの名無しさんNGNG
最後にチェック用として入れた
printf("%d",fnum);
が表示されないよー。
なぜだああ!!
0909864NGNG
>890さん

 この場合、呼び出し側で各下位ルーチンのswitch文制御数値を管理するとなると、
 呼び出し側ルーチンでは、同時に呼び出される下位ルーチンの個数や、それぞれ
 の下位ルーチンが担当する処理の寿命や、それぞれの下位ルーチンとそのswitch
 文制御変数を保持する変数との結び付けについて間違いがないようにする必要が
 あり、さらに、複数の呼び出し側ルーチンを通じて下位ルーチンが一連の処理を
 継続する場合にはそのswitch文制御変数を保持する変数を上位ルーチン同士がな
 んらかの方法で受け渡す必要があるので、そのようにしなかったのです。
0910デフォルトの名無しさんNGNG
>>904
結局オレにはよくわからん!
すまそ
0911デフォルトの名無しさんNGNG
scanf("%c",&a);
で2文字以上入力するとエラーを出したいのです。
ヒント下さい。
0912デフォルトの名無しさんNGNG
>>911
むり
0913デフォルトの名無しさんNGNG
2文字以上入力した場合エラー出せばいい
0914デフォルトの名無しさんNGNG
>>912
無理なんですか?(汗
>>913
2文字以上入力されたかどうかを調べる方法がわからないです(T_T)
0915デフォルトの名無しさんNGNG
scanf("%2s", string);
2文字以上入力出来るけど、2文字しか受け取らへん。

エラー出そうと思ったらscanf()じゃ無理やから、環境に依存したコーディングになりま
0916アフォ ◆Ez1ZxZMJoU NGNG
fgets/sscanfだたと思うよ。CFAQに載っていたの。
0917915NGNG
915の発言は脳内削除して下さい。
2文字で入力を打ち切る場合かと思うてた。スマンでし。

fgets()で入力受けた後にstrlen()で調べたらおk。
0918デフォルトの名無しさんNGNG
#define INPUTMAX 4
char buf[INPUTMAX];
  fgets(buf, INPUTMAX, stdin);
  if (buf[3] != '\0') {
    /* エラー表示 */
  }
0919デフォルトの名無しさんNGNG
みなさんありがとうございます。
fgets()やstrlen()など調べてみます〜♪
0920デフォルトの名無しさんNGNG
Cスレの寿命は一週間、っと。
0921デフォルトの名無しさんNGNG
半分以上ネタor論争だがな
0922rubyist@カラアゲうまうまNGNG
Rubyスレは半万年続きますが何か?
0923 NGNG
http://www2a.kagoya.net/~adults-toybox/sample1.wmv
http://www2a.kagoya.net/~adults-toybox/sample2.wmv
http://www2a.kagoya.net/~adults-toybox/
0924デフォルトの名無しさんNGNG
>>900
その再帰だと二回同じの呼び出さなきゃいけないでしょ。
そしてそれぞれが二回呼び出すわけだから良くない。
>>905
data_sに一番近いフィボナッチ数を選ぶんだとおもうけど、
int get_fn(int data_s) {
int i;
for (i=1; fibonacci(i) < data_s; i++) ;
if (i == 1) return 1;
if (fibonacci(i) == data_s) return i;
return (data_s-fibonacci(i-1) < fibonacci(i)-data_s)? i-1 : i;
}
0925デフォルトの名無しさんNGNG
>>924
なるほど。余計な計算を省くわけですね
勉強になります。
0926デフォルトの名無しさんNGNG
898の関数でやるとプログラムがとまってしまいます!
なんで!?
0927デフォルトの名無しさんNGNG
一応、ここまで出来ました

#include <stdio.h>
/* フィボナッチ数列を求める */
int fibonacci(int n)
{
if(n==1||n==2)
return(1);
else
return(fibonacci(n-1)+fibonacci(n-2));
}
/* 問題に適するnを求める */
int get_fn(int data_s)
{
int i;
for(i=1;fibonacci(i)<data_s;i++)
;
if(i==1)
return 1;
if(fibonacci(i)==data_s)
return i;
return(data_s-fibonacci(i-1)<fibonacci(i)-data_s)?i-1:i;
}
0928デフォルトの名無しさんNGNG
/* フィボナッチ探索 */
int fib_search(int x,int data[],int sn)
{
int f1=fibonacci(x-2); /* 1つ目のめくる値の添え字 */
int f2=fibonacci(x-1); /* 2つ目のめくる値の添え字 */
int search_num; /* 数え始める値の添え字 */
printf("%d番目の要素:%d\n",f1+sn,data[f1+sn]);
printf("%d番目の要素:%d\n\n",f2+sn,data[f2+sn]);
if(data[f1+sn]<data[f2+sn])
search_num=f1+sn+1;
if(data[f2+sn]<data[f1+sn])
search_num=sn;
return(search_num);
}
int main(void)
{
int data[50]={12,14,26,30,32,43,49,56,67,68,71,84,93
,105,118,131,134,164,184,204,208,240,267,284,304,312,309,279
,274,264,219,199,197,194,193,192,175,158,142,130,110,95,86,70,54,42,38,32,15,8};
int fnum; /* 問題に適するフィボナッチ数列のnの値 */
int data_s=50; /* 配列dataの要素数 */
int ser=0; /* 数え始める部分 */
int n;
int max; /* 最大値 */
0929デフォルトの名無しさんNGNG
puts("■フィボナッチ探索■");
fnum=get_fn(data_s);
for(n=0;(fnum+n)>=1;n--)
{
ser=fib_search(fnum+n,data,ser);
}
return(0);
}
0930デフォルトの名無しさんNGNG
それで、一回表示した要素は、もう表示しないようにしたいんです。
でもまだポインタとか学校では習ってないんで
使わない方がいいかなって。
表示した要素の添え字を格納するopen_data[]とか作って
いろいろ試したんですけど、ポインタが必要になるんです。
ポインタ使わないでできます?
0931890NGNG
>>909
>  呼び出し側ルーチンでは、同時に呼び出される下位ルーチンの個数や、それぞれ
>  の下位ルーチンが担当する処理の寿命や、それぞれの下位ルーチンとそのswitch
>  文制御変数を保持する変数との結び付けについて間違いがないようにする必要が
>  あり

884のコードを見る限りでは、渡すのは定数だけで、
そんな(「間違いがないようにする必要が」と言うほどの)
複雑なことをやっているようには見えない。

ただし、コードに載せていない部分からも呼び出している
なら話は別だけど。

それと俺が
> (仮に必要だったとしても、俺なら上位ルーチン側で変数を用意する)
と書いた意味はわかってる?
別にcoldFire関数で静的な変数を用意しなくても、
引数で渡してそれを関数が更新して返却すればいいということ。

それと、「同時に呼び出される」と書いているけど、
シングルスレッドなら同時には呼ばれないよね。
あんたの書き込みは、言葉(用語)もなんか普通と違っていて
今いち理解できん。
0932デフォルトの名無しさんNGNG
fib_searchを変えた方がいい。
引数は2つ。検索の開始点と終了点。
で、フィボナッチ数で三つにわけるのかな。
開始点と中間点1、中間点1と中間点2、中間点2と終了点。
でそれぞれ再帰かなあ。
0933デフォルトの名無しさんNGNG
はじめまして構造体について教えて下さい。
以下のようなサンプルがありました。

int main{
ATDisc myDisc;
void DisposeDisc(myDisc);
}
static void DisposeDisc(ATDisc& disc)
{ DisposeATDisc(&disc); }

このDisposeDisc関数のdiscはポインタなんでしょうか?
下のように書き換えられますか?

int main{
ATDisc *myDisc;
void DisposeDisc(&myDisc);
}
static void DisposeDisc(ATDisc *disc)
{ DisposeATDisc(&disc); }
0934890NGNG
>>909
ごめん。よく見ると909に
> 複数の呼び出し側ルーチンを通じて下位ルーチンが一連の処理を
>  継続する場合には

と書いてあった。ということは
884で載せたコード以外からも呼び出されるんだよね。
だったらそのやり方でもいいと思う。
0935デフォルトの名無しさんNGNG
>>933
参照渡し。
int main{
ATDisc *myDisc;
void DisposeDisc(myDisc);
}
static void DisposeDisc(ATDisc *disc)
{ DisposeATDisc(disc); }
0936デフォルトの名無しさんNGNG
>>935
もどきじゃなかったっけか?それ。

参照の情報を持った変数を値渡ししてるんで。

純粋なのはPascalのvarとかだと思う。
0937C言語初心者NGNG
質問です。
VCでStrMatch()を使うと外部参照エラーが出ます。
Win32用のライブラリはないのでしょうか?
0938864NGNG
>866, 867, 873, 878, 881, 882, 886, 890, 931

 まとめてしまい申し訳ありませんが、みなさんありがとうございました。
 用語やその他ヘンなところがあるのは、周囲に同職がいないため、本や
netだけを頼りに勉強しているせいなので、自分でも気にしています。
 サンプルとはいえコードを他人に見てもらった経験もこれが初めてで、
職場では納期を守りさえすれば、ソフトのことなどだれも関心持ちません。
 いろいろありがとうございました。みなさんの善意に感動しています。
いただいたレスは全てじっくり勉強いたします。ではまた。
0939デフォルトの名無しさんNGNG
>>929
のfor文の後に
printf文を書いたんですが何も表示しません!
エラーもなにもないのに・・・
どうしてですか!?
0940デフォルトの名無しさんNGNG
fibonacciの最初に
if (n <= 0) printf("fib(%d)", n);
って入れてみたら。なんか0以下呼び出してそうだし。
0941デフォルトの名無しさんNGNG
>>939
いきなり条件が偽なんだろう。
0942デフォルトの名無しさんNGNG
いやfor文の外なんだよ。

for(n=0;(fnum+n)>=1;n--)
ser=fib_search(fnum+n,data,ser,&max);

printf("最大値は%dです。\n",max);

return(0);
}

って。
なんで表示されないの?
0943デフォルトの名無しさんNGNG
fibonacci(0)は呼び出してなかったか?
0944デフォルトの名無しさんNGNG
http://pc3.2ch.net/test/read.cgi/tech/1035623265/

今日中に終わってしまいそうなので新スレたてました。
0945デフォルトの名無しさんNGNG
>C言語は時代遅れなんかじゃないです。
>みんな大好きなんです。このシリーズの速さがそれを物語っています。
学校の授業で教える言語なので厨房が多いだけ。
0946944NGNG
>>945
それをいっちゃだめ。
さめちゃうでしょ。
0947デフォルトの名無しさんNGNG
はあ〜あ、鮫ちゃった。Javaスレでも逝くか。
0948デフォルトの名無しさんNGNG
よーし、パパ埋めちゃうぞぉ
0949デフォルトの名無しさんNGNG
sprintfの引数の許容アクセスモードの指定でwbはどういう意味ですか?
いちおうライブラリを見て"w"と"b"については書いてあったんですが"wb"
については書かれて無かったです。
0950デフォルトの名無しさんNGNG
>>950
次スレよろ
0951デフォルトの名無しさんNGNG
>>949
fopenの間違いか?
fopenなら書き込み&バイナリモード(改行コード変換なし)で開くという意味。
UNIXでは全く意味のないもの。


>>950
たっているだろ
0952デフォルトの名無しさんNGNG
>>950
確信犯
0953デフォルトの名無しさんNGNG
fopenってモードは文字列じゃなくて実体は整数のマクロのビットORで渡す仕様にすればよかったのに。
0954デフォルトの名無しさんNGNG
>>953
C++はそうなっているのは偶然ではないだろう。
0955951NGNG
> UNIXでは全く意味のないもの。

なんか勘違いさせそう。
UNIXでは"w"と等価。というべきか。
0956デフォルトの名無しさんNGNG
>>954
そうなの?
0957デフォルトの名無しさんNGNG
ごめんなさい、fopenでした、ごっちゃになってました、激しく逝ってきます。
単純にwとbを合わせただけなんですね。
0958デフォルトの名無しさんNGNG
実は以前、ファイルに順番に名前をつけていくのはどうすればいいですか?の質問で、
sprintf(fname, "hoge%04u.jpg", i++);
fp = fopen(fname, "wb");
fclose(fp);
と解答をいただいたのですが、2行目以降でどうしてファイルオープンしてその後、閉じるのか
分からないのですがどなたかご教授いただけないでしょうか?
0959デフォルトの名無しさんNGNG
>>956
fstreamはそうなってる堕炉。
0960デフォルトの名無しさんNGNG
>958
アフォすぎ。ネタかと思うくらい。
0961デフォルトの名無しさんNGNG
! ! ! ! す み ま せ ん ! ! ! ! 

し つ も ん で す!!!

makeコマンドありますよね。
例えば、

SJIS_FILE=hoge.txt
nkf-e:
   nkf -e < $(SJIS_FILE) > $(SJIS_FILE).euc

というMakefile
のSJIS_FILEという変数をMakefileを変更せずに例えば、
% SJIS_FILE=moge_dummy.txt;make nkf-e
みたいに指定して実行したいんですが、
上の方法では変数にmoge_dummy.txtが格納されません!

一体どうすれば可能なのでしょうか?

どなたか教えてください。
御願いします!!!

0962デフォルトの名無しさんNGNG
>>958
fopenとfcloseの間の処理はあんたしか仕様を知らないんだから
自分で作らないとダメだよ。
たとえばfwriteやfseekなどを組み合わせて。

そもそも、このスレの>>227で
> 房な質問ですみません。使用する関数を教えてもらえれば幸いです。

>>234で
> 大体どんな感じのプログラムになるのかだけでも教えてもらえませんか?
> イメージがわかないんです。

という質問だったんだろ。
0963デフォルトの名無しさんNGNG
>>961
スレ違い。
0964デフォルトの名無しさんNGNG
>>961
% make nkf-e SJIS_FILE=moge_dummy.txt
0965デフォルトの名無しさんNGNG
>>962
そうです
0966デフォルトの名無しさんNGNG
>>961
お前、こっちにもマルチしてたのか。
http://pc.2ch.net/test/read.cgi/unix/1035442907/149-
0967デフォルトの名無しさんNGNG
初心者もOKだからOKなんちゃうか?
0968デフォルトの名無しさんNGNG
>>967
未定義
0969デフォルトの名無しさんNGNG
義理チョコは未定
0970デフォルトの名無しさんNGNG
未定かどうかは環境依存
漏れは男子校だった・・・
0971デフォルトの名無しさんNGNG
漏れも男子校ですた。



でも後輩から本命チョコもらってしまいますた。。。



(;´Д`)っ■
0972デフォルトの名無しさんNGNG
やっぱこの、次スレ立った後のマターリ感が何とも言えないよな。
0973デフォルトの名無しさんNGNG
次スレは半可通が妙に息巻いててみてらんない。
0974デフォルトの名無しさんNGNG
一体次スレは 45 からどこまで同じ話題が続くんだ。
今夜中に 250 超えたりしてな。
0975デフォルトの名無しさんNGNG
>>974
越えてしまいますた。300に迫る勢いです。
0976デフォルトの名無しさんNGNG
>>975
300 も超えてしまいました。ウルムン・シュソト・ドラソクです
0977デフォルトの名無しさんNGNG
今のうちにコソーリ100でもとっておこうっと。。
0978デフォルトの名無しさんNGNG
厨房度では HSP スレを超えたな。
0979デフォルトの名無しさんNGNG
次スレ面白すぎ・・・
今日中に次次スレにならないだろーな
0980デフォルトの名無しさんNGNG
回しているのは 3-4 人なわけだが。
0981デフォルトの名無しさんNGNG
500 超えちゃったよ......
0982デフォルトの名無しさんNGNG
肩を震わせて笑っています
何とかしてください次スレ
0983デフォルトの名無しさんNGNG
そろそろ燃え尽きてきたような
0984デフォルトの名無しさんNGNG
600いったね
>>974 の予想なんてとんだ甘ちゃんだったわけだ
0985974NGNG
うう・・・メンバーの厨房度をすっかりなめきっていたよ・・・
0986厨房次スレ45&前スレ1000NGNG
書き込みして寝て起きたらこれですか。
適当に書いたことなのに。
0987デフォルトの名無しさんNGNG
かちゅで次スレの新着レスが400近くあるよ
今朝方4時ぐらいまではみてたんだが
ム板でもこんなにレスが付くことがあるのか
0988デフォルトの名無しさんNGNG
>>987
仲間発見だ!
一週間も放置するとDAT落ちしてログを保存できないスレってのもム板では珍しいかも
0989デフォルトの名無しさんNGNG
やれやれ、次スレは 45 と 609 で埋まっちまうのかい?
つーか、609 は 45 を引きずってたから全部 45 ネタとも言えるかもな。
0990デフォルトの名無しさんNGNG
割と意外な方向に収束したな。
0991デフォルトの名無しさんNGNG
次スレ45ネタをリアルタイムで見たかった・・・。
このスレは、あと9回書き込めるよん。
0992デフォルトの名無しさんNGNG
このスレが終わるのと、次次スレができるのと、どっちが早いか。
0993デフォルトの名無しさんNGNG
また蒸し返されてますが(w
0994デフォルトの名無しさんNGNG
 
0995デフォルトの名無しさんNGNG
        まもなくここは 乂1000取り合戦場乂 となります。

      \∧_ヘ     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ,,、,、,,, / \〇ノゝ∩ < 0x03E8取り合戦、いくぞゴルァ!!       ,,、,、,,,
    /三√ ゚Д゚) /   \____________  ,,、,、,,,
     /三/| ゚U゚|\      ,,、,、,,,                       ,,、,、,,,
 ,,、,、,,, U (:::::::::::)  ,,、,、,,,         \オーーーーーーーッ!!/
      //三/|三|\     ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ∪  ∪       (    )    (     )   (    )    )
 ,,、,、,,,       ,,、,、,,,  ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ,,、,、,,,       (    )    (    )    (    )    (    )
0996デフォルトの名無しさんNGNG
996
0997デフォルトの名無しさんNGNG
997!
0998デフォルトの名無しさんNGNG
998!!
0999デフォルトの名無しさんNGNG
999!!!
1000デフォルトの名無しさんNGNG
( ̄ー ̄)ニヤリッ
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。