C言語なら、俺に聞け! <10>
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001Cハッカー日下部陽一
NGNGいろいろな言語を極めたが、一番手になじむのはCだった。
Cのことならぜんてわかるから、疑問な点があったらオレに聞け。
だが、いちいちFAQに載った質問に応えるほど暇じゃない。
課題丸投げなら別スレにいけ。
・comp.lang.c Frequently Asked Questions
http://www.eskimo.com/~scs/C-faq/top.html
・C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
・前スレ C言語なら、オレに聞け! <9>
http://pc.2ch.net/test/read.cgi/tech/1007272267/l50
Cプログラマならこれを買っとけ。
・プログラミング言語C(K&Rと呼べば通のようだぞ)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/yfcbookshelf-22/250-3950205-1475419
K&Rで挫折するようなヤツはこれでも買え。
これでわからない、救いがたいヤツはあきらめろ。
・作ってわかるCプログラミング(アヒル本と呼べば通のようだぞ)
http://dennou.gihyo.co.jp/books/void_c/
http://www.amazon.co.jp/exec/obidos/ASIN/477411328X/qid%3D1005618315/250-3950205-1475419
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNG早速ですが、ファイルポインタを引数として関数に渡そうとしてコーディング
してみたのですが、どうも上手くいきません。
方法は下記の通りです。
main(){
FILE *FP;
Init_Proc(&FP);
}
Init_Proc(FILE **FP){
*FP = fopen(・・・);
X_Proc(FP);
}
X_Proc(FILE **FP){
fprintf(*FP, "%s\n", "ABC");
}
現状ではX_Procでファイル書込を行った際にファイルポインタが破壊されて
いるようです。
ファイルポインタを引数として渡すことはあまりなくて、どのようにすれば
よいのかわかりません。
みなさん、ご教授を宜しくお願いします。
0006Kusakabe Youichi
NGNGデフォルトの名無しさん wote:
>いつもお世話になっております。
そういうことにしたいのですね。
0007デフォルトの名無しさん
NGNGつかれてきましたね?
0008Kusakabe Youichi
NGNG> main(){FILE *FP;Init_Proc(&FP);}
> Init_Proc(FILE **FP){ *FP = fopen(・・・); X_Proc(FP);}
> X_Proc(FILE **FP){fprintf(*FP, "%s\n", "ABC");}
>
> 現状ではX_Procでファイル書込を行った際にファイルポインタが破壊されて
> いるようです。
そういう問題ではないですね。
> ファイルポインタを引数として渡すことはあまりなくて、
っていうか、こんな渡し方をしなきゃいけない場合は考えられないので、
そもそも設計がまちがっているのでしょう。
まず、fopenで帰ってくる値(ポインター)が指す実体はどこにあるのか
想像してみましょう。
# いったいどんな本を読んで勉強したのだろうか。
0009Kusakabe Youichi
NGNG> >>5
> デフォルトの名無しさん wote:
> >いつもお世話になっております。
>
> そういうことにしたいのですね。
引用の仕方がちがいますね。
0010デフォルトの名無しさん
NGNGアヒル本とK&Rをよんで勉強してきました。
0011デフォルトの名無しさん
NGNG> 早速ですが、ファイルポインタを引数として関数に渡そうとしてコーディング
> してみたのですが、どうも上手くいきません。
「どうも」じゃなくて「どう」上手くいかねぇのよ。
> 現状ではX_Procでファイル書込を行った際にファイルポインタが破壊されて
> いるようです。
んなこたぁない。
fopen()の引数だけ直して#include <stdio.h>つけたらちゃんと動いたぞ。
省略したところに別のバグがあるんだろ。
> ファイルポインタを引数として渡すことはあまりなくて、どのようにすれば
> よいのかわかりません。
変すぎ。
00125
NGNG以前、UNIXの環境でファイルポインタを引数にしようとした時、
『ダブルポインタにしないと渡せない』と言われてから、そういうものだと
思っていましたが、VC++では違うようですね・・・
みなさんの意見を参考に試してみます。
有り難うございました。
0013Kusakabe Youichi
NGNG> みなさん、有り難うございます。
> 以前、UNIXの環境でファイルポインタを引数にしようとした時、
> 『ダブルポインタにしないと渡せない』と言われてから
「だれに」いわれたのですか?
0014デフォルトの名無しさん
NGNG> 以前、UNIXの環境でファイルポインタを引数にしようとした時、
> 『ダブルポインタにしないと渡せない』と言われてから、そういうものだと
> 思っていましたが、VC++では違うようですね・・・
>>5が完全に誤解してるか、思いっきりだまされてるか、そう言った奴も完璧な厨房か。
>>5の誤解に1000ポインタ。
0015もふ
NGNGプログラムをつくってます。ひとつのデータが下のような構造体です。
typedef struct {
int x;
long y;
} mydata;
なにかアライメントやエンディアンとかの問題があるらしいので
mydata buf;
fread( &buf, sizeof(mydata), 1, fp );
fwrite( &buf, sizeof(mydata), 1, fp );
みたいなのは駄目らしいのですが、具体的にどう回避すれば
よいのでしょうか?
アライメントの問題のほうは
fwrite( &(buf.x), sizeof(int), 1, fp );
fwrite( &(buf.y), sizeof(long), 1, fp );
とか分ければいいのかな? と思うのですが
エンディアン云々のほうは回避策がわかりません。。。
そもそも、longとかのビット数が違ったら駄目な気もするし。。。
なにかこういうときの定番の方法とかあったら教えてくださるとうれしいです。
0016デフォルトの名無しさん
NGNG0018デフォルトの名無しさん
NGNGアライメントの問題は、そのように構造体のメンバを
ひとつずつ処理しればOKですよ。
エンディアンの問題は、たとえば、こういうように一バイトずつ
読み書きするしかないでしょうね。
void write_long(FILE* fp, long n)
{
int i;
for (i = 0; i < 4; i++ ) {
fputc(n & 0xff, fp);
n >>= CHAR_BIT;
}
}
0019デフォルトの名無しさん
NGNG書く、という手もあるよ。
0020デフォルトの名無しさん
NGNGlongのサイズの問題は、保証されてる32ビットしか使わない
ようにすればよいと思う。
0021Kusakabe Youichi
NGNG> なにかこういうときの定番の方法とかあったら教えてくださるとうれしいです。
対象環境が1つか2つだったら#ifで対処、
無数の環境を意識するんだったら、
freadでcharの配列に読んで1バイトずつ処理するか、
ascii化して書くかどちらか。
0022tai
NGNGひとつの関数で使ったローカル変数に入った値をプログラム全体での変数に代入したいのですが、どのようにしたら良いのでしょうか?
よろしくおねがいします。
0023デフォルトの名無しさん
NGNG0024Kusakabe Youichi
NGNG> ひとつの関数で使ったローカル変数に入った値をプログラム全体での変数に
> 代入したいのですが、どのようにしたら良いのでしょうか?
ふつうに代入する。
0025もふ
NGNGなるほど、0xffと & を取ればエンディアンに関係なくいちばん「桁」の
小さいところのバイトを取れるんですねー。
いちおう、こんなのでやってみます。。。
int read_mydata( FILE *fp, mydata *dp ){
if( read_int( fp, &(dp->x) ) == 0 ) return 0;
if( read_long( fp, &(dp->y) ) == 0 ) return 0;
return 1;
}
int read_long( FILE *fp, long *l ){
int i, c;
*l = 0;
/* 32bitまで */
for( i=0; i<4; i++ ){
if( ( c = fgetc( fp ) ) == EOF ){
return 0;
}
*l |= c;
*l <<= 8;
}
return 1;
}
0026Kusakabe Youichi
NGNG> いちおう、こんなのでやってみます。。。
> int read_mydata( FILE *fp, mydata *dp ){
> if( read_int( fp, &(dp->x) ) == 0 ) return 0;
> if( read_long( fp, &(dp->y) ) == 0 ) return 0;
> return 1;
> }
エンディアンの問題はなんとかなっても、構造体のメンバーの間に
隙間があったらどうするつもりなの?
0027デフォルトの名無しさん
NGNG>エンディアンの問題はなんとかなっても、構造体のメンバーの間に
>隙間があったらどうするつもりなの?
メンバをひとつずつ処理してるから、問題ないのでは?
0028Kusakabe Youichi
NGNG> >エンディアンの問題はなんとかなっても、構造体のメンバーの間に
> >隙間があったらどうするつもりなの?
>
> メンバをひとつずつ処理してるから、問題ないのでは?
「処理」とは?
0029デフォルトの名無しさん
NGNG>「処理」とは?
if( read_int( fp, &(dp->x) ) == 0 ) return 0;
if( read_long( fp, &(dp->y) ) == 0 ) return 0;
read_int(),read_long()こういう関数をコールして、
ファイルから、int,longの単位で読み出してることです。
0030デフォルトの名無しさん
NGNG| |
| ここでボケて |
|____ ____|
∧,,∧ ||
⊂ミ.,,゚Д゚彡つ
0031Kusakabe Youichi
NGNG> >「処理」とは?
>
> if( read_int( fp, &(dp->x) ) == 0 ) return 0;
> if( read_long( fp, &(dp->y) ) == 0 ) return 0;
>
> read_int(),read_long()こういう関数をコールして、
> ファイルから、int,longの単位で読み出してることです。
ってことは、書くときにもそうするってことですよね?(そこが重要)。
0032デフォルトの名無しさん
NGNG>ってことは、書くときにもそうするってことですよね?(そこが重要)。
ああ。
読むときに、int,long単位でやってるから、書き込みも
同じに処理するって、思い込んでましたよ。
初心者相手には、そういう配慮をしたほうがいいですかね。
0033もふ
NGNGもちろん、書くときにも同じ順番でひとつずつ write_int , write_long などとやりますが、
それなら大丈夫ですよね?
0034Kusakabe Youichi
NGNG> ああ。
> 読むときに、int,long単位でやってるから、書き込みも
> 同じに処理するって、思い込んでましたよ。
まあ、自分でやるときはそうするから...は甘いですね:)
> 初心者相手には、そういう配慮をしたほうがいいですかね。
配慮というか「警戒」というか。
0035Kusakabe Youichi
NGNG> もちろん、書くときにも同じ順番でひとつずつ write_int , write_long などとやりますが、
> それなら大丈夫ですよね?
その読む関数と書く関数がつねにセットになっていて不整合がなく、
片方だけ修正しわすれることがなければね。
そのためにはなるべく近くに置くのがコツ。
(#defineマクロなどで共通化もはかる)
0036デフォルトの名無しさん
NGNGたいていのアーキテクチャでは整数を表現するのに2の補数を使ってるけど、稀に1の
補数を使ってるアーキテクチャもある。その場合には >>25 だと NG だね。
(ま、そんなアーキテクチャを使う予定がなければ、気にしないのが正解だけどさ)
あと、構造体ごとに read_xxx 関数を作ると面倒になるから、一つ抽象化したほうがいい
と思われ。printf() みたく
(1) ダンプするデータを指定する文字列 (c で char, i で int, l で long とか)
(2) 実際のデータ
を列挙して処理できる関数を、一つ用意するとかね。
inline int read_mydata(FILE *fp, mydate *dp)
{
unpack(fp, "il", &dp->x, &dp->y);
}
たとえば、こんな感じで。これだけだと有り難味が実感できないかもしれんが、ユーザ定義の
コールバック関数を取れるように (1) を拡張したりすると、データが複雑になったときの保守
性に差が出てくる。
0037デフォルトの名無しさん
NGNG>稀に1の補数を使ってるアーキテクチャもある。その場合には >>25 だと NG だね。
1の補数でもOKのように見えますけど、どこがいけないんでしょうか?
0038デフォルトの名無しさん
NGNG2の補数の機械で、-50を保存
そのデータを1の補数の機械へもっていき、読みこむ
とどうなるか、というお話ではないだろうか?
0039デフォルトの名無しさん
NGNGなるほど。
いろいろあるなぁ。
互換性を考えると、テキストデータが一番いいかな。
(って、文字コードもいろいろあるのか)
0040デフォルトの名無しさん
NGNGクリップボードに移すにはどのようにやればよいのでしょうか?
0041デフォルトの名無しさん
NGNGGeneric な C では「クリップボード」は定義されてないから、何とも。VC の話なら VC スレで聞いたほうが
いいと思うぞ。
0042デフォルトの名無しさん
NGNGなんか下記のようなサンプルがあるんだけどこれを独立したcソースの関数とすると、
コンパイル後に「HGLOBALは定義されていない識別子です」とでてエラーがでます。
定義はどこですればいいのでしょうか?
あとCではクリップボードはつかわないほうがいいのですか?
void SetClipText(void)
{
HGLOBAL hText;
char *pText;
hText = GlobalAlloc(GMEM_DDESHARE | GMEM_MOVEABLE, 4);
pText = GlobalLock(hText);
lstrcpy(pText, "abc");
GlobalUnlock(hText);
OpenClipboard(NULL);
EmptyClipboard();
SetClipboardData(CF_TEXT, hText);
CloseClipboard();
}
0043デフォルトの名無しさん
NGNGヘッダをインクルードしなさい。
てか、C言語の質問とちゃうでしょ。
0044ネタ?
NGNGゲラゲラ
0045デフォルトの名無しさん
NGNG0046デフォルトの名無しさん
NGNG>>8
> っていうか、こんな渡し方をしなきゃいけない場合は考えられないので、
Init_Proc()で開いたファイルストリームを、main()で触りたい場合は?
戻り値で返せってか、まぁその通りなんだが。
> まず、fopenで帰ってくる値(ポインター)が指す実体はどこにあるのか
> 想像してみましょう。
これはマジか?ネタか?
5をひっかけて喜んでるのか?
想像の入る余地があんのかよ。
> # いったいどんな本を読んで勉強したのだろうか。
あんたがな。
0047デフォルトの名無しさん
NGNG>これはマジか?ネタか?
>5をひっかけて喜んでるのか?
なんのことだろ。
日下部氏が間違ってるようには見えないけど?
0048デフォルトの名無しさん
NGNG・fopenで帰ってくる値(ポインター)が指す実体
> fopenが返す値(FILE*型)の実体は、標準関数が内部管理する領域(FILE型)
・fopenが返した値を格納した領域
> Init_Proc(FILE** FP)へ引数としてアドレス(FILE**型)が渡された、
main()内のFILE*型変数FP。
で、何が問題?
fclose()してない事?
0049デフォルトの名無しさん
NGNG普通、構造体で包んで渡したりするとおもうよ。
FILE**が出てくるソースは、俺はあんまし見たことない。
>47
じゃ、とりあえず、5のどこが間違っているのか、説明してみてよ。
0050デフォルトの名無しさん
NGNG>>49
まぁ、その通りだし、私もそうするけど、5の
> っていうか、こんな渡し方をしなきゃいけない場合は考えられないので、
“考えられない”ってのが言い過ぎだという反例です。
0051デフォルトの名無しさん
NGNGポインタのポインタなんてしないで、
普通に FILE*fpで受け渡しすればいいのでは?
5が動くといっても、無駄に処理を複雑にしてるだけに見えるよ。
0052デフォルトの名無しさん
NGNGとりあえず、その「普通にFILE*fpで受け渡し」してみたコードを載せてみ。
0053デフォルトの名無しさん
NGNG0054デフォルトの名無しさん
NGNG検証の余地なんてないと思うけど、なんで?
なんか勘違いしてない?
005546
NGNGそれに必然性があるか否かはともかく、
5のソースではFILE*型変数FPの実体はmain()内にあるのさ。
で、Init_Proc()でfopen()してる。
さて、Init_Proc()からmain()に戻ったとき、
FPの値は何やろね?
という事を、52は言いたいのだと思われ。
あんまこんな事をつついていると、元凶から
“そもそも設計がまちがっているのでしょう。”
とか返されそうでやだな。
0056デフォルトの名無しさん
NGNGp = malloc(sizeof(char)*256);
これをコンパイルするとエラーになります。
エラー E2034 testf.cpp 8: 'void *' 型は 'char *' 型に変換できない(関数 main() )
コンパイラのせい?
0057デフォルトの名無しさん
NGNGコンパイラのおかげです。
0058デフォルトの名無しさん
NGNGなんで、p=(char *)malloc(256);
にしないの?
0059デフォルトの名無しさん
NGNG知らなかったから。
ありがと。無事コンパイルできたよ
0060デフォルトの名無しさん
NGNG0061デフォルトの名無しさん
NGNGc++コンパイラでコンパイルしたんじゃない?
0062デフォルトの名無しさん
NGNGそう、コンパイラはBorland C++ です。
006361
NGNGc++はある型をtypeとすると
type*からvoid* へは普通にキャストできるけど
void*からtype* へのキャストは明示的に(type*)とキャストしないと
コンパイラに叱られる。
0064デフォルトの名無しさん
NGNGと知ったかぶってみる板違い。
0065デフォルトの名無しさん
NGNGWinで\nてやるとWin用の改行コードを吐きますよね?
それを、無理矢理UNIX系OSの改行コードを吐かせる方法ってありますか?
0066デフォルトの名無しさん
NGNG0067デフォルトの名無しさん
NGNGそれ以前に new 使うと思うが。(これならキャスト不要だよ)
0068デフォルトの名無しさん
NGNG良く分かってないのに“吐く”だなんて言葉使うな。
“\nてやると”ってなんだよ!
“テキストモード”と“バイナリモード”で調べろ。
阿呆
0069デフォルトの名無しさん
NGNG0070デフォルトの名無しさん
NGNGあ
ほ
。
0071デフォルトの名無しさん
NGNG0072名無しさん@お腹いっぱい。
NGNGUNIXでもDOSでも吐きますが何か?
>それを、無理矢理UNIX系OSの改行コードを吐かせる方法ってありますか?
何を無理するんでしょうか、すいませんが私も「吐く」の意味が把握出来ません
0073自作自演
NGNG0074デフォルトの名無しさん
NGNGバイナリモードでオープン
0075デフォルトの名無しさん
NGNG> “テキストモード”と“バイナリモード”
しかも工房呼ばわり。
ところで無理矢理ってイイね。
無理矢理履かせる、黒ニーソクスを
無理矢理穿かせる、タイトミニを
0076デフォルトの名無しさん
NGNG0077デフォルトの名無しさん
NGNG> しかも工房呼ばわり。
そりゃあ 65=69 で、質問したら馬鹿にされて悔しかったんだろ(w
0079デフォルトの名無しさん
NGNG自分で「吐きます」とつかっているじゃないか。
0080opopi
NGNGこういうエラーがでるんですけど、なぜかわかりませんか?
ちなみにproject−設定でplotc2fをいれたんですができません
0081Kusakabe Youichi
NGNG> 厨房見るとハイエナの如くハンターが集まってくるね(^^;)こわっ
っていうか「正しい教え方」どころか、
自己満足のために相手しているみたいだし。
私みたいに正しく対処すればいいのにね。
0082デフォルトの名無しさん
NGNG'plot10.h': No such file or directory
って自分で書いてるじゃねぇか。
> ちなみにproject−設定でplotc2fをいれたんですができません
意味不明
正しい対処とやらは誰かさんがしてくれるじゃろ。
俺は毒づくだけ。
阿呆
0083デフォルトの名無しさん
NGNG0084Kusakabe Youichi
NGNG>'plot10.h': No such file or directory
> こういうエラーがでるんですけど、なぜかわかりません
考えなさい。
0085デフォルトの名無しさん
NGNGと言うかwarez臭いな(w
0086デフォルトの名無しさん
NGNGバグ?
while(...) {
...
} while(...);
0087デフォルトの名無しさん
NGNGなにが言いたいのかよくわからないな。
Whileが2つあるだけではないのか?
while(1) i++;
while(1) ;
を、君はエラーにしてほしい、とでも言うのか?
0088デフォルトの名無しさん
NGNGどこかで見たな、その質問。
ネタか?ツマラソ
0089デフォルトの名無しさん
NGNGネタかも知れんが、一応解説しといてやる。
structとかと違って複文ブロックのあとに;は不要。
0090デフォルトの名無しさん
NGNGdog
cow
hors
dog
bird
cat
こういう感じで、一行に単語がひとつ書いてある
テキストファイルを読み込んで、重複してある
単語を取り除いて、ユニークな単語数を数えると
いうプログラムを作りました。
いったんは完成したのですが、いろいろいじっている
うちに、うまく動かなくなって、元にもどせなくなって
しまいました。
どうすれいいですか?
009190の続き
NGNG#include <stdlib.h>
#include <time.h>
#include <string.h>
char *table[1000];
int table_tail = 0;
void table_add(char *s)
{
char *p;
p = malloc(strlen(s)+1);
if (p == NULL ) {
exit(1);
}
strcpy(p, s);
table[table_tail] = p;
table_tail++;
}
void word_count()
{
int i, j;
int kazu;
int flag;
kazu = 0;
j = 0;
start:
flag = 0;
for (i = j; i < table_tail; i++) {
if (strcmp(table[j], table[i]) == 0) {
flag = 1;
}
}
if (flag == 1 ) {
table[j] = NULL;
}
j++;
if( j >= table_tail-1 ) {
goto end;
}
goto start;
end:
for (i = 0; i < table_tail; i++) {
if (table[i] != NULL) {
kazu++;
}
}
printf("%d\n", kazu);
}
009291の続き
NGNGint main()
{
char s[256];
char *p;
FILE *fp;
fp = fopen("word.txt","r");
if (fp == NULL) {
exit(1);
}
for (;;) {
p = fgets(s,256,fp);
if (p == NULL) {
goto end;
};
table_add(s);
}
end:
word_count();
return 0;
}
0093デフォルトの名無しさん
NGNGソース読むのウザイ、後でみてやるかもしれない。
> いったんは完成したのですが、いろいろいじっている
> うちに、うまく動かなくなって、元にもどせなくなって
> しまいました。
ソースは履歴を取っとけ。
“いったんは完成した”というのなら、
そういった時点でな。
0094デフォルトの名無しさん
NGNG>うちに、うまく動かなくなって、元にもどせなくなって
>しまいました。
>どうすれいいですか?
CVSを導入しましょう。
0095デフォルトの名無しさん
NGNG0096デフォルトの名無しさん
NGNGでも、お前がgoto使ってる個所は総て、forかwhileループ、
およびbreak文で書ける、というか俺ならそうする。
>うまく動かなくなって
何が問題が書け!
コピペしてmakeして実行してみろと?
しかもバグ付きソースを!?
アクセス違反が起きる、というなら、
strcmp(table[j], table[i])にNULLを突っ込んでいるのが原因やろ。
阿呆
0097デフォルトの名無しさん
NGNGブレイク!
0098デフォルトの名無しさん
NGNGwhile forとbreakで十分。
0099デフォルトの名無しさん
NGNGなんの目的でやってるの?
プログラミングのお勉強?
それなら、とりあえず goto なくせ。
必要ない flag も使うな。
問題があるのは strcmp(table[j], table[i]) のところで
NULL を渡すことがあるのがいけんのだと思う。
0100デフォルトの名無しさん
NGNG010199
NGNG010296
NGNG99さんよろしく!
しあわせにしてね(はぁと)
010390
NGNGgoto使わないと、かけませんでした。
自分には、これで、いっぱいいっぱいです。
0104デフォルトの名無しさん
NGNGmalloc()で確保したんだから、
table[j] = NULL;
ってやる前に、free()しとけ。
> goto使わないと、かけませんでした。
少なくとも、main()の中のgotoはbreakに。
そもそもwhileの条件にfgets()を指定すればそれで良い。
word_count()中のgotoも、forで書けるでしょ?
がんばれ!
…阿呆
0106C初心者
NGNG他人のソースで見たのですが……
#define SAMPLE "abcde"
このような定義があり、
if (string[0] == SAMPLE[0]) {
と書かれていたのですが、define定数のこのような使い方は
一般的なのでしょうか?
0107デフォルトの名無しさん
NGNG代入は出来ないからね。
0108デフォルトの名無しさん
NGNG99さんと俺のケコーン式を邪魔したな!阿呆!!
一般的って何?水掛け論になりそうな言い回しヤメテ。
h = "0123456789abcdef"[d];
10進 to 16進 とか…
あんま使わんけど、全く見ないと言う程ではないと。
0109デフォルトの名無しさん
NGNG○整数値の16進数表記化
阿呆>俺
0110デフォルトの名無しさん
NGNGそれはおいといて、文字列を#defineで使うってのが
気持ち悪いのはおれだけか?
0111デフォルトの名無しさん
NGNGどの意味?
文字列リテラルはベタ書きしろ?
extern const char* const とかで管理しろ?
そもそもスコープ無視で作用する#defineを文字列定数ごときに使うな?
0112後藤さん
NGNG0113デフォルトの名無しさん
NGNG| ここでボケて!! |
|_________|
∧∧ ||
( ゚д゚)||
/ づΦ
0114デフォルトの名無しさん
NGNGprintf("a[%d] = ",i);
scanf("%c",&a[i]);
}
↑こうやるとうまくいきません。%sにすると問題ないです。なんで?
0115デフォルトの名無しさん
NGNG0116デフォルトの名無しさん
NGNG学校で教えられるからかな。
0117デフォルトの名無しさん
NGNG0118デフォルトの名無しさん
NGNG0119デフォルトの名無しさん
NGNG0120デフォルトの名無しさん
NGNGハードディスクをscanしてください。
0121初心者
NGNGどのように考えれば良いのか分からず困惑しています。
よろしくお願いします。
1、キーボードから2つの整数を受け取り、小さい数から大きい数までの偶
数を表示するプログラムを作りなさい。受け取る数値が偶数でも
奇数でも処理できるようにすること。例えば、10と3を入力したら
4、6、8、10を表示する。
2、キーボードから0〜100までの数値を入力し、合計をsum
にもとめる。ただし、−999を入力したらゼロクリアして合計を
し直し999と入力したら合計を表示して終了するプログラムを
作りなさい。
3、キーボードから連続して数値を受け取り負の数が入力されたら
入力の終了としてそれまでに受け取った0または正の整数の中から
最大とと最小値を表示するプログラムを作成せよ。
ただし、最初の入力が負の数であった場合には最大値、最小値
ともにその負の数を出力するものとする。
4、キーボードから2つの整数を受け取り、小さい数から
大きい数までの奇数の和を表示するプログラムを作りなさい。
受け取る数値が奇数でも偶数でも処理できるようにすること。
例えば、10と3を入力したら3+5+7+9をプログラムないで計算し
24を表示する。また受け取った数値に0または負数が含まれる場合
や2つの数がともに同じ偶数の場合には0で表示するものとする。
0122デフォルトの名無しさん
NGNG>以下の問題について考え方等を教えていただけませんでしょうか?
ずいぶん基礎的な問題だと思いますが、
たとえば1だと、どのあたりがわからないのでしょうか?
0123揚げ足とり
NGNG>−999を入力したらゼロクリアして合計をし直し
ゼロクリアして合計って、ゼロ以外になんのかね(ゲラ
こんなとこに書く前に、隣に居る友達に相談ちなちゃい。
友達いないんでちたら、回線斬って首吊ってちね!
0124デフォルトの名無しさん
NGNG動かなくても自分なりに考えた答えを貼り付けるとか、
なんか、努力のあとを見せてくれよ。
匿名なんだから、恥をかいても平気だろ。
0126初心者
NGNG基礎的な問題というのは分かるのですが・・・
どう作って良いのかが分からないのです。
あきれてしまわれるかもしれませんが
なんとかアドバイスお願いします。
0127デフォルトの名無しさん
NGNG・キーボード入力を取る方法は分かりまちゅか?
・画面へ表示する方法は分かりまちゅか?
・ループとか条件式って、聞いたことありまちゅか?
・そもそもプログラム組んだことありまちゅか?
> どのように考えれば良いのか分からず困惑しています。
こういう場合は、
“息をするのも考えるのも面倒なので、お前らソースをウプしる!”
が正しい日本語の使い方です。
阿呆
0128デフォルトの名無しさん
NGNG手元に、ソースをコンパイルして実行する環境はありますか?
これくらい無かったら、絶望的です。
もし、無かったら答えをまるまる教えてくれるやさしい人の
登場をひたすら待つしかありません。
0129初心者
NGNG先が分かりません。
#incude <stdio.h>
void main (void)
{
int
0130初心者
NGNGコンパイルはできます。
0131デフォルトの名無しさん
NGNGやさしい問題をたくさんときなさい
0132初心者
NGNGどうもすいませんでした。
0133デフォルトの名無しさん
NGNG標準ライブラリのヘルプかマニュアルは持ってるか?
scanf() (藁
gets()
getchar()
prinf()
この辺見て、まず数値を受け取って、それを表示するプログラムを書いてみろ。
それが出来たらもう一度来い。
0134初心者
NGNGgets()、getchar()というのは出てきてないようですが・・・
これしかないですが、できる限りやってみます。
それでは
0135大ヒント
NGNG偶数の判定を入れれば1の課題は完成。
#include <stdio.h>
int main()
{
int i,max,min,tmp;
scanf("%d", &min);
scanf("%d", &max);
if (min > max) {
tmp = min;
min = max;
max = tmp;
}
for (i = min; i < max; i++) {
printf("%d ", i);
}
return 0;
}
0136初心者
NGNGこんな感じですか?
#include <stdio.h>
void main (void)
{
int m,n;
scanf("%d",&m);
scanf("%d",&n);
}
0137初心者
NGNG判定というのはwhileとかforのことですよね?
0138デフォルトの名無しさん
NGNGもしもし!?あんた何歳?
while や for という英単語を見てどうして“判定”だと思えるのか、
持ってる本のif文って所を、小1時間読め。
条件演算子というのもあるが、素人にはお勧めできない。
あと、136は数値を受け取っただけで表示してないだろ、阿呆。
画面に出ているのは、入力した時の表示(エコーバック)だけでは?
0139
NGNGprintfとscanfのクローンをつくってみな。
意外につくれるから。
0140デフォルトの名無しさん
NGNGhttp://pc.2ch.net/test/read.cgi/tech/1007902384/
0141初心者
NGNGなんか勘違いしてたようで・・・
printf入ってませんでしたね。
宿題スレにいかさせてもらいます。
0142デフォルトの名無しさん
NGNG0143デフォルトの名無しさん
NGNG0144デフォルトの名無しさん
NGNG0145デフォルトの名無しさん
NGNG0146デフォルトの名無しさん
NGNGそれともアルゴリズム関係のスレ?
0147デフォルトの名無しさん
NGNGとりあえず、書いてみれば?
場違いなら蹴り出されるだけだし。
0148Kusakabe Youichi
NGNG> cat
> dog
> cow
> hors
> dog
> bird
> cat
>
> こういう感じで、一行に単語がひとつ書いてある
> テキストファイルを読み込んで、重複してある
> 単語を取り除いて、ユニークな単語数を数えると
> いうプログラムを作りました。
> いったんは完成したのですが、いろいろいじっている
> うちに、うまく動かなくなって、元にもどせなくなって
> しまいました。
> どうすれいいですか?
またしばらくおいておけばいいでしょう。
0149Kusakabe Youichi
NGNG> #define SAMPLE "abcde"
>
> このような定義があり、
>
> if (string[0] == SAMPLE[0]) {
>
> と書かれていたのですが、define定数のこのような使い方は
> 一般的なのでしょうか?
#defineがどうのじゃなくて、展開した状態を考えてみればいいじゃん。
0150デフォルトの名無しさん
NGNGそれじゃ、質問させていただきます。
文書から読み込んだ単語のリストを2分木で扱いたいと考えているのですが、
ルートノードとノードの追加は処理が違うために
ルートノードをあらかじめ作成しておいてからそのルートにノードを追加していくという方法を考えました。
その時ルートノードにはなにを入れればいいのでしょうか。
0151Kusakabe Youichi
NGNG> 「作ってわかるCプログラミング」に載ってるとか > scanf
目次ぐらい読め。
0152Kusakabe Youichi
NGNG> }は;をかねる
本気にするやつが出てきそう:)
0153デフォルトの名無しさん
NGNG0154デフォルトの名無しさん
NGNGなさりやがる、に禿しくワラタ
0155デフォルトの名無しさん
NGNG> 目次ぐらい読め。
ご指摘、ありがとうございます。
でも、そもそも持ってないし。
なんで命令口調なんだろう。
# そんなに怒らなくてもいいのにー
0156Kusakabe Youichi
NGNG> その時ルートノードにはなにを入れればいいのでしょうか。
べつに何でもいいのでは?
たとえば、子が1つだけのノードの「もう一方のポインター」には
何をいれておくよていなのですか? それを考えれば
そうなやむことでもないことがわかるでしょう。
それでもわからなければ191ペイジを読みましょう。
0157Kusakabe Youichi
NGNG> Kusakabeセンセは、何故に全文引用なんて迷惑千万な事をなさりやがるんですか
どこが全文引用なのですか?
わたしは必要な部分しか引用してないですよ。
0158150
NGNG何の本の191ページですか?アヒル本?
0159Kusakabe Youichi
NGNG> > 目次ぐらい読め。
> ご指摘、ありがとうございます。
> でも、そもそも持ってないし。
だから買えばいいんだって。
0160Kusakabe Youichi
NGNG> 何の本の191ページですか?アヒル本?
表紙にあひるはついてませんよ(あ、小さいのがあるか)
0161150
NGNGすみませんが、そんな本は持ってないです。
学生でお金がないので…。
いつか大金持ちになったら買うかもしれません。
0162Kusakabe Youichi
NGNG> すみませんが、そんな本は持ってないです。
> 学生でお金がないので…。
じゃあ買うといいです。
0163デフォルトの名無しさん
NGNGとりあえず、cでのコーディング以前のアルゴリズムの話みたいなんで、
そっち系のスレ逝ったほうが良いかも。
>>157
> どこが全文引用なのですか?
148は80の全文引用だが、
> わたしは必要な部分しか引用してないですよ。
148に引用した範囲が回答に「必要な部分」であるとするなら(藁
“でも必要な部分しか引用してないですよ:)”
と返せるわけだ。
詭弁としても出来が悪い、3点。
0164Kusakabe Youichi
NGNG> とりあえず、cでの(I紺筑�五以前の(I悦剤惱渮の話みたいなんで、
> そっち系の(I准逝ったほうが良いかも。
文字化けしてますよ。
> > どこが全文引用なのですか?
> 148は80の全文引用だが、
どの部分だろう?
0165デフォルトの名無しさん
NGNG80違う、90鬱氏
0166150
NGNGありがとうございます。そっちに逝ってきます。
>>162
文章をもう少ししっかりと読んで欲しいのですが。
金がないから買えない、ということが通じなかったのですか?
また、買うとしてもよっぽど金がない限り買うことはないだろうということも
言ったつもりですが…。
一応ム板の推薦参考書スレを頼りにさせていただいていますので、
そこに紹介されていない本は買う気にならないです。
ましてや作者しか推薦してしない本など。
…愚痴&長文ですみません。逝ってきます。
0167Kusakabe Youichi
NGNG> 文章をもう少ししっかりと読んで欲しいのですが。
> 金がないから買えない、ということが通じなかったのですか?
だからこそ買えばいいのでは?
そうすればお金ぐらい涌いてきますよ。
> 一応ム板の推薦参考書(I准を頼りにさせていただいていますので、
もじばけしてますよ。
0168150
NGNGごめんなさい。もはやあなたの文は理解不能です。
理論的に破綻してます…。
…誰かこの人の文を訳してくれる方はいませんかね?
(もしかしてkusakabe人工無能がレスしてる?もしそうだったら…鬱氏。)
0169デフォルトの名無しさん
NGNG>…誰かこの人の文を訳してくれる方はいませんかね?
一見、日本語の様に見えますが、実は全文文字化けしてます。
残念ながら原文の解読は難しく、そこからの翻訳も困難を極めております。
現在、ム板とマ板の住人による不眠不休の作業が続けられております。
もうしばらくお待ちください。
0170Kusakabe Youichi
NGNG> ごめんなさい。もはやあなたの文は理解不能です。
おやまあ。もう思考停止しましたか。
けっこうほかのひとより早めですね。(じたばたしなくて利口だともいう^^)
0171150
NGNG思考停止、ではなくて脳が強制終了したんです。
私は常識的な日本語しか理解できないので、日下部語がわからないのです。
できれば常識的な日本語で再度>>167を説明してください。
私のわからないところは、
「金がない」→「アヒル本を買う」→「金が湧いてくる」という一連の流れです。
とくにアヒル本を買うことでなぜ金が湧いてくるのかが全く理解できません。
…ちなみに、アルゴリズム関係のスレが見つからないんですが…誰か誘導してください…。
0172Kusakabe Youichi
NGNG> 思考停止、ではなくて脳が強制終了したんです。
同じことでしょ。アクセス違反で、保護機構がはたらいたわけでしょ。
> 私は常識的な日本語しか理解できないので、日下部語がわからないのです。
いえ「理解すると都合悪いことになる」から例外が発生したわけでしょう。
> …ちなみに、アルゴリズム関係の(I准が見つからないんですが…誰か誘導してください…。
文字化けしてますよ。
0173あぼーん
NGNG0174デフォルトの名無しさん
NGNG「高性能クサカベ辞書」と「クサカベレスキャンセラー」はありませんか、親切な人…
0175150
NGNG…常識的な文章力のみならず、常識的な理解力すらない自称常識人なのですね。
どうせこのような事を書くと、「そういうことにしたいのですね」というレスが返ってくるんでしょうけど。
スレ荒れるのでこれ以上はレスしません。
>いえ「理解すると都合悪いことになる」から例外が発生したわけでしょう。
これあなたのことですね。
0176デフォルトの名無しさん
NGNGだから、「プログラム板」で、日本語の話題上げなさんな、
うとましき日下部陽一さんよ。
0177Kusakabe Youichi
NGNG> 「高性能(I源桐泗ぢ辞書」と「(I源桐湍酬�衝�ぢ」はありませんか、親切な人…
文字化けしてますよ。
0178Kusakabe Youichi
NGNG> >>172
> …常識的な文章力のみならず、常識的な理解力すらない
ということにしてしまえば、自分のまぬけさ加減に目をつぶることが
できるのですか? :)
0179Kusakabe Youichi
NGNG> だから、「プログラム板」で、日本語の話題上げなさんな、
わたしはとくにやっていませんね。やっているひとにいったら?
0180174
NGNGありがとう!クサカベたん!!
誰からもムシされる私のボケに突っ込んでくれて。
>>150
> ルートノードとノードの追加は処理が違うために
> ルートノードをあらかじめ作成しておいてから
> そのルートにノードを追加していくという方法を考えました。
> その時ルートノードにはなにを入れればいいのでしょうか。
“何を入れれば?”と問われても…
枝(ポインタ)の値のこと?
単純に無効な値(NULLポインタ)とかでは、駄目なんですか?
0181150
NGNG枝の値ではないです。ノードの文字列(中身?)です。
無意味なものを入れても、あとでトラバーサル&出力するときに
その内容が出てしまうのではないかと思いまして。
一応'\0'なら大丈夫…でしょうか?
やりかたが良くわからないので、まだコンパイルまで辿り着けないんです。鬱氏。
0182Kusakabe Youichi
NGNG> >>180
> 枝の値ではないです。ノードの文字列(中身?)です。
> 無意味なものを入れても、あとでトラバーサル&出力するときに
> その内容が出てしまうのではないかと思いまして。
ルートをダミーにしていまうのですか?
だったら191ペイジを読めばいいですね。
0183デフォルトの名無しさん
NGNG誰にも構われず、独り言ばっか。
0184Kusakabe Youichi
NGNG> 誰にも構われず、独り言ばっか。
と思いたいんでしょうね。
0185デフォルトの名無しさん
NGNGはいはい、おじいちゃん、レスはさっき付けたでしょう?
ここはもういいですから、寝室でお休みになってくださいな。
「トットトクダバレヨ、コノモウロウジジィガ」
0186Kusakabe Youichi
NGNG> はいはい、おじいちゃん、レスはさっき付けたでしょう?
なるほど。こういうひとがあらしているのですね。
0187デフォルトの名無しさん
NGNGそれでいいです。
操作されて問題の起こらない値を入れておけばなんでもよい。
\0でもいいし、ルートだということを識別できるシグネチャでもいい。
0188デフォルトの名無しさん
NGNGゴメソ、前提条件が分からんのでアレだけど、
> 枝の値ではないです。ノードの文字列(中身?)です。
> 無意味なものを入れても、あとでトラバーサル&出力するときに
> その内容が出てしまうのではないかと思いまして。
作成時にルートを特別扱いしたのなら、解析時にも特別扱いってのは、NGなの?
> やりかたが良くわからないので、まだコンパイルまで辿り着けないんです。鬱氏。
設計で詰まってるのか、コーディングで詰まってのか、どっちよ?
0189183
NGNG誰もKusakabe Youichiという人が
おじいちゃんなんて言ってないんですが。何であなたが反応してるんですか?
…そうですか、おじいちゃんだったんですか。
そんな自覚があったとは知りませんでした。いや、勉強になりました。
0190Kusakabe Youichi
NGNG> 誰もKusakabe Youichiという人が
> おじいちゃんなんて言ってないんですが。何であなたが反応してるんですか?
だれが反応するかとその内容は無関係です。
ただ、変に関係ないこと書いて荒らしているやつがいたので反応したまで。
0192150
NGNG設計でつまっています…。
文章から得られた単語を新ノード作成関数に送り、
文章がEOFを返した時点で一覧表示したいと思っています。
解析時に特別扱いするのは構わないんですが、設計方法がわからないです…。
0193Kusakabe Youichi
NGNG> >>190
> やっぱあなたおもしろいですね
とか関係ないことかくわけですね。
0194デフォルトの名無しさん
NGNGカンペキに負けてるよ(藁
0195Kusakabe Youichi
NGNG> 設計でつまっています…。
> 文章から得られた単語を新ノード作成関数に送り、
> 文章がEOFを返した時点で一覧表示したいと思っています。
>
> 解析時に特別扱いするのは構わないんですが、設計方法がわからないです…。
なにがどうわからないのだろう?
191ペイジ読めばいいのに
0196Kusakabe Youichi
NGNG> おじいちゃん、頑張って!
> カンペキに負けてるよ
まだ関係ないことかいてるし。
0197デフォルトの名無しさん
NGNG0198デフォルトの名無しさん
NGNG>> おじいちゃん、頑張って!
>> カンペキに負けてるよ
>まだ関係ないことかいてるし。
また関係ないことかいてるし。
0199デフォルトの名無しさん
NGNGC++スレ逝け
http://pc.2ch.net/test/read.cgi/tech/1003832761/l50
つーか試せよ! 試せよぅ!!
0200デフォルトの名無しさん
NGNGなんでC++?Cの構造体のことを聞いているんだけど。
試すのが面倒だから聞いたの。
0201デフォルトの名無しさん
NGNGデハキコウ
シンノードサクセイカンスウトハ
ドウイウショリヲオコナウノダ?
0202デフォルトの名無しさん
NGNG試すの面倒なら死んでしまえ。
0203デフォルトの名無しさん
NGNGハァ!?
> 構造体のテンプレート
ってのは何?templateの事ではないの?
てめぇの脳内単語を垂れ流すな!
おじいちゃんみたくなるぞ!!
> 試すのが面倒だから聞いたの。
例えば俺が答えたとして、それを信じるのかよ、お前は!?
自分で追試しるだろ?
だったら最初から自分でやれよ! やれよぅ!!
0204デフォルトの名無しさん
NGNG教えて君をなめるなよ!!
0205デフォルトの名無しさん
NGNG> ・スレッドの内容に関係ない雑談や連続投稿にはsage推奨です。
とあるのだから196氏もsageでやってほしいな。
0206デフォルトの名無しさん
NGNGしかも態度デカイ。逝ってよし。
0207デフォルトの名無しさん
NGNGきっと“はつみみ”だよ
で、今んとこアクティブなネタは2分木がどうとかいうのか?
0208デフォルトの名無しさん
NGNGダメな人って素質ないから止めた方がいいよ!
0209Kusakabe Youichi
NGNG> この低レベルなやりとりが行われている場で質問しなきゃ
> ダメな人って素質ないから止めた方がいいよ!
その質問者に助言するレヴェルはその下ですか? :)
0211150
NGNG現在書いているソース等をHPに載せてみましたので、見ていただけないでしょうか。
http://www.geocities.co.jp/SiliconValley/1008/
ソースはまだ途中です…。
0212デフォルトの名無しさん
NGNGショリには関係ないことだけど、関数プロトタイプをmain内に書くのって珍しいね。
普通は最初のほうにグローバルスコープで書くもんだけど。
0213150=ぽてと
NGNG関数プロトタイプ…ですか?すみません、知らないので調べてきます…。
もしかしてメイン関数の中で関数宣言していることですか?
0214デフォルトの名無しさん
NGNGそう、
あと、いろいろへんだな。
MakeRootNodeで作成したルートノードは、この関数内でしか参照できないぞ。
MakeNewNodeも戻り値voidじゃだめだろ。
0215デフォルトの名無しさん
NGNG0216150=ぽてと
NGNGMakeNewNodeと関数のプロトタイプをメイン関数の中に書いているのは修正しました。
でも、ルートノードがMakeRootNode内でしか参照できないというのはよくわかんないです。
ポインタだから他の関数でも参照できる…というのは誤った認識ですか?
0217デフォルトの名無しさん
NGNG基本的に関数内で宣言した変数は、その関数内でのみ操作可能。
それに関数を抜ける時に開放される。
mainで使いたいのなら、その値をreturnで返すか、グローバル変数に格納する。
ローカル変数、グローバル変数はわかるか?
0218217
NGNGroot = MakeRootNode( ...
ってかいてあるんだから戻り値を期待してるはず。
それなのにvoid MakeRootNode(...)じゃだめだろ。
なんだか、アルゴリズムの理解度よりもCの理解度が足りないな。
0219150=ぽてと
NGNGローカル変数は関数の中で宣言した変数ですよね。
グローバル変数は関数の外で宣言…だったと思います。
そうするとプログラムが稼動している間その変数が使えるというように認識しています。
0220デフォルトの名無しさん
NGNG俺がかくと、こんな感じカナ。
typedef struct tnode{
char word[64];
/* int count=0; */
int count;
struct tnode *left;
struct tnode *right;
}Node;
Node* makeNode(const char* const str){
/* ノード作成 */
return newNode;
}
Node* addNode(Node* node, const char* const str){
/* ノード追加処理 */
/* 必要なら、makeNode()を読んで新規に作成 */
return node;
}
void Traversal(const Node* const root){
/* 解析と出力*/
}
void main(void){
Node* root;
Node* node;
root=makeNode();
node=NULL;
while(...){
/* ファイル入力 */
node=(node, str);
}
Traversal(root);
}
次からは容赦なく阿呆よばわりするんで、よろしく。
>>214
> MakeNewNodeも戻り値voidじゃだめだろ。
まぁ、確かにvoidは駄目だろう(w
0221150=ぽてと
NGNGそれはただのミスです…。関数いじくっているうちに戻り値が出来てしまって。
0222デフォルトの名無しさん
NGNG鬱氏
×
root=makeNode();
node=NULL;
○
root=makeNode();
node=root;
氏んでくる…
0223デフォルトの名無しさん
NGNGだから、MakeRootNode内の Node *root;はローカル変数。
ローカルカル変数はこの関数内でのみ有効で、しかも関数を抜けるとなくなってしまう。
何らかの方法で、関数外に持ち出さなければならんのよ、わかる?
0224150=ぽてと
NGNGありがとうございます。参考に書き直してみます。
0225150=ぽてと
NGNG関数を抜けるとなくなる、というのは気づいていませんでした。
その関数外に持ち出す方法がグローバル変数として宣言する方法ですね。
調べてからまた来ます。
0226デフォルトの名無しさん
NGNG0227アモロ
NGNGなんで、こんな解析しにくくわかりにくいモンを、わざわざ手間をかけてまで仕込むのですか?
素直に必要になったときに、関数を呼び出せばいいのではないのですか?
0228デフォルトの名無しさん
NGNG誰がいつどこで何のために呼び出すのかを考えよ。
それでも必要ないと思うなら使わなくてよい。
0229自動翻訳
NGNGあなたの仰る通りです。
今の貴方に必要とされている技術レベルにおいては、
コールバック関数を使用する必要はないかと愚考いたします。
もし必要になったなら、その時コールバック関数をお使いください。
阿呆!
0230デフォルトの名無しさん
NGNG必要になったときに呼び出す関数がコールバック関数だろ
0231デフォルトの名無しさん
NGNGgtk のソースでも嫁。
ボタンウィジェットがあるとして、
ボタンがクリックされたときに行ないたい処理はどうやって書けば良い?
処理する関数をボタンウィジェットに関するソースに追加する方法では
そのたびに全てをコンパイルしなおす必要が出てくる。
しかも、汎用性のあるボタンウィジェットに対して、
そのプログラムオンリーの関数が混ざることになって奇麗じゃない。
0232質問スレに非ず
NGNG0233デフォルトの名無しさん
NGNGあと、たまにおじいちゃんが徘徊しているようです。
0234罵倒されたいマゾが集まる
NGNG0235デフォルトの名無しさん
NGNGBBS、ML、むろん現実世界でも一緒。
返答の言葉使いがある程度ぼかしてあるか、罵詈雑言になるかだけ。
0236Kusakabe Youichi
NGNG> 正確に言うと、質問して、罵倒される為のスレです。
っていうかこのひと「罵倒」の意味をしらないっぽい。
0237デフォルトの名無しさん
NGNG(名)スル
口ぎたなくののしること。また、その言葉。「相手を―する」「―を浴びせる」
例)
君の言動って、かなり日下部入ってるよ!
0238デフォルトの名無しさん
NGNG>素直に必要になったときに、関数を呼び出せばいいのではないのですか?
「どの関数を」呼ぶの?
つまり、gtkライブラリは、どの関数を呼べばイイと、どうやれば判るの?
挙動の殆どは、あるwidgetの「クラス」のコードで決められているが、
一部、ユーザー定義の挙動は、widgetの「インスタンス」単位でばらばらなわけ。
クラスの側からは個々のインスタンスの相違なんて知るよしもないから、
「どの関数」を呼べばいいかなんてさっぱり。
個々のインスタンス自体に手続きを仕込み、しこんであるという前提でそれを呼びだす、
という規約を作っておくのが上策。
コールバック関数って、常套手段じゃん。
処理の一部を未だ見ぬ未来のやつらに託すばあいに。
0239デフォルトの名無しさん
NGNG> main関数のNode *rootのところでparse errorを食らいます。
rootとnodeの宣言をstr[0] = '\0';の前に持って逝け。
0240239
NGNG* makeNode()の引数にpはいらない
* なんでaddNode()でmakeNode()を使わない
* addNode()でp==NULLのときを考慮してるから、
ルートノードをあらかじめ作成しておく必要はない
* if (c!=isalpha(c)) ってなんだゴルァ
* 英字以外が連続したときのことを考えていない
* malloc()を使うときは#include <stdlib.h>しる
* strcpy()だとバッファオーバーランの危険がある
* ファイル名は固定じゃなくてargvからとれ。あるいはstdin
0241デフォルトの名無しさん
NGNGデムパ? デムパなの? (((( ;゚Д゚)))ガクガクブルブル
…150が>>211で逝ってたサイトに載せてあるソースに突っ込みいれてるのね。
ご苦労様、でもちょとビクーリしたよ。
0242239
NGNGごめんよ。
150の掲示板に書こうかと思ったらエラーになったもんで、こっちに書いてる。
ついでにもう一個バグ。
* 英字で終ったときに最後の単語がカウントされない
あとオーバーランはmain()の方でも起きそうだな。
0243デフォルトの名無しさん
NGNGここには来ません。
仮にそんな奴が来ても「自分が普段やっている手法と違う」とか難癖つけて罵倒します。
それが全てだ。
まあ何か罵倒できるエサを欲しがっている
エサくれくれ君の隔離の為にはこのスレあったほうがいい。
0244Kusakabe Youichi
NGNG> 仮にそんな奴が来ても「自分が普段やっている手法と違う」とか難癖つけて罵倒します。
> それが全てだ。
> まあ何か罵倒できるエサを欲しがっている
「罵倒」の意味をわかっていない人っぽいなあ。
0245デフォルトの名無しさん
NGNG> 「罵倒」の意味をわかっていない人っぽいなあ。
それの何処がC言語に関連するのか分かりません。
ということにしたいのです、私は。
罵倒の方が主目的でも、何がしかの助言も同時に含まれているのではないかと。
バカと罵倒屋は使いようさ。
助言も与えず、スレの流れも一切無視した書き込みをする人間もいるけどね。
0246Kusakabe Youichi
NGNG> それの何処がC言語に関連するのか分かりません。
っていうのもどう関連しているのかわからないですね。
0247ぽてと
NGNGありがとうございます。いま一生懸命直させてもらってます。
掲示板…書き込めませんでした?私は問題なく書き込めるんですが。
0248デフォルトの名無しさん
NGNG>> 仮にそんな奴が来ても「自分が普段やっている手法と違う」とか難癖つけて罵倒します。
>> それが全てだ。
>> まあ何か罵倒できるエサを欲しがっている
>私は「罵倒」の意味をわかっていない人っぽいと思い込みたい
なんだ、そうか。
0249デフォルトの名無しさん
NGNGたのむから別のところへ逝ってくれ…。
ここは君の遊び場じゃないんだ…。会話もC言語と全く関係ないし…。
0250Kusakabe Youichi
NGNG> 会話もC言語と全く関係ないし…。
少なくともあなたのはいつもそうみたいですね:)
0251デフォルトの名無しさん
NGNG板違い。>>249の言うように雑談したいならラウンジにでも逝って下さい。
日本語が理解できるなら、の話ですが。
0252Kusakabe Youichi
NGNG> >>250
> 板違い。>>249の言うように雑談したいなら
というのも関係ないですね。
0253デフォルトの名無しさん
NGNGC言語で作りたいです。
でも糞壁は文章を脳内変換するので難しいです。
アドバイスください。
0254デフォルトの名無しさん
NGNG白痴相手にマジレスですか? (放置推奨ですです
0255デフォルトの名無しさん
NGNGいえ、ルールの守れないおバカさんに注意しているという意味で、
大いに関係があります。その程度の反論も予想できないのですか?
という訳で、念のためにもう一度言っておきます。
雑談したいならラウンジにでも逝って下さい。
0256Kusakabe Youichi
NGNG> 糞壁を追い出すプログラムを作りたいんですが、どうやってやればいいですか。
> C言語で作りたいです。
なるほど。こうやって荒らすわけですかー
0257デフォルトの名無しさん
NGNGそう言う話はマ板でしようよ、あっちでおちょくってる方が楽しいと思うよ。
0258デフォルトの名無しさん
NGNGおみとろんでフィルタなど書いてみてはいかがでしょうか?
あるいは、自動あぼーん機能のある2chブラウザを使う/作る
方法もあります。
0259デフォルトの名無しさん
NGNGもうね、アホかと馬鹿かと。。
0260Kusakabe Youichi
NGNG> 白痴相手にマジレスですか?
とか関係ないこと書くのはOKなのですね? :)
0261Kusakabe Youichi
NGNG> いえ、ルールの守れないおバカさんに注意しているという意味で、
> 大いに関係があります。
で、それに答えるのもOKなのですね? :)
> という訳で、念のためにもう一度言っておきます。
つまり「自分はいいの」の類ですね? :)
0262デフォルトの名無しさん
NGNG0263デフォルトの名無しさん
NGNG>> いえ、ルールの守れないおバカさんに注意しているという意味で、
>> 大いに関係があります。
>で、それに答えるのもOKなのですね? :)
>> という訳で、念のためにもう一度言っておきます。
>「自分はいいの」
なるほど、自分はいいのか :)
0264デフォルトの名無しさん
NGNGやはり、日本語が理解できませんでしたか。残念です。
では言葉も通じないようですし、雑談にならないうちに私もこの辺で。
0265デフォルトの名無しさん
NGNG人間としての誇りも尊厳も失った物体にレスする必要などありませんから。
こう書くと、またお決まりのセリフが出てくるんだろうなあ…。
「そういうことにしたいのですね:)」ってか。
0266Kusakabe Youichi
NGNG> 放置推奨です。
> 人間としての誇りも尊厳も失った物体にレスする必要などありませんから。
とかいうのをいちいち書くのはOKですね? :)
0267デフォルトの名無しさん
NGNG誰に聞いてるの?
0268デフォルトの名無しさん
NGNG0269Kusakabe Youichi
NGNG> 誰に聞いてるの?
また関係ないことかいてますね:)
0270対処
NGNG>> 放置推奨です。
>> 人間としての誇りも尊厳も失った物体にレスする必要などありませんから。
>とかいうのをいちいち書くのはOK
なんだ、OKなのか :)
0271Kusakabe Youichi
NGNG> In article >>266, デフォルトの名無しさん/sage/266 wrote:
>
> >> 放置推奨です。
> >> 人間としての誇りも尊厳も失った物体にレスする必要などありませんから。
>
> >とかいうのをいちいち書くのはOK
>
> なんだ、OKなのか
ふむふむ。じゃあそうします。
0272デフォルトの名無しさん
NGNG0273自分の言った事に受け答え
NGNG0274(゚ε゚)キニシナイ!!
NGNG見て楽しい物ではないけど、
たまにつついておちょくったり、
サンドバック代わりにするにはちょうどいい。
今んところアクティブなネタも無いみたいだしね。
(埋もれてる?)
0275デフォルトの名無しさん
NGNG埋もれてるような気も。いくつか発掘してあげれば?
0276239
NGNG書き込めなかったっつーか、新規書き込みとか返信をクリックするとこんなメッセージが。
Mozillaとw3mで試したんだが。
> Unable to Process Request
> 申し訳ありませんが、あなたの要求を正常に処理することが出来ませんでした。
> このメッセージは、データベースやサーバの混雑により表示されます。
> 深夜等の時間帯には非常に混雑いたしますので、日中等の比較的空いている時間帯に再度、お試しください。
>
> また、ブラウザ側のトラブルの可能性もございますので、ブラウザの設定の変更または別のブラウザでお試しください。
0277デフォルトの名無しさん
NGNGあんま細かい事言いたくないけど、
メアド晒してるみたいだし、DMした方が良いのでは?
そのCGIがぼてとさんがCで組んだ物なら別だけどさ。
0278Kusakabe Youichi
NGNG> あんま細かい事言いたくないけど、
じゃあいわなきゃいいのに。
0279デフォルトの名無しさん
NGNG俺が言わなきゃあんたがネチネチいちゃもんつけんだろ!
阿呆!
今日始めて阿呆って言えたよ。
あぁ、スッキリ。
0280Objective-Kusakabe
NGNG>>278
> 俺が言わなきゃあんたがネチネチいちゃもんつけんだろ!
> 天才!
文字化けしてますよ :)
0281Kusakabe Youichi
NGNG> 俺が言わなきゃあんたがネチネチいちゃもんつけんだろ!
いいえ。そう思いたいのですか? :)
0282デフォルトの名無しさん
NGNGヤメレ、ツボに入った。
笑い止まんね、なんだそのHNは(藁
0283デフォルトの名無しさん
NGNG0284ムネヲ
NGNGあなたがいちゃもん付けたんでしょ?謝る所は謝らないと駄目だよあなた!!。
言ったよ言ったでしょ言ったんなら言ったって言いなさいよ言った☆)#MO$J!..$
そんな馬鹿な事が有りますかって言ってるんですよ
はっきりと「今失業してて暇なんです」って言いなさいよ!!
0285Kusakabe Youichi
NGNG> あなたがいちゃもん付けたんでしょ?
はつみみです。
0286239
NGNGそうかも…。でも他の人は書けてるのかな。俺だけ?
今IEで試してもおんなじだったんだが。
>>150
* isalpha()の使い方を誤解している。
* ルートノードは、addNode()が返してるのを毎回nodeに代入してるだろが。
* elseはブロックになってない。Pythonじゃないんだから。
つーか一遍でも動かしてみたのか? これ絶対スタック壊すぞ。
本題とは関係ないけど、<stdlib.h>っていう風にエスケープ。
それとtraversalって名詞だよな。
0287デフォルトの名無しさん
NGNGんとね、問題を切り分けた方がいいんじゃないカナ?
ソース見た感じ、ファイル入力も動きそうにないし、
そもそもコンパイル出来ていないでしょ?
“ファイルから黄泉込まないと話にならない”なら、
2分木の事は置いておいて単語を黄泉込む処理を完成させる。
“そもそもの目的である2分木が先”なら、
文字列配列を用意してそこから2分木を作成してみる。
const char* dummyWords[] = {
"ABC","DEF","GHI",NULL
};
const char** word;
word=dummyWords;
while(*word)
node = addNode(*word++);
こんな感じカナ。
あとaddNode()の中で単純に再帰して戻り値を代入してるけど、
それじゃダメダメじゃないカナ。
今のままだと無限ループするし、ちゃんと枝の差し替えをしないと。
まだ色々あるけど一つ一つ解決して行く方がいいんじゃないカナ?
0288ぽてと
NGNGご指摘のとおり、まだコンパイルすら出来ていません。
2分木の概念は分かるのですが、コーディング能力が全くついていっていないという感じです。
K&R引っ張り出してそのあたり勉強しなおしてきます…。
あと、>>287氏の通り、機能ごとに少しずつ作成していくことにします。
まずは単語を読み込むプログラムを作成します。
0289239
NGNGコンパイルできないのは、ちゃんとコンパイラのエラーメッセージ見れば直せ
ると思う。単なる凡ミスだから。
> あとaddNode()の中で単純に再帰して戻り値を代入してるけど、
> それじゃダメダメじゃないカナ。
> 今のままだと無限ループするし、ちゃんと枝の差し替えをしないと。
いや、これは大丈夫。要するに、部分木と挿入する要素を受け取って、新しい
部分木を返す関数なんだから。
とりあえずバッファオーバーランとかを置いておくと、今まずいのはmain()で
のisalpha()やiの使い方。isalpha()はマニュアルなりなんなり調べてもらう
として、単語を登録したあとでiがどういう値を取ることになるか考えてみる
べし。
0290デフォルトの名無しさん
NGNG関数ってどうやって作ればいいのですか?
0291デフォルトの名無しさん
NGNG> > あとaddNode()の中で単純に再帰して戻り値を代入してるけど、
> > それじゃダメダメじゃないカナ。
> > 今のままだと無限ループするし、ちゃんと枝の差し替えをしないと。
> いや、これは大丈夫。要するに、部分木と挿入する要素を受け取って、新しい
> 部分木を返す関数なんだから。
オレも最初はそう思ってた。
rootノードがどうとか最初に逝ってたし。
単純化すれば、
Node* addNode(Node* node, const char* str) {
node->right = makeNode(str);
node->right->left = node;
return node->right;
}
こんな感じだと。
でも130さんが書いたソースを見ると、
strcmp()の値でleftとrightに振り分けようとしてる。
ようはstrcmp()の値を基準にソートした状態を作りたいんではないかと。
でなければ、addNode()を再帰呼び出しする必然性もないし。
オレのうがち過ぎか?
どうよ、>>150さん?
0292デフォルトの名無しさん
NGNG乱数か、難しいな。
擬似乱数なら標準ライブラリにも含まれているが。
まず神のサイコロを用意する。
そしてサイコロを振る神の手を…
つーか、マニュアルでrand()を調べろ。
rand()を使わず自力で擬似乱数を発生させたいなら、
「擬似乱数」と「アルゴリズム」で検索すれば
嫌というほど見つかるでしょう。
0293デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?q=cache:fXWZ1oDPQCI:www.media.osaka-cu.ac.jp/~k-abe/99-JS-II/C.html+%EF%BC%91%EF%BD%9E%EF%BC%91%EF%BC%90%E3%81%AE%E4%B9%B1%E6%95%B0%E3%82%92%E7%99%BA%E7%94%9F%E3%81%95%E3%81%9B%E3%82%8B+%E3%80%80C&hl=ja&ie=utf8
0294デフォルトの名無しさん
NGNGrand() % 10 + 1;
0295ぽてと=150
NGNG>strcmp()の値でleftとrightに振り分けようとしてる。
その通りです。strcmp()の値によってノードのカウンタ値を増やすか、またはノードを
追加(makenode())するのか判断しようとしました。
そうすれば2分探索木が作れるだろうと思って。
>単語を登録したあとでiがどういう値を取ることになるか考えてみる
べし。
iは先ほど気づきました…。
単語をaddnode()に送った後に0にする必要がありましたね。
また、if (!isalpha(c))ですむことにも先ほど気がつきました…。
0296デフォルトの名無しさん
NGNGそれだと乱数の周期が10程度になっちまうぞ。
普通は
(int)(rand() / (RAND_MAX + 1.0) * N) + 1
だろ
浮動小数点使うのがいやならせめて
rand() >> 20 % 10 + 1
とでもしとけ
0297290
NGNGありがとうございます。なんとか出来そうです。
検索の仕方も分からない厨房で申しわけありませんです。
>>294
しかし、この乱数って、等確率ではないような…
ほぼ、等確率ってことでしょうか?
0298デフォルトの名無しさん
NGNG>それだと乱数の周期が10程度になっちまうぞ。
そんなことねーよ。
どこの処理系使ってんだよ。
0299デフォルトの名無しさん
NGNG(´-`).。oO( いきがる前に296さんの式の意味を考えてみようよ… )
0300デフォルトの名無しさん
NGNGrand()%10 で周期が10が10になる処理系ってどれですか?
教えてください。
10年昔の処理系を挙げて、こんなのもあったって言うのは
無しですよ。
0301デフォルトの名無しさん
NGNGだったら、30回くらい実行して紙にメモして表作れば白黒はっきりするよね。
0302デフォルトの名無しさん
NGNGだけど、rand() % 10 というのはわりと良くない方法だよ。
なぜかというと、下位ビットの方は、確かに乱数に周期性
が早く訪れてしまうから。
環境依存だけど、JavaとANSIのCだと結構顕著だったり。
なるべく、上位の方を使うように工夫するのが
どんな環境でも上質の乱数を得るコツ
0303デフォルトの名無しさん
NGNGちなみに、rand() >> 20 % 10 + 1 をVC++でやると、
周期が1の乱数(?)が生成されます。
>>302
おれって、「n / 2 より n >> 1 のほうが速いぞ」って
初心者にアドバイスするようなもんです。
ほんとうに上質の乱数がほしいなら、もっときめ細かい
話をしましょう。
0304303
NGNG間違えた。
×おれって、「n / 2 より n >> 1 のほうが速いぞ」って
〇それって、「n / 2 より n >> 1 のほうが速いぞ」って
0305デフォルトの名無しさん
NGNG↑の仕組み教えてください
0306デフォルトの名無しさん
NGNG0307299
NGNGなぜそんなに喧嘩腰?
“周期が10程度”っていうのは、表現として的確でないとは思う。
でも、せっかくrand()が0以上RAND_MAX(未満? 以下?)の値を返しているのに、
単純に剰余を取ってしまうと、10進下一桁しか利用しなくなるでしょ?
だから“296さんの式の意味を考えてみようよ”と言ったんだけど。
個人的意見を言わせてもらえるなら、
“自分の意見最高完璧、他人の意見は検討の余地無し”
って輩はプログラムなんぞするな!
というか周囲の人間の邪魔でしかない、一生引き篭もってろ!!
0308デフォルトの名無しさん
NGNG友達の友達はみんな友達
0309デフォルトの名無しさん
NGNGVC++6で rand()%10+1 の実行結果。周期は10ではない。
6 7 6 5 5 5 9 3 10 10
1 6 5 4 10 7 9 2 10 2
7 2 1 1 6 8 7 10 2 2
9 3 9 6 4 8 9 3 6 5
7 1 5 2 10 6 5 6 4 10
0310デフォルトの名無しさん
NGNG確立といえ。
0311デフォルトの名無しさん
NGNG( ´_ゝ`)プッ
0312デフォルトの名無しさん
NGNG>なぜそんなに喧嘩腰?
私はケンカ腰じゃないよ。そちらこそ感情的になってない?
>“周期が10程度”っていうのは、表現として的確でないとは思う。
表現が悪いとか、そういうレベルではないと思うが。
「周期が10」だと、ほとんど乱数として使えないし。
何の検証もなしに標準関数を使うということなら、
上位桁とっても、質が良くなるかどうか分からないし。
実際 >>296 のアドバイスは、かなり危険だし。
0313デフォルトの名無しさん
NGNG>というか周囲の人間の邪魔でしかない、一生引き篭もってろ!!
この程度のツッコミで、取り乱す人間は2chは向かないと思うー。
0314デフォルトの名無しさん
NGNG0315デフォルトの名無しさん
NGNGネタか?
0316デフォルトの名無しさん
NGNG0317デフォルトの名無しさん
NGNGVCだとRAND_MAXが15bitだからな。
0318デフォルトの名無しさん
NGNGただ関数呼べばなんか数字が返ってくればそれでいいんだよ。
0319デフォルトの名無しさん
NGNG(rand() >> 20) % 10 + 1
この式を使って、周期1の乱数でも使っていてください(屁
0320デフォルトの名無しさん
NGNG0321デフォルトの名無しさん
NGNG10程度っていうのは10のオーダーってことだろ。
0322デフォルトの名無しさん
NGNG10のオーダー?
O(10)←これ?
わからん。
0323デフォルトの名無しさん
NGNGそれは数学。
0324Kusakabe Youichi
NGNG> 1〜10の乱数を発生させる
> 関数ってどうやって作ればいいのですか?
「疑似乱数」ですよね?
0325Kusakabe Youichi
NGNG> だけど、rand() % 10 というのはわりと良くない方法だよ。
> なぜかというと、下位ビットの方は、確かに乱数に周期性
> が早く訪れてしまうから。
それはかなりまぬけな実装ですね。
> 環境依存だけど、JavaとANSIのCだと結構顕著だったり。
え、Javaのほうは実装きまってるけど(いちおう)、
ANSI Cではその関数の実装方法まで決まってたっけ?
> なるべく、上位の方を使うように工夫するのが
> どんな環境でも上質の乱数を得るコツ
って、% 10 で周期性が(実用上)めだっちゃう実装って...。
0326290
NGNGサイコロみたいに
それぞれが同じ確率で発生するもの
が作りたかったんですけど、簡単な話じゃ
なかったみたいで…もう、ついて逝けない…鬱だ氏脳。
一応ことわっておきますと、僕はまだ勉強中の
初心者です。わかると思いますけど。
今は、主にVC++使ってます。
0327デフォルトの名無しさん
NGNGヘルプで、rand() と srand() を調べればいいじゃん。
それで rand() % 10 + 1 でOKだけど。
0328239
NGNG二分木ってのはなんらかの順序で振り分けるのが前提だが。
すまんが、何を指してダメといってるのかよく分からん。
addNode()の戻り値ってのは常に(ソート済みの)二分木のルートのはず。
実際0.04を少し手直しした奴はちゃんと動いたよ。
そのときのaddNode()は今アップされてる0.05改定版のと事実上同じだし。
>>150
この規模だとあんまり関数を分けるメリットを感じないかも知れないけど、
機能分割というのは基本だからきちんと考えるようにしたほうがいい。
あと重箱の隅だが、TraversalNode()よりもtraverseNode()の方が一般的と思われ。
つーかTraversalは名詞じゃなくて形容詞だった。欝。
0329デフォルトの名無しさん
NGNG0330デフォルトの名無しさん
NGNG> 二分木ってのはなんらかの順序で振り分けるのが前提だが。
おっしゃる通りっす、私が指摘したのは見た時点でのソースに対してです。
(最新のソースはまだ見てません…)
> addNode()の戻り値ってのは常に(ソート済みの)二分木のルートのはず。
私が見た時点のソースでは再帰呼び出ししているaddNode()の戻り値を
引数として渡されたnodeのleftやrightにそのまま代入してた。
それでは駄目だよという意味で枝の差し替え云々言ったんです。
0331田代
NGNGという4バイトのバイナリファイルを
char c[4];
fp = fopen( "hoge", "rb" );
fread( c, 1, 4, fp );
printf( "%u %u %u %u\n", c[0], c[1], c[2], c[3] );
とやっているだけなのに、結果は
4294967290 64 116 11
となってしまいます。。。
何故 c[0] だけこんな変な値になってしまうんでしょうか?
250 64 116 11
にするにはどうしたらいいんでしょうか…。
0332デフォルトの名無しさん
NGNG0333デフォルトの名無しさん
NGNG0334333
NGNG逝ってくる。
0335デフォルトの名無しさん
NGNGありがとうございます。直りました。
つまるところオーバーフローだったということなんですね。。。
0336デフォルトの名無しさん
NGNG0337デフォルトの名無しさん
NGNG本の例題に載っていたソースをコンパイルしたら、これがないって
文句言われました。
本のソースには当たり前のように載ってるんですが。
0338デフォルトの名無しさん
NGNG0339デフォルトの名無しさん
NGNG昔のコンパイラで使われたた、非標準のヘッダーファイルだね。
0340Javaがわからん370
NGNGgetch();
使ってるからじゃない?
conio.hもincludeしてみてください。
0341デフォルトの名無しさん
NGNGコンソール入出力関数(conio.h)
関数定義 機能
int getch(void) キーボードから1文字をエコーバックなしで読み込む
int getche(void) キーボードから1文字をエコー付きで読み込む
int putch(int) 画面に文字を出力する。
>ファイル取り込みで、conio.hを入れようとしましたが、
>(#include<conio.h>と記入した)
>そのファイルは存在しないとメッセージが出ました。
うろ覚えですが、それって DOSのコンソール入出力ライブラリのヘッ
ダファイルじゃないですか?
#教科書の選択を誤ってらっしゃるのかも
0342デフォルトの名無しさん
NGNG0343デフォルトの名無しさん
NGNG「改訂C言語によるはじめてのアルゴリズム入門」という本の中の例題です。
第二版は平成13年とありますが、第一版は平成4年のものです。
図書館で借りてきたものなので、古い本だと思います。
一応インクルードは試みているんですが…探してみたらなんか違うところに
ヘッダファイルが置いてあるみたいです。
0344Kusakabe Youichi
NGNG> conio.hってなんですか?
> 本の例題に載っていたソースをコンパイルしたら、これがないって
> 文句言われました。
べつの本にすれば?
> 本のソースには当たり前のように載ってるんですが。
何て言う本ですか?
0345239
NGNG一度最新のを見てくれ。たぶんaddNode()については納得いくと思うから。
それよりも問題はGetWord()だな…って、なんでmain()の中はgetword()なんだYO。
ツッコミどころ満載だが、細かいところから。
> int GetWord(const char* str, int i, char **word){
> char c;
> for (l=0; (c=str[l])!='\n' && (c=str[l])!=EOF ;l++){
文字列の終端はEOFじゃないし、charをEOFと比較してはダメ。
> tolower(c); /*大文字→小文字*/
tolower()は副作用を持たない。
> if (!isalpha(c) && c=='\''){ /*cが英文字の時*/
これじゃc=='\''のときしか成立しない。
0346239
NGNG> while ((c=fgets(str,512,fp))!=NULL);
ループの中が空だし、WORDMAXしかないstrに512も読んじゃいかん。
> i=getword(str, i, word);
配列とポインタは違う。多重配列の場合、もっとも上位(宣言のときの左側)の
配列だけはポインタに暗黙のうちに変換されるが、その下は一致しないとまず
い。
> for (i=0; *word[i]<=len ; i++)
この条件は何を意図してる?
> root=addNode(&root, *word[i]);
rootはNode*じゃないからこの代入はできない。
addNode()に関してはいろいろいわれて混乱してるのかも知れんが、
少なくとも0.04のは正しい(はず。残してないからよく分からんが)。
getword()に関しては、0.06の仕様よりも前の0.05改訂版の方がいいと思う。
fpを渡す必要はあると思うが。
0.06のGetWord()は複雑なわりにメリットがない。というかデメリットばかり。
0347
NGNGこれ ↓ では(.datファイルを書く)効率が悪くて悩んでいます
E.dat
0
0
1
0
0
0
略
0
0
C中のソース
fp=fopen("E.dat","r");
for( i=0;i<256;i++)
{
fscanf(fp,"%s",c);
inputdata[14][i]=atoi(c);
}
fclose(fp);
0348 347
NGNG0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0
0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0
0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0
0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0
0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0
0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0
0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0
0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0
0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0
0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0
0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0
0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0
0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0
0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0
0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0
0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0
0349デフォルトの名無しさん
NGNGfor( int i=0; i<256; i++ )
{int ch = fgetc(fp);
if( ch == '0' || ch == '1' )
inputdata[14][i] = ch - '0';
}
0350デフォルトの名無しさん
NGNG> (.datファイルを書く)効率が悪くて悩んでいます
効率が悪いって何?
> fscanf(fp,"%s",c);
E.dat
0 0 0 0 0 0
でも良いはずだが?
0351デフォルトの名無しさん
NGNGウィンドウズ用のプログラムを学んでますが、MessageBoxで変数の値を表示することは可能ですか?
出来ればその方法もお聞かせ願いたいです.
もしくはMessageBox並に簡単に扱えて変数の値をすぐに表示できるような命令があれば教えてください.
0352デフォルトの名無しさん
NGNGせっかくビット演算とかあるんだから、バイナリ形式で書き込んだ方がいいと思うが。
00000001 = 0x01
00000010 = 0x02
00000011 = 0x03
・
・
・
11111111 = 0xFF
を1バイトずつ置き換えて書き込んでいく。
バイナリエディタじゃないと読めないけど、効率はいいよ。
0353 347
NGNG理想的なのは>>348の"1" "0"を一文字づつ整数の配列に入れていきたいの
ですが
0354デフォルトの名無しさん
NGNGfread() , fwrite()
0355デフォルトの名無しさん
NGNGMessageBox()のままだと変数の表示はできない。
printf()みたいな可変引数で表示できるMessageBox()を自分で書けばよいです。
サンプル↓
#include<windows.h>
void test(unsigned char *s1,...){
unsigned char s2[256];
unsigned char *p;
p = (unsigned char *)&s1 + sizeof(s1);
vsprintf(s2,s1,p);
MessageBox(NULL,s2,"MessageBox",MB_OK);
return;
}
0356デフォルトの名無しさん
NGNGおお、ありがと〜やってみるよ。
0357デフォルトの名無しさん
NGNG#include <stdarg.h>
#include <stdio.h>
int message_box(const char* caption, const char* format, ...)
{
char msg[256];
va_list va;
va_start(va, format);
vsprintf(msg, format, va);
va_end(va);
return MessageBox(NULL, msg, caption, MB_OK);
}
message_box("スレ違い", "%sのスレとかで聞くべき", "Win32API");
0358デフォルトの名無しさん
NGNG0359デフォルトの名無しさん
NGNG0361デフォルトの名無しさん
NGNG0362Kusakabe Youichi
NGNG> message_box("スレ違い", "%sのスレとかで聞くべき", "Win32API");
なんで連体形なんだろう。
0363351
NGNG355さんのプログラムって自分がメッセージボックスで表示したい変数がS1で
それをvprintfでs2に格納した後、pで領域を決めてそれをメッセージボックスで表示しているって意味なのかな?
vprintfの2番目の引数ってconst charってかいてあるけど、もし表示したい変数の型がintだったら
無理なのでしょうか?
0364デフォルトの名無しさん
NGNG0365デフォルトの名無しさん
NGNGこのページどお?
0366ぽてと
NGNGすみませんが、いまものすごく忙しくて更新できない状態です…。
明日また考え直してみます。
getword()にファイルポインタを渡しちゃっていいんですね?
それがまずいのかと思ってあんなわけのわからん形にしてました。
ファイルポインタを渡して…さてどうしてやろうか(藁)
0367デフォルトの名無しさん
NGNG凄いコードだな。
0368デフォルトの名無しさん
NGNGまず、「*をちゃんと見ろ」つーべきではあるまいか。
0370デフォルトの名無しさん
NGNGchar s[2000];
の1100〜1115の文字を取り出したい場合どうすればいですか?
printf("%s",s);
で確認すると全部出るんですけど部分的に見ようとして
printf("%s",s[1000]);
とかするとメモリがreadになることはできませんでしたといわれます
0371デフォルトの名無しさん
NGNGs[1116]='\0' ;
printf("%s", s+1000) ;
s[1116]=c ;
0372デフォルトの名無しさん
NGNG文字列のアドレスを指定しなきゃだめ。
printf("%s", &s[1000]);
表示の終端は文字列のデリミタ\0。
0373デフォルトの名無しさん
NGNG> アホい質問で
もっと日本語を勉強しる!!
0374デフォルトの名無しさん
NGNGprintf("%.16s", &s[1000]);
printf("%.*s", 16, &s[1000]);
0375デフォルトの名無しさん
NGNG1100〜1115の文字全部なら
fwrite(&s[1000], 1, 16, stdout);
かなぁ
0376デフォルトの名無しさん
NGNG0377デフォルトの名無しさん
NGNGおぉ。軒並まちがっとるじゃん
0378
NGNG0379デフォルトの名無しさん
NGNGお好みで、どちらでもどうぞ。
0380デフォルトの名無しさん
NGNG問題ありませんか?
0381デフォルトの名無しさん
NGNG問題ないですね。
0382デフォルトの名無しさん
NGNG0383デフォルトの名無しさん
NGNGfoef?
0384デフォルトの名無しさん
NGNGC/C++ならば正常終了の場合は0を返すべきだ。
多くのCの標準関数は正常終了の場合、0を返している。
# parlの場合は逆
0385デフォルトの名無しさん
NGNG問題ないです。
0386デフォルトの名無しさん
NGNG>多くのCの標準関数は正常終了の場合、0を返している。
うそつかないでください。
0387デフォルトの名無しさん
NGNGじゃあなにがウソなのか書くのが礼儀。
おまえはアホで礼儀知らずなのか。
それともアホで常識知らずなのか。
アホじゃないのか・・・?
証明求む。
0388Kusakabe Youichi
NGNG> じゃあなにがウソなのか書くのが礼儀。
あたらしい礼儀を発明したのですか? :)
# 特許とれるだろうか?
0389デフォルトの名無しさん
NGNG>証明求む。
自分はなにの根拠も提示しないで発言するのに、
人にそういうことを望まないように。
0391デフォルトの名無しさん
NGNG>多くのCの標準関数は正常終了の場合、0を返している。
あんた、これを本気で行ってたのか(^^;
初心者にうそを教えてからかってたのかと思ってたよ。
0392デフォルトの名無しさん
NGNG>俺は「何の」根拠を出せばいいの?
ふーん。根拠なかったんだ。
0393387,390
NGNGあ、勘違いしてるみたいだけど>>384は俺じゃないし
別にその内容を肯定も(否定も)していない。
>>386の中途半端な書き方がムカついただけの第三者だよ。
0394387,390
NGNGだから「何の」根拠を出せばいいのか言え。
言えないだろ?
0395どうでもいいが
NGNGどうしてもやりたいなら、せめてsageでね。
0397デフォルトの名無しさん
NGNG>別にその内容を肯定も(否定も)していない。
技術(?)の議論からは逃げて、礼儀がどうとか言うだけかよ。
どうしようも無いやつだな。
0398デフォルトの名無しさん
NGNGそういうアンタも結局グチるだけか(w
この板の住人のレベルも落ちたな・・
0400デフォルトの名無しさん
NGNG大体議論屋なんて短気なんだから
即レスしてあげなきゃ逃げるに決まってるじゃないかー
と 何もしなかったのに言ってみる。
しかし。。。 不毛だなー (´∀`;)
0401デフォルトの名無しさん
NGNG困るんだけど (^^;
0402デフォルトの名無しさん
NGNGときに逆ギレする法則 と言ってみる。
0403デフォルトの名無しさん
NGNG落ちるといってた男をなんとかして呼び戻そうとしているに新二千円札5枚
0404デフォルトの名無しさん
NGNGif(foo()){
// エラー処理
}
つーのには、なじめない…
0405デフォルトの名無しさん
NGNG386の文意を汲み取ってやれば「正常終了/異常終了がある関数の多くが」じゃないの?
まあ、正常終了で0を返すより値を返す関数が多いが。
0406384
NGNG正確に言うとCの標準関数で正常終了というステータスを返す関数は多くない。
str系,mem系は比較系関数以外は第一引数のポインタを返すし、
is系は正常終了ではなく真偽値を返すものだし、
ファイルIOは書き込んだ/読み込んだ数だし...
fopen, mallocは異常終了の場合、確かに0を返すけど
俺はNULLを返すと思いたい。
で数少ない正常終了というステータスを返す代表的な関数としては
fclose, fflush, fseek, system
でこれらは全て正常終了の場合、0を返す。
# POSIXを含めるともう少し多くなる。
で、実際Cで正常終了を0以外にしている人っているの?
俺はそんな奴はマクロを小文字で書くぐらい違和感を感じるけど
0407デフォルトの名無しさん
NGNG*p = *(p+1);
↑これをUNIX機で実行するとセグメント例外(コアダンプしました)となります。
でも、ノートPCで実行すると通ります。なんでですか?教えて下さい?
0408Kusakabe Youichi
NGNG> char *p = "ABC";
>
> *p = *(p+1);
>
> ↑これをUNIX機で実行するとセグメント例外(コアダンプしました)となります。
まあ、そうでしょうね。
> でも、ノートPCで実行すると通ります。なんでですか?教えて下さい?
通るっていうのは "BBC"ってなるのですか?
K&Rの訳本の236ペイジを読めばいいのでは?
0409デフォルトの名無しさん
NGNG>で、実際Cで正常終了を0以外にしている人っているの?
「ライティング ソリッドコード」って本だと、0というか、
bool値で正常・異常を返すようなスタイルを薦めてるね。
0410Kusakabe Youichi
NGNG> 「ライティング ソリッドコード」って本だと、0というか、
> bool値で正常・異常を返すようなスタイルを薦めてるね。
っていうことはtrueが正常でfalseがエラーですか?
(すると逆になりますね)
0411デフォルトの名無しさん
NGNGたくさんの種類を返すのなら0が正常、1がxxxエラー、2がyyyエラーとか?
0412384
NGNG> 「ライティング ソリッドコード」って本だと、0というか、
> bool値で正常・異常を返すようなスタイルを薦めてるね。
C99だとbool型があるんで、ありかも。
# _Boolはダサイが
でもそうなると正常終了は「真」なのか「偽」なのか?
今までのスタイルを通すと正常終了は「偽」にならざる得ないけれど、
正常終了が「偽」っていうのもなんか変だ。
# そもそもステータスを返すのが変、例外をthrowしろというのは無し
0413Kusakabe Youichi
NGNG> 正常か異常かの2種類だけ返すのならBOOL値でTRUEで正常。
正常っていうか「isxxxx」系のはtrue/falseでわかるんだけどねえ。
0414Kusakabe Youichi
NGNG> C99だとbool型があるんで、ありかも。
> # _Boolはダサイが
ちゃんとboolも#defineされてますよね。
0415デフォルトの名無しさん
NGNG0416Kusakabe Youichi
NGNG> ここに書かれたことにレスをつけてはいけません
レスって何ですか?
0417デフォルトの名無しさん
NGNG0418デフォルトの名無しさん
NGNG> で、実際Cで正常終了を0以外にしている人っているの?
俺は正常/異常の二値しかない場合には関数型を BOOL にして TRUE, FALSE を返してる。
正常で 0 を返す場合には型は int にして区別しておく。
個人的には、正常/異常の区別と正常時の戻り値をまとめて返すのはやめて、代わりに
正常/異常 戻り値
関数で処理した結果 引数 (ポインタ渡し)
で処理した方がいいと思ってるけどね。どうも異常値を encoding する戻り値は、エラーチェックを
忘れられる運命にあるようで、これに絡んだバグ取りに時間を使ったことが何度か。
あと標準 C ライブラリは、当時の時代背景を考えれば仕方ない面があるけど、いまだと「ちょっ
となぁ」と思うインターフェースも多いから、それをもって「普通」と主張するのはどうかと。gets() や
sprintf() は言うに及ばず、1 バイト取得して結果を返すのに
int getchar()
// エラー時は EOF
というのも、かなりダサい仕様だと思う。
0419名無しさん@Vim%Chalice
NGNG2^32以上の整数を扱う方法はありますか?
0420デフォルトの名無しさん
NGNG> たくさんの種類を返すのなら0が正常、1がxxxエラー、2がyyyエラーとか?
俺は基本的に enum だな。あとは unsigned でエラーを定義しておいて、その論理和というのも使う
(複数のエラーをまとめて返したいとき)。
0421Kusakabe Youichi
NGNG> 32bitアーキテクチャのマシンで、
> 2^32以上の整数を扱う方法はありますか?
アーキテキチャはどうのは関係ないでしょう。
int_least64_tとか使えばいいんだし。
0422デフォルトの名無しさん
NGNGたとえば、
char getchar() throw EOF_Exeption;
ならスマートか?
0423デフォルトの名無しさん
NGNG「ライティングソリッドコード」だと、
成功、失敗は bool で返して、具体的なエラーの内容は引数で
返せって薦めてるね。
bool hoge(...., int* err_code);
こういう感じ。
(オレはしたがってないけど)
0424デフォルトの名無しさん
NGNGC99ではlong long intが使える
0425デフォルトの名無しさん
NGNG(改行とかタブとかは使わない)ファイル・ディレクトリ名を扱うため、関数を使ってもらう人には「\」を2つ重ねろとか制約をかけずに使ってもらいたいので。
単純に"\n"(改行)→"\\n"というように置き換えるだけではうまくいかないみたいなので("\o"とか"\x"とか)、良い方法をご存じないでしょうか?
/* 使用例 */
char *path;
escape(path,"c:\nopqrs\tuv");
/* ↑ pathに変換後の文字列"c:\\nopqrs\\tuv"が入る関数 */
printf("%s",path); /* "c:\nopqrs\tuv"と表示 */
0426デフォルトの名無しさん
NGNG0427デフォルトの名無しさん
NGNG必要無い。
0428デフォルトの名無しさん
NGNG0429淫乱女教師
NGNGまず、どの文字列がきたらどの文字列に置き換えるか
を一覧にした変換テーブルを一度書き起こしなさい。
0430デフォルトの名無しさん
NGNG助けになりません。
0431デフォルトの名無しさん
NGNGコンパイル時に処理されるものだと思っていたが違うのか?
0432431
NGNG0433デフォルトの名無しさん
NGNG仮に 8 ってコードがあったとして、\x08 にするの?それとも\t?
それとも\010?
"c:\010dir\tab\x08.txt" とか、どーすんの?
0434433
NGNG0435425
NGNG\a(ビープ) →\\a
\b(バックスペース) →\\b
\f(フォームフィード) →\\f
\n(ニューライン) →\\n
\r(キャリッジリターン)→\\r
\v(水平タブ) →\\v
\'(シングルクォート) →\\'
\"(ダブルクォート) →\\"
\\(円記号) →\\\\
以上の単純変換はやってます。ただ、
\ddd= 8 進数で指定される ASCII 文字
\xdd= 16 進数で指定される ASCII 文字
の処理は分からないので、現在そのままにしてあります。
>>433
ですよね(^^;;
「\x09」も「\t」も「\011」もすべて「文字コード9」なので、
文字コード9からの変換といっても3通りのうちどれが正しいかは分からない、
ということは変換は無理なのでしょうか(^^;;
0436\
NGNGよろしくお願いいたします。
0437デフォルトの名無しさん
NGNG2:確保する領域が大きすぎる
3:脳内mallocを使っている
0438デフォルトの名無しさん
NGNGどういう環境で実行していて、どのくらいの大きさでmallocが失敗するか
言ってみ。
怖くないから。
0439\
NGNG環境は申し分なくもったいないくらいです。
30×30×30だとOKでそれ以上になると駄目みたいです。この説明でもいいんでしょうか?
0440デフォルトの名無しさん
NGNGその目的なら、c:/windows/dir/tmpみたいな方式で、escapeで/->\\変換
するほうが適当だと思うのだが如何。
0441デフォルトの名無しさん
NGNG3説が濃厚だな (´д`;)
0442デフォルトの名無しさん
NGNGそれじゃわかんないよー・・
ソース書いてみれば?
0443デフォルトの名無しさん
NGNG普通は、たかだか27000byteで失敗はしないと思う。
UNIX系のOSで、きつい制限がかけられるって聞いたことあるけど、
使ってるOSとかコンパイラは?
0444\
NGNG0445デフォルトの名無しさん
NGNG煽り気にしてたらここで質問なんてできないよ
0446デフォルトの名無しさん
NGNGもうちょっと具体的に書けってこと
30×30×30ってのはchar型なのか
1つ500KBの構造体なのか分からないだろ、ヘッダとかちゃんとincludeしてんのか?
ホントに知りたければもう少しコード書けよ、(つーかJMとかでも分かるし)
0447\
NGNGいいえ、できるようになるためなら気にしません
0448デフォルトの名無しさん
NGNGここじゃなくても親切な人たくさんいるとこあるでしょうに・・
けどその心意気に感激。
解決してあげたいのでコード書いてみて?
0449\
NGNGスイマソ
char型1つとdouble型3つのもので一つとしています。
0450\
NGNG自分でやらなきゃいけないのをわかっているんですが…
0451\
NGNGOSはWin2kでコンパイラはcode warriordです。
0452デフォルトの名無しさん
NGNG自分でやってできないから質問したんでしょ?
親切な人たち(一部除く)が教えてくれるから。
いまの状態じゃなにもアドバイスしてあげられないので。
あんまし長いのはやだけど・・(^^;
問題の部分だけでも。
(領域破壊が原因だったりしたら一部分だけではどうしようもないけど)
0453デフォルトの名無しさん
NGNGはやばそうだけど、
a[i++]=b[i];
もやばいの?
0454デフォルトの名無しさん
NGNG#include <stdlib.h>
main ()
{
struct foo *baz;
baz = (struct foo *)malloc(sizeof(foo) * 1);
for (i=2; i<100; i++)
baz = realloc(baz,sizeof(foo) * i);
}
こんな感じ、拡張はreallocだぞ。 (つーかコード詰めて貼れ)
0455デフォルトの名無しさん
NGNG分かってやってるならどっちも構わん。
0456デフォルトの名無しさん
NGNG少なくとも
a[i++]=b[i++];
はコンパイラによって処理が変わるじゃん。
もしかしてそこから間違ってるのか?
0457\
NGNGint main ( void )
{
double rad_ccc,rad_hch,rad_coh,rad_occ,rad_rot1,rad_rot2,rad_rot3;
int buff[16];
int num_of_atom,i,j,k,l,a;
int num_of_C,*p;
POSI *posi;
char filename[]="liquid_crystal.xyz";
FILE *fp;
rad_rot1=PI*DEG_ROTATION1/180;
rad_rot2=PI*DEG_ROTATION2/180;
rad_rot3=PI*DEG_ROTATION3/180;
//データ入力
p=buff;
num_of_C=input_number(p);
j=input_number(p);
k=input_number(p);
l=input_number(p);
num_of_atom=3*num_of_C+4;
if(NULL==(posi=(POSI*)malloc(j*k*l*(num_of_atom)*sizeof(POSI))))
{
printf("<file_loading> <setting> error!!!");
exit(1);
}
if((fp=fopen(filename,"w"))==NULL)
{
printf("can't open %s!",filename);
exit(1);
}
0458!
NGNGもしかして free() し忘れてるとか・・・
んなこたないか。
0459デフォルトの名無しさん
NGNG=は右から評価、処理は変わらないと思うが?
0460デフォルトの名無しさん
NGNG人はそれを未定義と呼ぶ See FAQ3.9
0461\
NGNG//回転関数
if(num_of_C%2==0)
{
*posi=rotation1(posi,j,k,l,num_of_atom,rad_rot1,rad_rot2);
}
else if(num_of_C%2==1)
{
*posi=rotation2(posi,j,k,l,num_of_atom,rad_rot2,rad_rot3);
}
//コピー関数
if(num_of_C%2==0)
{
*posi=copy1(posi,j,k,l,num_of_atom);
}
else if(num_of_C%2==1)
{
*posi=copy2(posi,j,k,l,num_of_atom);
}
fprintf(fp,"%d\n\n",j*k*l*num_of_atom);
for(i=0;i<j*k*l*num_of_atom;i++)
{
fprintf(fp,"%s\t%lf\t%lf\t%lf\n",(posi+i)->name,(posi+i)->xyz[X],(posi+i)->xyz[Y],(posi+i)->xyz[Z]);
}
fclose(fp);
exit(0);
}
main関数はここまでです。
0462デフォルトの名無しさん
NGNG#include <stdio.h>
#include <malloc.h>
int main()
{
struct data{
char c;
double d1;
double d2;
double d3;
} *p = NULL;
p = malloc(sizeof(struct data) * 30 * 30 * 30);
if(p){printf("ok"); free(p);}
else printf("NG");
return 0;
}
VC6でもgccでもokでした。
0463デフォルトの名無しさん
NGNGんでコンソールに、
<file_loading> <setting> error!!!
って出るの?
実際 malloc に渡してる値はどのくらいになるのか確認してみた?
input_number(int *) は、何をする関数?
buf って中身が無いような・・・
0464459
NGNG0465\
NGNG0467\
NGNGそうなります。
確認の仕方がわかりません…
たしかに今ではbuffは意味がないです。
input_number(int *) は例の30×30×30とnum_of_Cを入力するものです。
0468デフォルトの名無しさん
NGNGうーん。
単純にでかい領域を確保しようとしてエラーが出てる気が・・
0469\
NGNGすいません 間違えました。
num_of_atomが40です。
0470デフォルトの名無しさん
NGNGint size = j*k*l*(num_of_atom)*sizeof(POSI);
printf("size = &d\n", size );
とかじゃだめですか?
0471470
NGNGちゃう
>467
0472デフォルトの名無しさん
NGNG0473470
NGNG・・・ほんまや!!
0474デフォルトの名無しさん
NGNGそれは、あれだ、仮に他の原子も40だったとしてもヒープは到底溢れないから
if ((i=malloc(4*40*40*40*40*100))==NULL){
printf ("ERROR\n");
exit;
}
ljk辺りに�dでもない値が入って無いか?
0475425
NGNG「/」を使う方法は私も考えてまして、「/」を使わせれば変換できるよう
な関数は作ったのですが(「\」を使っても「\x09」や「\011」のような文字
コード指定以外は動作する)、(私に作るよう)依頼した人はどうしても
「\」を使いたいようなので・・(´д`;)
0476デフォルトの名無しさん
NGNGa[i++]=b[i++];
これって処理系依存だコンパイラ依存だとよく言うけど
つまり、これをうまく使えば、GPLでソースを公開しつつも
再コンパイルはある特定環境でないと正常なバイナリが
生成されない、すげートラップが仕掛けられると。
つまりこれってまるで一昔前のコピープロテクトのような
そんな効果を得られる、魔法のコードになるとか。
問題は、実際にこういうコード書いても昨今じゃだいたい
動きが一緒というか想像の範疇にあって、トラップを
仕掛けにくいってことか。
0477\
NGNG10×10×10でやったら326400とでました。
たぶん本チャンで入力する値は500ぐらいになりそうなんですが…
0478だ・か・らあ
NGNGつまりそのトラップコードとやらはお前の環境でさえいきなりコンパイル
出来なくなる可能性や、突然PCから炭素菌が吹き出してくる可能性もあるんだよ
0479デフォルトの名無しさん
NGNGまぁ、特定の処理系でしかコンパイルできなくしても、ソースがCなら、
処理系依存なところを除去されて終いだな。
0480470
NGNG・・・326400・・・
ってなんメガ?(混乱)
0481デフォルトの名無しさん
NGNG0482470
NGNG>477
326400 == 10*10*10*(num_of_atom)*sizeof(POSI)
なんですか?
んでほんちゃんでは 10 が 500 になると・・?
0483\
NGNGまったくそのとおりです。
0484デフォルトの名無しさん
NGNGこれ通ります?、通るなら、変数に予期しない値ですよ。
input_number()とか大丈夫ですか?
if ((i=malloc(1024000000))==NULL){
printf ("Can't allocate");
} else {printf ("allocated \n");}
0485デフォルトの名無しさん
NGNGすげぇな
0486デフォルトの名無しさん
NGNGこれは脳内コンパイラ、と言うか既にC言語の***ような***言語
と言う事になるよ
0487476
NGNG例にあげたコードに関してはコンパイルは
環境が変わらない限り毎回同じコードを吐くし。
処理系依存!=未定義 とはいえ、コンパイルするときに
とりあえずの構文解析・コード生成までやってくれる。
実行時の動作は多少環境が変わっても変わらないし。
どこがおかしいか、実際の例を挙げて説明してくれない?
0488470
NGNGちょっと確保するサイズが大きすぎるようです。
小さなサイズでもうまくいくような方法を考えてみてはどうでしょう。
0489\
NGNG通りませんでした…
0490470
NGNG解決?
おっけい?
0491\
NGNG皆様どうもお世話になりました。心からの感謝です。
0492デフォルトの名無しさん
NGNGってのと何ら変わらない。
0493470
NGNGよかったね (^^
0494動作未定義
NGNG実行時の環境が、たとえば、直前に使ってたアプリケーションが違うくらいで、
動作が変わるんだよ。
0495デフォルトの名無しさん
NGNGいや、おれの見たモノだけかもしれないが…
0497デフォルトの名無しさん
NGNGカタるに陥るってやつだな
0498デフォルトの名無しさん
NGNGこのバイナリはいつも同じ動作をするから動作未定義は動けばおっけー
ってことだろ。
いや、動くように見えるコードはけばおっけーってことか。
どっちにしろ、動作未定義の意味を理解させるのは無理そうだな。
0499デフォルトの名無しさん
NGNG実際、最近のコンパイラならちゃんと動くんだろけどね。
でも、それは結果論で有ってANSIや99には副作用完了点までに2回以上
変数の値を変える事の保証は無い
exitを付けただけで動作が変わるかも知れないし、毎回違うバイナリを
生成する(かもしれない) と言うだけの事。で、>>492になるんだよ
自分を信じる事は大切だけど、人には勧めてほしくないなぁ
0501Kusakabe Youichi
NGNG> ANSIや99には副作用
「ANSIや99」って変ないいかたですね。
0502デフォルトの名無しさん
NGNG0503デフォルトの名無しさん
NGNGいいじゃねぇーか別に
おまえ、もうどっかいけ!
0504デフォルトの名無しさん
NGNGサービスパックを当てたら、落ちるようになったりしてね。
未初期化バッファを参照するようなコードと比べれば、まぁ挙動は安定すると思うが。
でもそんな小手先の技術でどうこうしようってのは、やめた方がいい。
0505教え子にしてくれゴルァ!!
NGNGCRC32を算出してはじめからデータとしてあるCRCの値と比較する
プログラムを作りたいのですが、
どのようにCRCを算出していいかわかりません。
簡単にできそうなfileoperate.dllなるものを落として試行錯誤してみたのですが
LIBファイルが壊れているか〜ってメッセージが出てどうしてもできませんでした。
ご教授願いますぺこ <(_ _)>
0506Kusakabe Youichi
NGNG> 大先生方!
> CRC32を算出してはじめからデータとしてあるCRCの値と比較するプログラムを作りたいのですが、
> どのようにCRCを算出していいかわかりません。
このへんが参考になるかも(ならないかも) > http://www.vector.co.jp/soft/dos/util/se000791.html
0507デフォルトの名無しさん
NGNG0508デフォルトの名無しさん
NGNGなんか中途半端なソ−スだけどな
つーか、引数未指定のときはなんかメッセージ出せやゴルァ
0509デフォルトの名無しさん
NGNGパイプ処理を意識してるんだろ
0510Kusakabe Youichi
NGNG> なんか中途半端なソ−スだけどな
> つーか、引数未指定のときはなんかメッセージ出せや(I剤戳
は? こいつかなりまぬけでは?
(文字化けもしてるし)
0511デフォルトの名無しさん
NGNG昔はこれで速くなったってことか?
0512Kusakabe Youichi
NGNG> register使ってる意味がわからん。
意味ってそう考えるまでもないことだとおもうが。
> 昔はこれで速くなったってことか?
そういうことです(かなり昔ですが)。
register使う意味って、ほかにあったっけ? (「わからん」っていうほどの)
0513デフォルトの名無しさん
NGNG0514デフォルトの名無しさん
NGNGに、と思うことがある
0515教え子にしてくれゴルァ!!
NGNGと思うのですが、このソースだと何かまずいんでしょうか?
MD5でもいいんですが処理時間と、処理の難しさについていけそうも
無いので・・・
0516デフォルトの名無しさん
NGNG0517デフォルトの名無しさん
NGNG0518Kusakabe Youichi
NGNG> registerを、すべての最適化をかけてよいって意味にしてくれればよかったの
> に、と思うことがある
え? 現状のように「最適化のためにいじっちゃだめなところ」を指定する方式の
ほうが合理的では?
0519Kusakabe Youichi
NGNG> 何となく先生の言ってることが正しいのがおかしい
いつも正しいことしか言っていませんよ。もともと。
0520デフォルトの名無しさん
NGNG> register使う意味って、ほかにあったっけ?
規格書には書いてありませんが、現実には「コンパイラの最適化を邪魔する」という役割がありますね。
0521デフォルトの名無しさん
NGNGこれが正しいとどうして言えるのでしょうか?
0522教え子にしてくれゴルァ!!
NGNG毎回疑問に思うのですが・・・
0523デフォルトの名無しさん
NGNGあまりヴァカに餌をやらないように(苦笑)
やつの日本語は一般的な国語辞典ではなく、民明書房刊の国語辞典に準拠しているので、
話すだけ時間の無駄です。「いつも間違いを認めませんよ」ぐらいに解釈して、さっさと読み
飛ばすのが吉。
(約一名以外は、どっちが正しいかは分かってますって)
0524デフォルトの名無しさん
NGNG奥様が美人だから。
0525Kusakabe Youichi
NGNG> >>512
> > register使う意味って、ほかにあったっけ?
> 規格書には書いてありませんが、現実には「コンパイラの最適化を邪魔する」という役割がありますね。
ほんとうですか?
たとえばregister宣言されている変数は「かならずレジスターにわりあて
なければならない」というものだったら、そういうこともできるでしょうけど、
実際にはそういう実装ってあまりないですよね? (規格にも)
0526Kusakabe Youichi
NGNG> >いつも正しいことしか言っていませんよ。もともと。
> これが正しいとどうして言えるのでしょうか?
え? 正しくないとでも?
0527デフォルトの名無しさん
NGNG板違い。プログラマー板に行って聞いてくれ。(聞くまでも無く、プログラマー板の関連スレッドを読むと
おのずから答えはわかると思うが)
0528教え子にしてくれゴルァ!!
NGNG奥様美人ってw
0529教え子にしてくれゴルァ!!
NGNG>527さん
0530Kusakabe Youichi
NGNG> ちなみに聞きたいのですがなぜにクサカベ先生は嫌われ者なんですか?
はつみみです。
0531Kusakabe Youichi
NGNG> やつの日本語は一般的な国語辞典ではなく、民明書房刊の国語辞典に準拠しているので、
> 話すだけ時間の無駄です。
「ということにしたい」のですか? :)
0532デフォルトの名無しさん
NGNG信じないのは自由ですけどね。(疑うなら自分で試せよ、バカ)
0533デフォルトの名無しさん
NGNG何か特別な文字と同じ文字コードを持っているらしく、エラーになるのです。
ひとつずつコードを代入するしかないでしょうか。
0534デフォルトの名無しさん
NGNG削除 ってEUCでいうと文字コードどんな感じだっけ?
0535533
NGNG調べようにも代入できなくて調べられない状況です・・・(-_-;)
どこかに表があれば・・・
0536デフォルトの名無しさん
NGNGきっとハマったことがあるんだね。御愁傷様。
後学のために処理系を教えてもらえるとうれしい。
0537ホレ
NGNG0000000 272 357 275 374 012
0000005
8bit目を落としてもヤバそうなコードはないけどなあ。
0538デフォルトの名無しさん
NGNGちゃんとターミナルと文字コード合ってるか?
Sjisじゃ有るまいし・・・・
0539デフォルトの名無しさん
NGNG説明がアバウトでどんな状況なのかわからないよ。
もうすこし丁寧に説明希望。
簡単なのは
char str[] = { 0xba, 0xef, 0xbd, 0xfc };
と埋め込むことだけど。
0540533
NGNG>>537
確かに8bit目を落としても(:o=|)問題なさそうですよね。。。
>>538
それは問題ないはずです。
char *s;
s="削除";
こういう風にしているだけですから。他の文字列にすると大丈夫です。
>>539
そうしてみます。。。。
0541デフォルトの名無しさん
NGNG0542デフォルトの名無しさん
NGNG早く逃げて!!!!
0543デフォルトの名無しさん
NGNG0544デフォルトの名無しさん
NGNG0545デフォルトの名無しさん
NGNG末尾に'\0'が入っていないということ?
0546デフォルトの名無しさん
NGNGためしてみたけど、何の問題もなくコンパイルできたよ。
OS、処理系を教えれ。
0547デフォルトの名無しさん
NGNG0548デフォルトの名無しさん
NGNG後生大事にそんなもん付けるのは、チキン野郎だけ!
0549デフォルトの名無しさん
NGNG配列じゃ無いよな??>質問者
0550デフォルトの名無しさん
NGNGputs("削除");
は動くのか
0551539
NGNGどうせツッコミが入るだろうと放置した(w
0552デフォルトの名無しさん
NGNGVC++6.0でやるとコンパイルできないな。
Linux+gccでやるとできるけど。
0553539
NGNG善処してくれ(w
0554デフォルトの名無しさん
NGNGCP932だと0xba, 0xef, 0xbd, 0xfcは
仮名、SJIS 1バイト目、SJIS 2バイト目、SJIS1バイト目
だから次の文字が食われちゃうね。
VC++でもシングルバイト環境ならちゃんとコンパイルできるはず。
0555デフォルトの名無しさん
NGNGhttp://www.kumei.ne.jp/c_lang/intro/no_15.htm
0556デフォルトの名無しさん
NGNGそのページ、最後に赤い文字で書いてある文章イタくないか?
まあ保存するなというのだからcahceはクリアしておくか。
0557デフォルトの名無しさん
NGNG0558デフォルトの名無しさん
NGNGifを使うのはスマートじゃないと聞いたのですが、本当ですか?
ifを使わないでまともなプログラムが作れるんですか?
0559デフォルトの名無しさん
NGNGfor(;exp;){}でも
while(exp){break;}でも
exp ? : ;でも
すきなの使っとけ。
0560デフォルトの名無しさん
NGNG嘘です。
ただし、3項演算子や論理演算子を使った方がスマートに書ける場合もあります。
> ifを使わないでまともなプログラムが作れるんですか?
if を使うべきところでわざわざ if を避けるように書いたプログラムはあまり
まともとは言えないと思います。
0561239
NGNG> Node root={"\0",0, NULL, NULL};
空の単語も全部これにカウントすることになるが、それは意図的なもの?
Node *root = NULL;でnodeは要らないはず。
> while ((c=fgetc(fp))!=EOF || j<=MAXWORD){
charとEOFの比較はうまくいかないし、jがMAXWORDにいっても終らん。
> ptr[j]=(char *)malloc(sizeof(char)*i); /*単語を格納するための場所確保*/
> strcpy((char *)*ptr[j], temp); /*確保した場所に単語を格納*/
ターミネータの分を忘れてる。このptr自体不要だと思うが。
二分木に貯め込むってのに、別に配列に取っておく必要はないだろう。
以前も書いたが、英字以外が連続したときのことを考えていない。
iが何を意味しているか考えればできるはず。
whileの中の条件の順序を変えた方がいいと思う。
0562デフォルトの名無しさん
NGNGif( hoge == page ) printf("hoge と page は同じ");
(hoge == page) && printf("hoge と page は同じ");
0563Kusakabe Youichi
NGNG> if の代わりに && を使う。
> if( hoge == page ) printf("hoge と page は同じ");
> (hoge == page) && printf("hoge と page は同じ");
elseはどうします? :)
0564デフォルトの名無しさん
NGNG(hoge != page) && printf("hoge と page は同じ");
0565Kusakabe Youichi
NGNG> (hoge == page) && printf("hoge と page は同じ");
> (hoge != page) && printf("hoge と page は同じ");
うーむ、それじゃelseになってないような ;)
じゃあ、複数の文がある場合は?
0566デフォルトの名無しさん
NGNG0567デフォルトの名無しさん
NGNG(hoge == page) && printf("i == 20"), printf("dayo");
break とか void 関数などの式じゃないものが使えないだけで、
複文だろうと else だろうとできる。
0568デフォルトの名無しさん
NGNGを読んでいるのですが、feof関数で終了が判断できません。
仕方ないので fread関数 の戻り値が 0 になったら終了する
ようにしています。どうにかfeof関数だけで判断できないで
しょうか?
SOURCE:
FILE *fp;
int ret;
char buf[128];
if(fp = fopen("test.txt", "r") == NULL){
return;
}
ret = 1;
while(!feof(fp) || ret > 0){
ret = fread(buf, sizeof(char), sizeof(buf), fp);
}
fclose(fp);
お願いします。
0569デフォルトの名無しさん
NGNGdo {
ret = fread(buf, sizeof(char), sizeof(buf), fp);
} while (!feof(fp));
で、どうよ?
0570デフォルトの名無しさん
NGNGint main()
{
int i;
printf("input >>");
scanf("%d", &i);
/* if( i == 20 ) printf("i == 20\n");
else printf("i != 20\n"); */
(i == 20) && (printf("i == 20\n"), 1)
|| printf("i != 20\n");
return 0;
}
0571568
NGNG自分のソースでも終わりに達した後に読み込み操作を行いませ
んか?終端に達して何度 fread を実行してもだめなんです(T_T
0572_
NGNGでも使ってみれば?ただ、低水準入出力関数なので、
使い勝手がわるいけど。
この関数は読み込んだデータのバイト数を返す関数なので、
128より小さければファイルの終端に来たことがわかる。
0573デフォルトの名無しさん
NGNGなんでfeof()にこだわるわけ?
> 仕方ないので fread関数 の戻り値が 0 になったら終了する
これでいーじゃん。正しい使い方だお。
0574デフォルトの名無しさん
NGNGあんたのやってることは
if( fp = (fopen("test.txt", "r") == NULL) ) {
return;
}
だから fp に比較演算の結果を代入してるのよ。
ちゃんと括弧をつけなさい。
if( (fp = (fopen("test.txt", "r")) == NULL )
0575デフォルトの名無しさん
NGNG>> 568
if( (fp = fopen("test.txt", "r")) == NULL )
0576Kusakabe Youichi
NGNG> , (カンマ演算子)でいくらでも。
> (hoge == page) && printf("i == 20"), printf("dayo");
408ペイジに演算子の結合の優先度の表が乗っているので、
そこを見直して勉強し直しましょう:)
0577Kusakabe Youichi
NGNG> テキスト形式のファイルから fread関数 で固定長レコード
> を読んでいるのですが、feof関数で終了が判断できません。
ほんとうに切りのいいバイト数だけ入っているファイルなのですか?
それに「固定長」なのになぜ「テキスト」モードで読むようなことをするのですか?
0578Kusakabe Youichi
NGNG> すまそ
> if( (fp = fopen("test.txt", "r")) == NULL )
なんでifにくっつけるのに内側はあけたりするのかなあ。
何か悪い本の影響だろうか?
0579デフォルトの名無しさん
NGNG細かいところつっこむねー。
0580Kusakabe Youichi
NGNG> 細かいところつっこむねー。
どのへんでしょうか? > 細かいところ。
0581デフォルトの名無しさん
NGNG「なんでifにくっつけるのに内側はあけたりするのか」
どうみてもここしかないだろ。
0582Kusakabe Youichi
NGNG> 「なんでifにくっつけるのに内側はあけたりするのか」
> どうみてもここしかないだろ。
そうですか? > どうみても
何箇所もいろいろな指摘してるので、どこかと思って。
0583デフォルトの名無しさん
NGNGについて理解していないものと思われます。
0584デフォルトの名無しさん
NGNG0585デフォルトの名無しさん
NGNG0586Kusakabe Youichi
NGNG> つっこむだけで、何も生まないのは、本物と一緒
「だということにしたい」のですか? :)
ようするに私が「役に立って」いるところは見たくないのですね:)
0587デフォルトの名無しさん
NGNGremove("C:\\test\\*.*")
で消せません。ワイルドカード使っちゃ駄目ですか?
0588デフォルトの名無しさん
NGNG>ようするに私が「役に立って」いるところは見たくないのですね:)
「だということにしたい」のですね:)
0589Kusakabe Youichi
NGNG> removeで、あるフォルダにある全てのファイルを消したいんですけど、
>
> remove("C:\\test\\*.*")
>
> で消せません。ワイルドカード使っちゃ駄目ですか?
ワイルドかーどはだれが展開しているかを考えましょう:)
fopen("c:/test/*.*" ...) で全部のファイルがオープンしますか? :)
0590デフォルトの名無しさん
NGNGファイルが何をオープンするというのでしょうか?
0591デフォルトの名無しさん
NGNGそれが分かったら多分苦労してません。
0592デフォルトの名無しさん
NGNG0593デフォルトの名無しさん
NGNG0595デフォルトの名無しさん
NGNGでも、考えてわかることじゃないから、答えは出ないですぅぅ
考えてわかる事と、調べないとわからないことは、ちゃんと区別しましょう。
0596デフォルトの名無しさん
NGNGファイルの一覧をもらってくる関数を使って1つづつ消すか、
ワイルドカードを使ってファイルを削除するコマンドを起動するのがいいでしょう。
0597本当に親切な人
NGNGこうだよ。
for(i=0;i<1000;i++) {
remove("C:\\test\\*.*")
}
本当なら、1000回ループではなくて、ディレクトリにある
ファイルの数を調べてやるべきなだけど、初心者なら、
適当に1000か10000回ぐらいまわせばOKだろう。
0598587
NGNG0600デフォルトの名無しさん
NGNGそれはプロは絶対やらない、初心者向けの方法。
あまりremove()をワイルドカードでやりすぎると、まずいことが
起こることもあるけど、めったに起こらないから気にしなくてもいい。
0601ぽてと=150
NGNGいつも指摘してくれてありがとうございます。
>> Node root={"\0",0, NULL, NULL};
>空の単語も全部これにカウントすることになるが、それは意図的なもの?
>Node *root = NULL;でnodeは要らないはず。
addNode()で返ってきたものを逐一Nodeに再代入して使っているので、
ルートの位置を保存しておく(あとでTraverseNode()で使う)ためにnodeを宣言していました。
だからnodeをなくすとルートの位置が保存できなくなると思うのですが。
>> while ((c=fgetc(fp))!=EOF || j<=MAXWORD){
>charとEOFの比較はうまくいかないし、jがMAXWORDにいっても終らん。
これは…いままでおもいっきり while ((c=getchar())!=EOF) なんていう式を使っていたので
それに倣っていました。でもEOFは0か1を返すのでcharと比較しても大丈夫なような…。
>> ptr[j]=(char *)malloc(sizeof(char)*i); /*単語を格納するための場所確保*/
>> strcpy((char *)*ptr[j], temp); /*確保した場所に単語を格納*/
>ターミネータの分を忘れてる。このptr自体不要だと思うが。
>二分木に貯め込むってのに、別に配列に取っておく必要はないだろう。
ターミネータ('¥0'ですよね?)は忘れていました。
ptrは…。ちょっと理解するのが難しいのでじっくり考えます。ノードのなかにポインタがあるから、
それを使えば他のノードも指せるということですよね。(ptrを使わなくても)
夜中に少しソースを改訂させます。
0602デフォルトの名無しさん
NGNG全部くっつけると醜いからに決まってるだろ。
スタイルはあまりに奇抜でなければ良い悪いも無いと思うが?
おまえ、嬉しそうに
i=j---k;
なんて書いて「これの意味は?」なんて聞いてる厨だろ?
usenet に行け。
0603デフォルトの名無しさん
NGNGワイルドカードはOSの機能だから、C言語のすべての関数で使えるわけじゃないと思うぞ。
LSI-Cのヘルプにも
>>unlink(), remove()はfilenameで示されるファイルを削除します。ワイルド
>>・カード文字(*と?)は使用できません。
system()でコマンドラインからファイル削除しちゃだめか。
DOSならdelをつかうとか。
0604239
NGNG> addNode()で返ってきたものを逐一Nodeに再代入して使っているので、
> ルートの位置を保存しておく(あとでTraverseNode()で使う)ためにnodeを宣言していました。
> だからnodeをなくすとルートの位置が保存できなくなると思うのですが。
addNode()が返してるもの自体がルートだろ?
> これは…いままでおもいっきり while ((c=getchar())!=EOF) なんていう式を使っていたので
> それに倣っていました。
fgetc()やgetchar()の戻り値をなぜcharに代入しちゃいけないかは、
はっきりいってFAQなので>>1にあるリンクを読んでくれ。
> でもEOFは0か1を返すのでcharと比較しても大丈夫なような…。
それと、EOFとfeof()かなにかを混同してないか。
> ptrは…。ちょっと理解するのが難しいのでじっくり考えます。ノードのなかにポインタがあるから、
> それを使えば他のノードも指せるということですよね。(ptrを使わなくても)
「読み込んだ単語は全部ツリーにコピーされてるわけだから、
それと別に保存しておく意味はないだろ」ということをいってるんだが、
伝わってるかな。
0605デフォルトの名無しさん
NGNG>> Node root={"\0",0, NULL, NULL};
>空の単語も全部これにカウントすることになるが、それは意図的なもの?
>Node *root = NULL;でnodeは要らないはず。
>>601とは違う理由だけど、おれは*rootは初期状態でノードを指してる
のがいいと思う。
たとえばリストの場合
LIST* p; p=root; //書いてないところは想像してね
while(p->next != NULL) p=p->next; // これでケツまで行ける
ってかんじで、root==NULLの判定をしなくていいからすっきり。
0606ぽてと=150
NGNGおかげで完成させることが出来ました。
ちゃんと動きますよ!一応アルファベット順に並んでますし。
たしかにポインタ配列に単語を指させたアドレスを全部ぶちこんでおくのは
無駄、というか無意味でしたね。せっかく二分木作ってるのに。
(というか、そのために二分木を作っていたんですね…鬱氏)
なんかはっと気づくことが出来たような気がします。
まだまずいところとかありましたら教えて下さい。
0607Kusakabe Youichi
NGNG> ファイルが何をオープンするというのでしょうか?
ちゃんと辞書をひきましょう。(まさか自動詞の意味をしらないとか?^^;)
0608Kusakabe Youichi
NGNG> 小人さんがせっせと
そのエサはどうするのですか?
0609Kusakabe Youichi
NGNG> ワイルドかーどはだれが展開しているかを考えましょう〜
> でも、考えてわかることじゃないから、答えは出ないですぅぅ
> 考えてわかる事と、調べないとわからないことは、ちゃんと区別しましょう。
いえ、これは調べる前にまず考えることです。
0610Kusakabe Youichi
NGNG> こうだよ。
> for(i=0;i<1000;i++) {
> remove("C:\\test\\*.*")
> }
>
> 本当なら、1000回ループではなくて、ディレクトリにある
ぼけ。
0611239
NGNGコンパイル通らんぞ(藁。
word008.c: In function `main':
word008.c:78: `j' undeclared (first use in this function)
word008.c:78: (Each undeclared identifier is reported only once
word008.c:78: for each function it appears in.)
while ((c=getchar())!=EOF)に関してはここを読め。
http://www.catnet.ne.jp/kouno/c_faq/c12.html#1
> else if (i==0){/*英文字でなく、なおかつ以前も英文字でなかった時*/
> ;
> }
ふつーこういうのは条件を逆にするだろ。
> else{ /*英文字でなく、なおかつ前が英文字であった時*/
コメントが分かりづらい。要するに単語の終り?
何をやってるかとか直接の条件なんてのは、コードを読めば分かることだから、
コメントにはコードの意図を書いたほうがいい。
feof()してからfgetc()してるのは…うーん、これのおかげで英字で終ってる
ファイルでも正しく扱えてるんだが、そこまで考えてる?
あとはまぁ、tempのオーバーフローのチェックとか、Node::wordを可変長にす
るとか、argvからファイル名を取るようにするとか、そんなとこかな。
0612239
NGNGそうすると今度はtraverseNode()で判定が必要になりそうなので、場合に依り
けりでは。少なくとも、addNode()は再帰を使ってきれいにまとまってると思
うし。
ついでにいうと、ケツを探すということに関しては、
LIST *root, **p = &root;
while (*p) p = &(*p)->next;
という書き方もできる。
0613デフォルトの名無しさん
NGNGC言語でモニタのガンマ値を取得することは可能なのでしょうか?
JAVAだとあるんですけど。
どうしてもその方法がみつかりません。
知ってる方がいたら教えていただけないでしょうか。
0614デフォルトの名無しさん
NGNG数字だけを美しく取り出す方法を教えて下さい。
0615デフォルトの名無しさん
NGNGJava厨ですか?
>614
VB厨ですか?
>615
冬厨ですか?
0616デフォルトの名無しさん
NGNGsscanf
0617デフォルトの名無しさん
NGNGありがとうございました
恥ずかしいかぎりです,Cは数年ぶりなんで
0618デフォルトの名無しさん
NGNGスレ違い。激しく環境に依存する。
0619605
NGNG二進木の場合はあてはならないのはわかったよ、さんきゅ。
にしても
>LIST *root, **p = &root;
>while (*p) p = &(*p)->next;
でもいい、っていうなら、
traverseNode(node->left);
traverseNode(node->right);
でいいじゃんって言いたくなるけどね。
0620612
NGNGうーん、正確じゃなかったかな。612の例は、むしろケツの
要素というよりは、末尾に追加するときのポインタの位置を
探すコードだから。
本当に最後の要素を探したいなら、確かに605のようにしな
いとまずい。だとしても、見付からなかったときは別扱いが
必要のような気がするけど。rootを使うかNULLを使うかの違
いだけで。
0621初心者
NGNGなのでしょうか??
初心者なもので、すいません。。。
0622デフォルトの名無しさん
NGNGこれは何か意味があるのでしょうか?
0623デフォルトの名無しさん
NGNGたまに内部変数を渡したりも出来るように。
0624デフォルトの名無しさん
NGNGcout << a << ' ';の' 'ってどういう意味ですか?
0625デフォルトの名無しさん
NGNGCだと' 'は(asciiの場合)32のことだ。
0626デフォルトの名無しさん
NGNG空白文字
0627624
NGNG0628デフォルトの名無しさん
NGNG#include <stdio.h>
int main(void)
{
char a;
char *b;
char **c;
char ***d;
char ****e;
char *****f;
b=&a;
c=&b;
d=&c;
e=&d;
f=&e;
*****f=5;
printf("%d",a);
}
0629デフォルトの名無しさん
NGNG0630デフォルトの名無しさん
NGNGswitch( age )
{
case 1:
break;
default:
printf( "えらー" );
exit(1);
break;
}
0631デフォルトの名無しさん
NGNG0632デフォルトの名無しさん
NGNGbreak付けておいた方がいいかもな(藁
0633デフォルトの名無しさん
NGNGexitの後にbreakを書くか、書かないか、という話では。
exitなら、書くかなぁ。returnとかだと、書かないけど。
0634デフォルトの名無しさん
NGNGたとえば int型の足し算で桁あふれ起こしたとき
キャリーオーバーはどうやって検出する?
0635Kusakabe Youichi
NGNG> switchのdefaultでexitしたとき、breakは書かなくてもいい?
>
> switch( age )
switchにくっつけるくせに、内側は空けるのか :)
# 入門用に選んだ本がはずれだったのだろうか?
0636Kusakabe Youichi
NGNG> default の break は書いても書かなくてもいいが、漏れは書く。
これはデマですね > default の break は書いても書かなくてもいい
# 本気にする人がいるので念のため。
0637デフォルトの名無しさん
NGNGunsigned add(unsigned a, unsigned b)
{
unsigned c = a + b;
if (c < a || c < b) throw overflow();
return c;
}
0638デフォルトの名無しさん
NGNG>これはデマですね > default の break は書いても書かなくてもいい
作法として?文法として?
0639デフォルトの名無しさん
NGNG文法として。書かなくてもいいのは最後のcase/default。
0640デフォルトの名無しさん
NGNGは書いておくようにすすめます(とK&Rには書いてあった)
0641デフォルトの名無しさん
NGNGそれって作法って言うんじゃないの?
Cの言語仕様に基づく文法?
0642デフォルトの名無しさん
NGNGおこらないとは思うけど。警告とか出る?
0643デフォルトの名無しさん
NGNGC言語プログラミング レッスン 文法編
の第9章 制御の流れ
の183ページを読んでるんだけど、
<quote>
最後のbreak文は不要ですが、プログラミングスタイルとしてはあったほうが安全です
</quote>
と書いてあります。
0644デフォルトの名無しさん
NGNGたしかにbreakはまったく書かなくても文法的には正しい。
意味が変わってもいいというならだが。
0645デフォルトの名無しさん
NGNG0646デフォルトの名無しさん
NGNGだねだね。
0647Kusakabe Youichi
NGNG> >>636
> >これはデマですね > default の break は書いても書かなくてもいい
>
> 作法として? 文法として?
「文法として」は「書かなくても書いても同じ」なわけはないですから。
もしかしてこの2人はどちらも「defaultは最後に書く」ことを
前提にしていないだろうか? (^^;
0648Kusakabe Youichi
NGNG> 何をもっていいとか悪いと言うかは知らないが、必要じゃなくてもdefaultにはbreak
> は書いておくようにすすめます(とK&Rには書いてあった)
ちゃんと読み直せ。
0649デフォルトの名無しさん
NGNG「defaultが最後に置かれるとは限らないから、breakを省略してもよいとは言えない」という意味で言ったんだ
といーたいらしーが、だったら最初からそういえ。
「ボクはこういうつもりで言ったんだ」
とかデンパ飛ばすな。
まったくコミュニケーション能力ゼロだな。
(ということにしたい)
0651Kusakabe Youichi
NGNG> くさかべセンセーもたまには間違えるんだね。
どう間違えたのですか?
0652Kusakabe Youichi
NGNG> よーするに、センセーは
> 「defaultが最後に置かれるとは限らないから、breakを省略してもよいとは言えない」という意味で言ったんだ
> といーたいらしーが、だったら最初からそういえ。
は?
そうじゃなくて「defaultのbreakは書いても書かなくても同じ」ってのは
「デマだ」って言っただけですよ?
0653Kusakabe Youichi
NGNG> >「文法として」は「書かなくても書いても同じ」なわけはないですから。
>
> 「同じ」かどうかなんて話どこから出てきたの?
べつにどこからでてきたわけでもないですよ。そこにあるだけで。
学習の途中で「何でもおしえる」のは良くないので、
適切な教え方をするべきで、誤って勘違いしているのもあえて自分で考え
させる場合も多いですが、「あきらかな誤り」だけは、さすがに
「それはちがいます」とだけ言っておかないと、複数人のときに
それをそのまま信じちゃうひともいますからね。
「switch末尾のbreak」をどうするべきかは117ペイジに詳しく解説
されていますが、
ここではそうではなく「defaultラベルのところのbreakは書いても書かなくてもよい」
は明らかな間違いであることを指摘しただけです。(そこで「なぜ?」と考えることが
重要)。
0654デフォルトの名無しさん
NGNG>そうじゃなくて「defaultのbreakは書いても書かなくても同じ」ってのは
>「デマだ」って言っただけですよ?
そう言ってるようには読めないけど?
0655650
NGNG>ここではそうではなく「defaultラベルのところのbreakは書いても書かなくてもよい」
>は明らかな間違いであることを指摘しただけです。(そこで「なぜ?」と考えることが
>重要)。
ですから、それが「作法」としてなのか「文法」としてなのかを聞いたわけです。
0656デフォルトの名無しさん
NGNGなんの本の117ページだよ。
コミュニケーション能力ゼロだな
(ということにしたい)
0657デフォルトの名無しさん
NGNG>なんの本の117ページだよ。
本とは限らないですよ。
『117ペイジ』というモノなのでしょう。きっと。
0658Kusakabe Youichi
NGNG> >>652
> >そうじゃなくて「defaultのbreakは書いても書かなくても同じ」ってのは
> >「デマだ」って言っただけですよ?
>
> そう言ってるようには読めないけど?
「読めないことにしたい」だけですか? :)
ほんの何十分か前の発言なので再掲すると...
> > default の break は書いても書かなくてもいいが、漏れは書く。
> これはデマですね > default の break は書いても書かなくてもいい
> # 本気にする人がいるので念のため。
ですから
「defaultのbreakは書いても書かなくても同じ」ってのは「デマだ」って言っただけ
は正しいのでは?
そう「読めない」ってのはただの希望ですか?:)
0659デフォルトの名無しさん
NGNGbreak を書いたところで、なんの意味もない。
文法がどうのこうの言ってる馬鹿がいるが、書かないことによる
問題点でも指摘しない限り、これ以上相手不要。
fj で、また笑い物になることであろう。
0660Kusakabe Youichi
NGNG> >「switch末尾のbreak」をどうするべきかは117ペイジに詳しく解説
>
> なんの本の117ページだよ。
そんなことはあなたに聞いていません。
> コミュニケーション能力ゼロだな
「ということにしたい」のですか? :)
0661デフォルトの名無しさん
NGNG0662デフォルトの名無しさん
NGNGたとえば int型の足し算で桁あふれ起こしたとき
キャリーオーバーはどうやって検出する?
0663Kusakabe Youichi
NGNG> case 文の、default: が、最後にある限り、default: に
> break を書いたところで、なんの意味もない。
それはcaseだって同じでしょ > 最後にある限りbreak を書いたところで意味は少ない
(同じコードがでる)
逆に言えば「defaultだから」ってことはないわけです。
途中にあれば意味はかわってくるわけですので。
0664652
NGNG>そう「読めない」ってのはただの希望ですか?:)
希望じゃなくて、事実「読めない」だけですよ。
あなたは、
「書いても書かなくてもいい」を「書いても書かなくても同じ」
にしたいのですね。
そうならそう書けばいいのに。:)
0665Kusakabe Youichi
NGNG> 書けばいいじゃん> break
switch文の末尾に...話題だったら、117ペイジに書いてある通りですね(書くかどうか)。
「defaultラベルのところのbreak」が、「書いても書かなくても同じ」っての
については「デマ」だと述べました。
0666Kusakabe Youichi
NGNG> つまんねー質問なんだけど
> たとえば int型の足し算で桁あふれ起こしたとき
> キャリーオーバーはどうやって検出する?
「キャリーオーバーを検出」って意味不明ですね。
「桁あふれが起きたことを検知」することを言っているのか、
「キャリーオーヴァー分がどれだけかを知りたい」のか
0667Kusakabe Youichi
NGNG> >>658
> >そう「読めない」ってのはただの希望ですか?:)
>
> 希望じゃなくて、事実「読めない」だけですよ。
おや、もう一回引用しましょうか? :)
0668デフォルトの名無しさん
NGNGお前って引用するときにコピーしないんだな。いちいち手書きしているのか。
(>じゃなくて>が正しい。)
0669デフォルトの名無しさん
NGNGだからどの本の117ページに書いてあるんだよ?
世の中にCの本は1000種類ほど(当社調べ)出てるんだから、本の名前を指定しないと相手に伝わらないだろ。
まったく言語中枢麻痺してんのかね。
(ということにしたい)
0672デフォルトの名無しさん
NGNG0673デフォルトの名無しさん
NGNG勝手に推測しないでね。
0674Kusakabe Youichi
NGNG> >switch文の末尾に...話題だったら、117ペイジに書いてある通りですね(書くかどうか)。
>
> だからどの本の117ページに書いてあるんだよ?
ですから、あなたには聞いていません。
0675デフォルトの名無しさん
NGNG>> だからどの本の117ページに書いてあるんだよ?
>ですから、あなたには聞いていません。
聞いているのではなく、聞かれていますよ。:)
0676Kusakabe Youichi
NGNG> お前って引用するときにコピーしないんだな。いちいち手書きしているのか。
なんてことを書いても ごまかせませんよ :)
0677デフォルトの名無しさん
NGNG放置すれば奴がレスしないってのはマ板で証明済み。
0678デフォルトの名無しさん
NGNG0679デフォルトの名無しさん
NGNGスマソ、趣味なので。
0680デフォルトの名無しさん
NGNGレス専用共用ハンドルだしな。
0681デフォルトの名無しさん
NGNGワラタ
0682デフォルトの名無しさん
NGNG聞いてるとかきーてないとかの問題じゃないんだよ。
ここはパブリックな場なの。 email で個人的なやりとりをする場しゃないの。
ここはプログラム板なの。技術板なの。
なんか発言するときは、確実なソースを示すのがルールなの。
おみゃーが117ページに書いてありますぅ、っていってるから、こっちは、その本を確認して裏を取りたいの。
本の題名言えないなら、ネタとして処理するぞ。
ネタ発言したいときは、プログラマー板ってものがちゃんと用意されてるから、そっちにいきな。
0683Kusakabe Youichi
NGNG> > そう「読めない」ってのはただの希望ですか?:)
> 希望じゃなくて、事実「読めない」だけですよ。
そうですか? 読めない「ことにしたい」としか思えませんけど;)
: これはデマですね > default の break は書いても書かなくてもいい
: # 本気にする人がいるので念のため。
これが、
: > そうじゃなくて「defaultのbreakは書いても書かなくても同じ」ってのは
: >「デマだ」って言っただけですよ?
:
: そう言ってるようには読めないけど?
そう「読めない」としたら、「どう読める」のかを知りたいですね :)
0684Kusakabe Youichi
NGNG> 作って分かるCプログラミングに決まっているだろう!!
確認したのですか? > そのペイジに載っているかどうか
0685Kusakabe Youichi
NGNG> で、沖縄(I課整発貯ぢ協議会の方々からはどのくらい白い目で見られましたか?
文字化けしてますよ。
0686デフォルトの名無しさん
NGNG(ということにしたい)
0687デフォルトの名無しさん
NGNG記号とか英数は、自動的に変換されるツールを使用してると思われ。
0688Kusakabe Youichi
NGNG> >ですから、あなたには聞いていません。
>
> 聞いてるとかきーてないとかの問題じゃないんだよ。
なるほど。じゃあ問題ではないのですね。
0689デフォルトの名無しさん
NGNG文字化けしているところはOIAの事ですよ。
文章から類推することが出来ると思ったのですが。
で、お返事は?
0690あぼーん
NGNG0691664
NGNG>これはデマですね > default の break は書いても書かなくてもいい
って書いたよね。それが、
>>683
>: > そうじゃなくて「defaultのbreakは書いても書かなくても同じ」ってのは
>: >「デマだ」って言っただけですよ?
と変わっている。
>そう「読めない」としたら、「どう読める」のかを知りたいですね :)
「書かなくてもいい」と「書かなくても同じ」は違うよね?
わかるかな?:)
0692デフォルトの名無しさん
NGNGコンピューターと同化しちゃってて、まともに人間とコミュニケーション取れないし。
(ということにしたい)
0693デフォルトの名無しさん
NGNG:)←これ何?
0694デフォルトの名無しさん
NGNGもういい、おまえちょっとメロンパン買って来い!!
0695デフォルトの名無しさん
NGNG>:)←これ何?
文字化け。本人の公式見解。
0696デフォルトの名無しさん
NGNGでも儲けてるからうらやましい。
0697デフォルトの名無しさん
NGNGそれはスマイリーといって、核心を突かれてあせっているときに、
「俺様はこんなに心に余裕があるんだよ」
ということを装いたいときに使います。
(ということにしたい)
0698デフォルトの名無しさん
NGNGスマイリーて:-)←こうじゃなかった?亜種?:)
0699デフォルトの名無しさん
NGNG>それはスマイリーといって、核心を突かれてあせっているときに、
そうだったのか。使うの控えよう。:)
0700デフォルトの名無しさん
NGNGうらやましいよな。
自然豊かな場所で仕事しながら、仕事はネット経由でばりばり最先端。
あこがれちゃうよ。
0701デフォルトの名無しさん
NGNGこんなところで騙られていることなんて気にもとめないところがカコイイ!!
0702Kusakabe Youichi
NGNG> >>700
> こんなところで騙られていることなんて気にもとめないところがカコイイ!!
ということにしたいのですね?:)
0703デフォルトの名無しさん
NGNGけいこの味噌汁辛すぎるんだよ!! ちゃんとちゅういしとけよ!!
0704デフォルトの名無しさん
NGNG> > こんなところで騙られていることなんて気にもとめないところがカコイイ!!
> ということにしたいのですね?:)
藁田。
騙られていることを気にとめていることにしよう。
0705デフォルトの名無しさん
NGNG文字化けしてないじゃん。まったく!
0706デフォルトの名無しさん
NGNG0707デフォルトの名無しさん
NGNG書籍のサンプルじゃないやつどっかあるか?
さがすのめんどくせぇからポインタくれ
0708クサカーベ
NGNG117ページに書かれています。
0709デフォルトの名無しさん
NGNG彼は丘プログラマーですから、コードなどないのでは?
0710デフォルトの名無しさん
NGNGてめぇは郵便だすときに
「やまださんの家」
とだけ書いてだすのかゴルァ
0712デフォルトの名無しさん
NGNG(1)日曜の朝は【デフォルト】でコメットさんを見ます。
(2)コメットさんが【デフォルト】になりました。
0713デフォルトの名無しさん
NGNGまた延々と、ソウオモイタイ、ハツミミデス、発言が続くだけだろ。
0714デフォルトの名無しさん
NGNG書けばすむのに。
0715デフォルトの名無しさん
NGNGデフォルトの使い方が間違っています。
私ならこのように使います。
(1)日曜の夕方は【デフォルト】でだぁ!だぁ!だぁ!を見ます。
(2)だぁ!だぁ!だぁ!さんが【デフォルト】になりました。
0716デフォルトの名無しさん
NGNG本ではありません。
『117ペイジ』というモノに書いてあります。
0718デフォルトの名無しさん
NGNG(2)は名塚佳織が自己破産したということでしょうか?
0719デフォルトの名無しさん
NGNG(とはつみみですがおもいたい)
0720デフォルトの名無しさん
NGNG俺とおなじで「これマジ」のスカイフィッシュが気になって仕方ないのか?
0721デフォルトの名無しさん
NGNGキチガイですから、脳が物理的な損傷を受けている可能性は高いですね。
0722デフォルトの名無しさん
NGNGということにしてみたら? :)
0723デフォルトの名無しさん
NGNGモー娘。を見ろーーーーーー!
0724デフォルトの名無しさん
NGNG何か本の名前を書くのと、「本の名前かけー」という人に煽り返す
のと比べると、後者の方が面倒だと思うのだが。
0725デフォルトの名無しさん
NGNG> 急にカキコが途絶えたね。
反論できなくなったからです。
#と煽れば、またきてくれるかな:)
0726デフォルトの名無しさん
NGNG来んでええ。
0727Kusokabe Youichi
NGNG完敗です。m(_ _)m
もう二度と書き込まないことを誓います。
0728デフォルトの名無しさん
NGNGbreakの使い方なんて、だれでも間違うことあるよ。
気にするな。元気出せ。
0729デフォルトの名無しさん
NGNGKus"o"kabeになってるじゃん。
メール欄も変だし
0730デフォルトの名無しさん
NGNG0732デフォルトの名無しさん
NGNGたとえば int型の足し算で桁あふれ起こしたとき
キャリーオーバーはどうやって検出する?
>>666
桁あふれが起きたことを検知する方法はあるの?
キャリーオーバー分がどれだけか は
桁あふれが起きたことを検知できれば
なんとかなるし
0733Kusakabe Youichi
NGNG> >これはデマですね > default の break は書いても書かなくてもいい
>
> って書いたよね。それが、
> >: > そうじゃなくて「defaultのbreakは書いても書かなくても同じ」ってのは
> >: >「デマだ」って言っただけですよ?
>
> と変わっている。
>
> >そう「読めない」としたら、「どう読める」のかを知りたいですね :)
>
> 「書かなくてもいい」と「書かなくても同じ」は違うよね?
> わかるかな?
そうではなく、「じゃあどう読めるのか?」を質問したのですか?
0734Kusakabe Youichi
NGNG> やーっぱ、くさかべは、一生地方のコーダーで終わりそうだな
いいなー
0735Kusakabe Youichi
NGNG> :)←これ何?
括弧とじでは?
0736デフォルトの名無しさん
NGNGAとBを足したとき
答えがA(またはB)よりも小さければ
キャリーが出てる。
0737Kusakabe Youichi
NGNG> 陽一の書いたコード見てぇな
買えばいいのに。
0738Kusakabe Youichi
NGNG> デフォルトという言葉を知らないのですね?
債務不履行のことでしょ?
0739Kusakabe Youichi
NGNG> 日下部と日下部叩きはマ板に逝ってくれないか?
っていうか私は特に問題のあることを書いているわけじゃあないですね。
0740Kusakabe Youichi
NGNG> > Kus"o"kabeになってるじゃん。
>
> そのことを折れに指摘してどうしたいの?
2人分書いて「こうなればいいなあ」と「希望」を示したことが
理解されなかったのでは?
そういう場合は名前を変えておくとかじゃなくって、右下とかに「(希望)」って
書いておけば勘違いする人もいなくなるのでは?
0741691
NGNG>そうではなく、「じゃあどう読めるのか?」を質問したのですか?
『そう』と『「じゃあどう読めるのか?」』がどの部分を
指しているのかを説明してもらえますか?
「質問したのですか?」と言われても答えようがありません。
0743Kusakabe Youichi
NGNG> >>733
> >そうではなく、「じゃあどう読めるのか?」を質問したのですか?
>
> 『そう』と『「じゃあどう読めるのか?」』がどの部分を
> 指しているのかを説明してもらえますか?
「そうは読めない」の代わりの部分ですが?
0744デフォルトの名無しさん
NGNG頼む、マ板に逝ってくれ!
0745731
NGNG>>731の意図としては
「Kusokabe Youichiに名前の似ている人」にとって
>>728のような発言をされたら惨めだろう
と思って書き込んだのですが
>>729が、>>731の発言の対象を「マジで」勘違いしている
と勘違いしたので、訂正を促す意味で書いたまでです。
0746デフォルトの名無しさん
NGNGunsigned ならそれでいいんだけど・・・
あーちょっと待って!
なんかいいロジックが思いつきそう・・・!
ヒントサンクス!
0747デフォルトの名無しさん
NGNG0748デフォルトの名無しさん
NGNGネタが出てるぞ。気分転換にレスつけてこいよ。
0750Kusakabe Youichi
NGNG> おい(I舷桐泗ぢ、料理板でお前の好きなシーチキンとスパゲッティの
> ネタが出てるぞ。
文字化けしてますよ。
0752デフォルトの名無しさん
NGNGsigned でも問題ないと思うが。
0754デフォルトの名無しさん
NGNGオマエ ニセモノ ダロ?
ホンモノハ ハンカクカタカナ チャント ヨメテルゾ
0755デフォルトの名無しさん
NGNGいい加減に帰るかコテハン使ってくれ(ホットゾヌの NG ワードに登録するから)
0757IQ低いかも
NGNG255+1=256 → 0
signed char の場合
-127-127=-254 → 2
足し算の場合、もとよりも小さくなってたら
引き算の場合、もとよりも大きくなってたら
キャリーオーバー
かな?
ここでやらないで
0759デフォルトの名無しさん
NGNG正の数を足して小さくなったらキャリー発生
負の数を足して大きくなったらボロー発生
でいいんじゃない?
0761Kusakabe Youichi
NGNG> >「そうは読めない」の代わりの部分ですが?
>
> 質問してるの?:)
そんなこと書いてもごまかせませんよ。
0762Kusakabe Youichi
NGNG> ミイラ取りがミイラになってしまった。
っていうか最初からあらしているのはそのひとりでは?
0764デフォルトの名無しさん
NGNG0765デフォルトの名無しさん
NGNGでも、このスレって
「Cハッカー日下部陽一」に聞く
スレッドなんだね(^^;
0766デフォルトの名無しさん
NGNG0767デフォルトの名無しさん
NGNGそのためにKusakabe Youichiを煽って素早く1000を目指す
っていうのは、やっぱだめ?
0768Kusakabe Youichi
NGNG> ここで君の相手をしてあげることはできなくなりました。
っていうか、相手してもらえると勝手に勘違いしてのこのこあなたが
でてきただけのことでしょうに :)
0769デフォルトの名無しさん
NGNGreallocってどう?
mallocで取ったchar *pStrで
if((p = (char *)realloc(pStr, size)) == NULL){
ってやるとエラーになる。使い方ヘンですか?
0770あぼーん
NGNG0771デフォルトの名無しさん
NGNGいいんでしょうか?あと、Cを覚えた後c++で格ゲー作りたいのですが、
可能でしょうか。房な質問ですいません。
0773デフォルトの名無しさん
NGNGうぜ。
0774デフォルトの名無しさん
NGNG推薦図書/必読書のためのスレッド in プログラム板
http://pc.2ch.net/test/read.cgi/tech/1005897052/
推薦図書/必読書のためのスレッド7
http://pc.2ch.net/test/read.cgi/prog/1006353701/
0775769
NGNG独習Cは名著です。しっくりこなければ何冊か別のをあたってもいいでしょう。
Cを覚えた後C++覚えるのは順当です。核ゲー作りたいならDirectXも読みましょう。
核ゲーの作り方はその手の本を探そう。
それより俺の質問にも誰か答へて
0776デフォルトの名無しさん
NGNGなんのエラー?
0777デフォルトの名無しさん
NGNGとりあえず、JAVAから入って、(JAVAがいいかどうかは別にして)
クラスを使ってプログラミングする癖をつけてから
C++に行くって言うのはどうでしょう?
CからC++に行くと、結局Cになっちゃうから。
0778Kusakabe Youichi
NGNG> 独習Cで勉強しいるのですが、やはり紹介されている本で勉強したほうが
> いいんでしょうか?
その本のどのへんが不満なんですか?
0779Kusakabe Youichi
NGNG> もうネタ振りしないでよ。
> 反応したいけど迷惑になるみたいだからさ。
わたしはねたふりなんかしてませんよ。
低能なくせにいちいち反応するなって。
(内容あること話せないくせに)
0780769
NGNGWin2000。
アクセスヴァイオレーション。
bcc32とVCの両方でメモリエラーが出るみたい・・・
0781Kusakabe Youichi
NGNG> それより俺の質問にも誰か答へて
どんな質問ですか?
0783デフォルトの名無しさん
NGNG>(内容あること話せないくせに)
たまには面白い事言うね。
0784デフォルトの名無しさん
NGNG> たまには面白い事言うね。
あまり面白くないような気もするけど。
0785デフォルトの名無しさん
NGNGいま
Win98でやってみたけど、
おかしいとこないみたい
変数sizeは初期化してるよね?
0786デフォルトの名無しさん
NGNGrealloc() を呼んだ時点で保護違反を食らってるの? それは pStr の値が腐ってる気がするな。
環境がわからんが VC6 ならデバッグビルドにして
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_CHECK_ALWAYS_DF | _CRTDBG_LEAK_CHECK_DF);
_CrtIsValidHeapPointer();
あたりでヒープのチェックかけてみ。
0787769
NGNGうん。たぶん。
最初のmallocで取ったのが33バイト。次に33バイト必要なのでsize=66なんだけど・・・
>>786
やってみます。
0788Kusakabe Youichi
NGNG> >>769で書いたヤツです。
どんなのだろう...。
0789Kusakabe Youichi
NGNG> > (内容あること話せないくせに)
>
> たまには面白い事言うね。
まだしつこく反応してるし:)
0790デフォルトの名無しさん
NGNGあせっちゃ駄目だ。Aをネチネチで酔わせてから、ゆっくりボタンをはずせ。
そして丁寧に愛撫するんだ。そう、もうグッチョリヌレヌスキーになってきただろ。
さぁ、Cの出番だ。うまくじらして突きまくるのさ。
0791Kusakabe Youichi
NGNG> Cに行く前にやっぱりBのモミモミを先やらないとね。
Bは参考文献がないからなあ。BCPLのも以前は書店にあったが、
最近は見かけない。
0792Delフサギコ
NGNG|,,∧
|Д゚彡 ジー
⊂ミ
| ,;゙ エロッ
|´
0793Delフサ名無しさん
NGNG| ∧,,∧ あ・・・・・・ホットゾヌだから
| ミ;゚Д゚彡 クサカベタンを見つけられなかった。
| (ミ ミつ
| 〜ミ ミ ・・・キーワード設定してたから・・・
| ∪゙∪
| ヒィ トテテテテ・・・
| ∧,,∧ 三
| ミ゚Д゚,,彡 二 ≡
| ⊂⊂ ミ 三 = =
| `@゙@ ー 二
|
| サッ
|)彡
|
|
|
|コソーリ
|,,∧
|Д゚彡 ジー
⊂ミ
| ,;゙ マキコマレタクニャイ、、
|´
0794Error401
NGNG>あのー、Pro*cの中にPL/SQLを記述することは可能
>なのでしょうか??
微妙にスレ違いな気が。
無名PL/SQLブロックを入れることが出来るよ。
確か、
EXEC SQL EXECUTE 〜 END-EXEC;
だったと思う。
おそらくマニュアルに載ってると思うけど。
なければ、OTN Japanでダウンロード。
0795デフォルトの名無しさん
NGNGエラー処理がしづらいけど。
0796769
NGNGありがとうございます。解決しました。やはりpStrで取ったメモリを使った処理で
メモリの上限を越えてました。その瞬間にはエラーにならないのですが、これが
いわゆるヒープの不整合ってヤツなんですね。
この状態だと関係ないメモリのfree()までコケる事もあるみたいですね。
はずかしいのでsage
0797デフォルトの名無しさん
NGNGC/C++で、引数の数を可変にするには
foo( ... );
みたいにかけるじゃないですか。
じゃあ、呼び出し側が、
状況によって fooの引数の数を1個にでも10個にでも100個にでもしたい場合、
どう書いたらイイっすかね。
誰か知恵貸してくれると嬉しいんですが。
(stdcallの規約に従ってアセンブラでスタックに引数積むっていう手は考えたけど、
これだと汎用性が・・・・)
0798デフォルトの名無しさん
NGNG型が固定で単に可変長なだけなら配列で渡す。
0799239
NGNG細かいとこだけ。
> else if (!strcmp(str, p->word))
> p->count++;
> else if (strcmp(str, p->word)<0)
> p->left=addNode(p->left, str);
二回strcmp()する必要はない。
> else if (!isalpha(c) && i>0){ /*単語を1つ読み終えたとき*/
ここはすでに!isalpha(c)なのは明らか。
まぁあとは、短い単語でも長い単語でもNodeでは一律64とっ
てしまうところとか、バッファオーバーフロー対策くらいだ
ろう。
feof()というのはfgetc()とかがEOFを返してからでないと真
にならない。つまり、0.08では必ず一回はc==(char)EOFでルー
プすることになるんだが、これは普通isalpha()ではないの
でたまたま番兵として働いてるということ。
0800797
NGNGその関数を使いたいケースがマジで引数の型も個数も可変なんですよ。
だから配列は不可。
va_listって呼び出し元でも使えるの?だとするとちょい目から鱗なんだけど。
引数として渡すとちゃんと順番に全部スタックに積んでくれるのかしら。
0801797
NGNG可変引数をサポートしているスクリプトエンジンをC++で書いてて、
スクリプトの内容によって、引数の型、個数など、あらゆる場合がありうる。
(んで、それを解釈・実行する可変引数の関数が1つ既に存在している。
そこに、スクリプトを分析して得たパラメータを全部一気に渡す。)
おれなら void型(Linuxなら慣例でunsigned longか)のポインタを渡すね。
受け取り側で適当な構造体なりなんなりをはめなおす。
0803デフォルトの名無しさん
NGNG0804デフォルトの名無しさん
NGNGva_listは呼び出し元では使えない。
どういうデータを扱えるかにもよるが、>>802が一番妥当かも。
void*なりlongなりにキャストできるデータが前提、つまりおそらくdoubleや
構造体の値渡しはできないが。
あと、引数の数や型はどうやって渡すわけ?
0805デフォルトの名無しさん
NGNGXML。
0806デフォルトの名無しさん
NGNGAppleEventやITypeInfoを参考にしれ。
0807デフォルトの名無しさん
NGNG0808デフォルトの名無しさん
NGNGココムだか暗号なんたらだかに引っ掛かって入ってない
適当に拾ってこい
0809デフォルトの名無しさん
NGNG>(んで、それを解釈・実行する可変引数の関数が1つ既に存在している。
>そこに、スクリプトを分析して得たパラメータを全部一気に渡す。)
これはどうやって機能を実現してるの?
0810デフォルトの名無しさん
NGNGそれが実現できなくて悩んでると思われ。
0811デフォルトの名無しさん
NGNGVBのバリアント型みたいな機能を持ったクラス自作するとかってのはどう?
0812801
NGNGこれはすでに実現できていて
>そこに、スクリプトを分析して得たパラメータを全部一気に渡す。)
これが実現できなくて困ってるなり。
やぱーし仕様変えてもらおうかなぁ。
0813801
NGNG呼び出し側は引数の数を決めたコーディングしかできないよな・・・。
まあでも、パラメータの数20個までとか制限付けちゃえば、
(現実に、そんな大量のパラメータをセットするヤツは居ないはず。)
残り全部をNULLでダミー送ってしまう手はあるな。ちょい無駄っぽいけど。
提案どうもありがとうございました>ALL
でも引き続きいい案がありましたら教えてください。
0815デフォルトの名無しさん
NGNG残りがNULLでOKならvoid*の配列でいいじゃん。
0816デフォルトの名無しさん
NGNGもし記号定数があるのならば教えてください。
0817816
NGNG0818デフォルトの名無しさん
NGNG不定なので参照すべきものではないかと。
0819デフォルトの名無しさん
NGNGエラー処理したかったら、_matherr()を定義するとか。
0820デフォルトの名無しさん
NGNG不定ってそういうことだったんですか・・・てっきり処理系によって変わることかと・・・・
ありがとうございます。
0821デフォルトの名無しさん
NGNG直接参照するんじゃなくてisnan()とか使う。
isnan(sqrt(-1.0)) != 0
0822デフォルトの名無しさん
NGNGとりあえず日下部陽一ではないことはわかるんですが・・・。
0823デフォルトの名無しさん
NGNG掲示板で特定の人に聞くのはナンセンスです。
特定の人に聞きたいのなら電子メールを利用しましょう。
0824Kusakabe Youichi
NGNG> このスレって誰に聞けばいんですか?
「俺」では? そう書いてあるし。
0825ぜろ
NGNGその1行が長い場合があるため
fgets(s, fp)
linesize = sizeof(s);
みたいではなく、
#include<stdio.h>
int main(void) {
int linsize = 0;
FILE *fp;
fp = open("input.txt", "r");
while(fgetc(fp) != '\n')
linesize++;
printf("linesize : %d\n", linesize);
close(fp);
return(0);
}
としているのですが、うまくいかないことがあります。
なぜなのでしょうか?教えてください。
0826Kusakabe Youichi
NGNG> としているのですが、うまくいかないことがあります。
っていうか、なんでfgetcのにopenなの?
0827デフォルトの名無しさん
NGNG0828デフォルトの名無しさん
NGNGよーわからんが、そのファイルって全行同じ長さなの?
0829デフォルトの名無しさん
NGNG0830ぜろ
NGNG編集するときに間違えたようです。
>fp = open("input.txt", "r");
ではなく、
fp = fopen("input.txt", "r");
でした。
0831デフォルトの名無しさん
NGNGこのwhile(fgetc(fp) != '\n') ってループしないの?
0832デフォルトの名無しさん
NGNGごめん。見間違え。
0833ぜろ
NGNGいいえ。
ただ、1ファイルは必ず3行なのですが。
0834デフォルトの名無しさん
NGNG>while(fgetc(fp) != '\n')
>linesize++;
は最初の行のサイズだけをカウントして、おしまいだよ。
2、3行目は無視してる。
0835ぜろ
NGNGありがとうございました。無事解決できました。
0836(゚д゚)ウマ-
NGNGvoid main() と void main (void) って一緒ですか?
マジれすを頂戴したい・・・
0837デフォルトの名無しさん
NGNGいっしょ
0838デフォルトの名無しさん
NGNG使わなければどうにもならない場合は重要だし、
要らないキャストで混乱させられる場合も重要。
0839デフォルトの名無しさん
NGNG0841デフォルトの名無しさん
NGNGちがう
0842デフォルトの名無しさん
NGNG0843デフォルトの名無しさん
NGNGANSI C では次のように決められている
int main(void)
int main(int argc, char* argv[])
int main(int argc, char** argv)
argc とかの変数名は任意。
0844Kusakabe Youichi
NGNG> void main() と void main (void) って一緒ですか?
> マジれすを頂戴したい・・・
19ペイジを読みましょう。
0845Kusakabe Youichi
NGNG> > 836
> いっしょ
またこういうウソ教えるし:)
0846デフォルトの名無しさん
NGNGmain()でいいんじゃない?省略したらint型と見ると決められているし。
0847Kusakabe Youichi
NGNG> voidでも動くが正しくはint
またこういう嘘教えるし。
0848(゚д゚)ウマ-
NGNG0849Kusakabe Youichi
NGNG> ANSI C では次のように決められている
まず「ANSI C」とか言ってるあたりでまぬけ。(C89のことかなあ?)
> int main(void)
> int main(int argc, char* argv[])
> int main(int argc, char** argv)
> argc とかの変数名は任意。
こういうデマを平気でおしえるからなあ。
0850Kusakabe Youichi
NGNG> main()でいいんじゃない>? 省略したらint型と見ると決められているし。
昔はそうでしたね > 省略したらint
現在の標準規格ではちがいます。
0851デフォルトの名無しさん
NGNG質問者があまりのわかりやすさに感激してるぞ。
0852デフォルトの名無しさん
NGNG>19ペイジを読みましょう。
どの19ペイジ?
0854デフォルトの名無しさん
NGNG目を合わせちゃダメ
0855Kusakabe Youichi
NGNG> > 19ペイジを読みましょう。
>
> どの19ペイジ?
20ペイジの前のペイジです。
0856デフォルトの名無しさん
NGNG>20ペイジの前のペイジです。
どの20ペイジ?
0857デフォルトの名無しさん
NGNG0858デフォルトの名無しさん
NGNG関数を宣言するときに、引数リストを空にするのと、(void)にするのが一緒かってことなら、
C++では一緒。
(C++ では引数リストを省略すると (void) とみなされる)
C言語では最近の仕様はよく知らんけど、昔は違う意味になったはず。
(昔の仕様だと、引数リストを省略すると、 (int) と同じ意味になった)
じゃなかったっけ?
0859デフォルトの名無しさん
NGNGintになったとして、どんな名前の仮引数に値が格納されるの?
そして、仮引数の個数は?
省略するとint型になるのは戻り値の型だと思う。
0860Kusakabe Youichi
NGNG> C++では一緒。
> (C++ では引数リストを省略すると (void) とみなされる)
> C言語では最近の仕様はよく知らんけど、昔は違う意味になったはず。
いまもそうですね。
0861デフォルトの名無しさん
NGNG0862デフォルトの名無しさん
NGNG最近「Kusakabe Youichi」って名前のおじさんをよく見るんですが
一体だれですか?
0863デフォルトの名無しさん
NGNGtype funcname(); → type funcname(...);
関数定義の場合
type funcname() → type funcname(void)
0864主治医
NGNG0865デフォルトの名無しさん
NGNG>>864
あまり、いじらないように。うざいから。
大学を一応卒業したもののあまりの性格の悪さから就職もできず、
中途半端な才能しかないのでC言語しか覚えられなくて院にも行けず、
そのうち本州に居づらくなったので沖縄に逃亡し、
いたいけで可愛い女子大学生をかどわかして強引に結婚させ、
たまに得たC言語本の仕事で毒舌を放ちまくるも、
結局売れないので2chでの書き込みを日課して、
一生を過ごしている可哀想なおじいちゃんです。
0867デフォルトの名無しさん
NGNGモニタからお前らの粘着粘液がにじんで来るんだよ
0868デフォルトの名無しさん
NGNG違う。
0869857
NGNG説明
tmpfile()関 数は<stdio.h>で定義されている P_tmpdirをパスの
先頭に使ったユニークなファイルを作成する。テンポラリファイ
ルはバイナリリードライトモード(w+b)で作成される。このファ
イルはクローズ時またはプログラムの終了時に自動的に削除され
る。
準拠
SVID 3, POSIX, BSD 4.3, ISO 9899
実行ファイルと同じディレクトリに書き込み権限があるとは限らないし、
そもそもPOSIXでは実行ファイルのディレクトリを知る方法を定義していない。
0870Kusakabe Youichi
NGNG> あの、教えて頂きたいんです
> 最近「Kusakabe Youichi」って名前のおじさんをよく見るんですが
> 一体だれですか?
昨日も同じこと言ってましたね:)
0871Kusakabe Youichi
NGNG> C言語しか覚えられなくて
はつみみです :)
> 院にも行けず、
はつみみです :)
0872
NGNG「 main() に飛んでくるまでのロジック 」について解説してるHPが
あったら教えてください。
書籍でもいいです。
検索キーワードだけでもいいです。
google行っても何で検索したらいいかさっぱり
0873デフォルトの名無しさん
NGNG「スタートアップルーチン」とかで検索してみれば?
0875801
NGNG>>805の提案って?すまん、意味がわからんのですが。XMLだと解決になるの?
>>815氏へ
残りがNULLでいいというか、20個というのは実用上妥当であろう数を大まかに言っただけのことです。
理想的なのはスタックに積む引数の数を変えられることなんですけどね。
まあ、>>802氏、>>804氏の提案も分かるんですが、
問題は既に可変引数の関数が実在しちゃってることなのです。
ココデモ ロクデモナイ コトシカ カカナイ
Kusakabeたんは何か提案ないの?(とか振ってみる)
まともでかつ有益な提案がもらえたら、
本の一冊くらいは買ってあげるところだけど。(w
0876デフォルトの名無しさん
NGNGあ、そうなんですか。ありがとうございます。
> 実行ファイルと同じディレクトリに書き込み権限があるとは限らないし、
そうです。これが心配だったのです。
0877デフォルトの名無しさん
NGNG結果的には、ふつー、UNIX系では/tmpに出来るし、Windows系では
%TEMP%に出来ると思うけど。
0878デフォルトの名無しさん
NGNG面白い人なんですね。
0879デフォルトの名無しさん
NGNGデオデオ内のコンピュータ書籍売り場にいって
c言語のコーナーを見たけど売ってなかったよ?
c言語の本だけでも4段くらいあったんだけど。。。
絶版?
0880デフォルトの名無しさん
NGNGKusakabe Youichiの母です(以下略
0881デフォルトの名無しさん
NGNG> 問題は既に可変引数の関数が実在しちゃってることなのです。
それが根本的に間違ってる。
vprintf()を使ってprintf()を実装することは容易だが、逆はできない。
va_listをとる関数をベースにして、可変引数の関数でラップするもんだ。
0882Kusakabe Youichi
NGNG> デオデオ内のコンピュータ書籍売り場にいって
> C言語のコーナーを見たけど売ってなかったよ?
けっこう売りきれるのが速いみたいです。またそのうち入荷するでしょう。
0883デフォルトの名無しさん
NGNGその本は警視庁から回収命令が出されました。
出版社が回収中です。(w
0884デフォルトの名無しさん
NGNGMFCの本かいてください。
0885デフォルトの名無しさん
NGNGATOKの本かいてください。
0886Kusakabe Youichi
NGNG> クサカベさん、
> MFCの本かいてください。
書いてどうするの?
0887デフォルトの名無しさん
NGNG> > 問題は既に可変引数の関数が実在しちゃってることなのです。
> それが根本的に間違ってる。
> vprintf()を使ってprintf()を実装することは容易だが、逆はできない。
> va_listをとる関数をベースにして、可変引数の関数でラップするもんだ。
んー、それがわかってるから
スタックに積む数を動的に変える方法ない?って聞いてるんだけどな。
可変引数はCの関数の墓場ということでしょうか(藁
まあ、Cの弱いところだからしょうがないか・・・・。(^_^;;
で、日下部先生、なんかいい手はないですかね。
呼び出し側で引数の数(=スタックに引数を積む数の意)を可変にする方法。
知ってたら教えてください。
0888Kusakabe Youichi
NGNG> んー、それがわかってるから
> スタックに積む数を動的に変える方法ない?って聞いてるんだけどな。
っていうか、「引数や戻り値のやりとりはスタックで実現」するという実装で
なければいけないなんていう話はどこにもないのでは?
> まあ、Cの弱いところだからしょうがないか・・・・。(^_^;;
でもprintf()は初期からありましたよ。
> で、日下部先生、なんかいい手はないですかね。
> 呼び出し側で引数の数(=スタックに引数を積む数の意)を可変にする方法。
> 知ってたら教えてください。
ちゃんと本なり規格書を読みましょう。
0889デフォルトの名無しさん
NGNG0890Kusakabe Youichi
NGNG> 想像していた程度の答えだね > 日下部
ということにしたいいのですね? :)
0891デフォルトの名無しさん
NGNG0892デフォルトの名無しさん
NGNG0893887
NGNG問題の関数は内部で va_list を使った関数をラップしているだけらしいことが
分かりました。(まあ、普通の人ならそういう風に作るよな・・・)
そっちの関数を外に公開してもらうことで、当座の問題解決はなんとかなります。
ご意見くださったみなさま、どうもありがとうございました。
(但し、日下部以外)
0894デフォルトの名無しさん
NGNGその辺の話って、規格のどこを読めばいいの?
カニチャーハンにある程度載ってるね
0896デフォルトの名無しさん
NGNG0897881
NGNG解決したようだが。
> スタックに積む数を動的に変える方法ない?って聞いてるんだけどな。
存在しないと思う。こういう力業以外。
switch (argc) {
case 0:
ret = foo();
break;
case 1:
ret = foo(argv[0]);
break;
// ....
}
あとva_listをとる関数があっても、va_listを作るのは
可変長引数の関数内じゃないとできないはず。
0898デフォルトの名無しさん
NGNGC の超カンタンなことなら漏れに聞け
http://pc.2ch.net/test/read.cgi/tech/1009190994/
0899デフォルトの名無しさん
NGNGクソカベの隔離スレ
0900RA・イール
NGNGUTFビット列をUnicodeビット列に変更するプログラムを
作成しているのですが。
どのようにマスクを掛けたり、ビットをずらしたりすれば
良いのか思い浮かびません。
どなたかご教授願えませんでしょうか。
UTFビット列 Unicodeビット列
1バイトコード 0aaa bbbb 0000 0000 0aaa bbbb
2バイトコード 110a aabb 10bbc ccc 0000 0aaa bbbb cccc
3バイトコード 1110 aaaa 10bb bbcc 10cc dddd aaaa bbbb cccc dddd
0901デフォルトの名無しさん
NGNG興味深い日本語だ。
0902デフォルトの名無しさん
NGNG2バイトかどうか (c1 & 0xe0) == 0xc0
3バイトかどうか (c1 & 0xf0) == 0xe0
4バイトかどうか (c1 & 0xf8) == 0xf0
5バイトかどうか (c1 & 0xfc) == 0xf8
6バイトかどうか (c1 & 0xfe) == 0xfc
2バイトのとき (c1 & 0x1f) << 6 | (c2 & 0x3f)
3バイトのとき (c1 & 0x0f) << 12 | (c2 & 0x3f) << 6 | (c3 & 0x3f)
4バイトのとき (c1 & 0x07) << 18 | (c2 & 0x3f) << 12 | (c3 & 0x3f) << 6 | (c4 & 0x3f)
5バイトのとき (c1 & 0x03) << 24 | (c2 & 0x3f) << 18 | (c3 & 0x3f) << 12 | (c4 & 0x3f) << 6 | (c5 & 0x3f)
6バイトのとき (c1 & 0x01) << 30 | (c2 & 0x3f) << 24 | (c3 & 0x3f) << 18 | (c4 & 0x3f) << 12 | (c5 & 0x3f) << 6 | (c6 & 0x3f)
0903RA・イール
NGNG変な日本語になってますね。
僭越の意味が「身分や権限などを越えて、差し出がましいことをする」
だからこの場合おかしな表現でした。「不躾」であっていますかね?
>>902さん
私宛ての解答ですよね?
ありがとうございます。
これを参考に頑張ってみます。
0904デフォルトの名無しさん
NGNG0905デフォルトの名無しさん
NGNGint (*bar)(long *, ...) = (int (*)(long *, ...))foo;
0906Kusakabe Youichi
NGNG> >>901さん
> 変な日本語になってますね。
> 僭越の意味が「身分や権限などを越えて、差し出がましいことをする」
> だからこの場合おかしな表現でした。「不躾」であっていますかね?
っていうか、余計な前置きしている暇があるなら、さっさとわかりやすく質問
すればいいのでは?
0907デフォルトの名無しさん
NGNGありがとー。
0908RA・イール
NGNGこういうところって前置きいらないですか?
0909デフォルトの名無しさん
NGNG#define macro(s,...) printf(s,...)
?
0911Kusakabe Youichi
NGNG> こういうところって前置きいらないですか?
しちゃだめです。
0912デフォルトの名無しさん
NGNGgccの独自拡張なら
#define macro(format, args...) \
printf (format , ## args)
C99なら……、知らん。
0913デフォルトの名無しさん
NGNGごめんなさい、説明不足でした。
デバッグ出力のために使うのでシンボルDEBUGが定義されていない場合
コードを消したいんです。
#ifdef DEBUG
#define macro(str) puts(str)
#else
#define macro(str)
#endif
のような感じで…
0914デフォルトの名無しさん
NGNG#ifdef DEBUG
#define macro printf
#else
#define macro
#endif
0916914
NGNG0917デフォルトの名無しさん
NGNG> C99なら……、知らん。
#define macro(format, ...) \
printf(format, __VA_ARGS__)
0918RA・イール
NGNGわかりました。以後注意します。
0919デフォルトの名無しさん
NGNGありがとう、できました!
0920Kusakabe Youichi
NGNGおかげでとても面白いスレッドになりました。
最優秀スレッド賞をひろゆきからいただきました。
単行本にも掲載されるそうです。
皆さん楽しみにしていてください。
ではごきげんよう。
0921デフォルトの名無しさん
NGNG0922Kusakabe Youichi
NGNGまたクソスレ立ててやるからしっかり煽ってくれよ。
0923デフォルトの名無しさん
NGNG全然かまわないよ−。偽日下部なんか無視して、
どんどん前置き書いて−。
0924デフォルトの名無しさん
NGNG0925デフォルトの名無しさん
NGNG以下のようなコードをためしたのですが:
geho.c:
int main(void)
{
exit(2);
}
hoge.c:
int main(void)
{
int ret;
ret = system("./geho");
printf("%d\n", ret);
return 0;
}
しかし、出力は2とはならずに、512となってしまいます。
0927デフォルトの名無しさん
NGNG0928デフォルトの名無しさん
NGNGwait()システムコールで得られる値には、
下位8ビットにcore dumpしたかのフラグとシグナルの値が入ってる。
子プロセスがexit()に渡した値は上位8ビットだけ。
0929デフォルトの名無しさん
NGNGで動的に割り当てた構造体の記憶領域の解放のしかたは
free((struct age *)sage);
であってる?
0930デフォルトの名無しさん
NGNGfree(sage)でいいんじゃないの?
0931デフォルトの名無しさん
NGNGvoid*からの代入はOKだし、void*をサポートしてない処理系がエラーや警告を
出すとも思えん。
ただし、当然#include <stdlib.h>はしてるものとする。
0932デフォルトの名無しさん
NGNGほんとの次元配列ってのはどういうものか教えてください。
0933デフォルトの名無しさん
NGNGSF板かアニメ板のルパンスレにでも逝け。
0934デフォルトの名無しさん
NGNG0935デフォルトの名無しさん
NGNGインクルードも書いておくべきだ!
それぞれのヘッダには二重定義防止マクロを記述しておけばよい。
この考え方に賛成の人〜!
0936デフォルトの名無しさん
NGNG0937sage
NGNG0938Kusakabe Youichi
NGNG> それが常識なら文句ないっす。
っていうか、まず自分で確かめろって。
0939デフォルトの名無しさん
NGNG早く死ねよ〜〜
0940デフォルトの名無しさん
NGNGoff会で殺せよ
0941デフォルトの名無しさん
NGNG読解力ないね。
0942デフォルトの名無しさん
NGNG移動をお願いします。
http://pc.2ch.net/test/read.cgi/tech/1009499565/l50
0943ねね
NGNG0944デフォルトの名無しさん
NGNGsystem()
0945デフォルトの名無しさん
NGNGsystem("〜.pl")が最も簡単な手。
0946デフォルトの名無しさん
NGNGPerl5でCとの親和性が高くなったらしいから調べてみては?
0947デフォルトの名無しさん
NGNGPealってなんだ。っつーか>>942が読めねーのかこの文盲。
0948デフォルトの名無しさん
NGNGC言語なら、俺に聞け! <11>
http://pc.2ch.net/test/read.cgi/tech/1009499565/
レス数が900を超えています。1000を超えると表示できなくなるよ。