C言語なら俺に聞け! Part 75
レス数が1000を超えています。これ以上書き込みはできません。
0001v(^o^i)d
NGNG質問する前には最低限検索を。
GUIなどの標準Cではできない事の質問は使用している開発環境のスレへGo! (←ここ注目)
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへさようなら。
エラー(警告含む)が起きたのならばエラーメッセージを書きましょう。
コンパイラを探しているなら >>2-13 を。
上記を逸した場合の結果は激しく未定義だYO!
C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
各種リンクは>>3-20あたり(誰か適当に貼って)
C言語なら俺俺に聞け! Part 74
http://pc2.2ch.net/test/read.cgi/tech/1078147042/
他の過去ログはここに
http://nssearch.hp.infoseek.co.jp/clang/
0002scanf名無しさん
NGNGgcc
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/
【ライセンスや機能などに問題あり】
Microsoft 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
Intel C++ Compiler for Linux
http://developer.intel.com/software/products/compilers/clin/noncom.htm
0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNGわからない人は↓を参考に。
int x,y;
char buf[16];
fgets(buf,sizeof(buf),stdin);
if(sscanf(buf,"%d %d",&x,&y) != 2) エラー処理
0005デフォルトの名無しさん
NGNG入力行がバッファサイズより大きい場合はどうするんですか?
その例ではintだからたまたま溢れませんが。
0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNG一行全部読み込めた
else
まだ残りがある
0009デフォルトの名無しさん
NGNGしかもgets||scanfと違って素通りする分非常に悪質ですね。
0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNGその前に>>4のバグ修正をしたらどうでしょう?
0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNGしようがないですね。
0014デフォルトの名無しさん
NGNG0015デフォルトの名無しさん
NGNGくだらなくても、しようもないと答えてやれ
0016デフォルトの名無しさん
NGNG標準入力から単語二つからなる行を読み込み
辞書順で若い方を標準出力に表示しろ。
入力行の形式は"WORD1,WORD2\n"とする。
形式的におかしい行はエラーを出力しろ。
単語の長さに制限はないものとする。
入力は複数行あるものとする。
0017デフォルトの名無しさん
NGNG宿題はこちら
http://pc2.2ch.net/test/read.cgi/tech/1078157730/l50
0018デフォルトの名無しさん
NGNG関数ポインタも共用体もまじってて、defineで色々名前変えてるし
C言語1ヶ月の俺にはほとんど理解できないコードを今一生懸命解読してます。
まいる。
0019デフォルトの名無しさん
NGNGドライバでは、そんな複雑な構造体がよく出て来るけどな。
0020デフォルトの名無しさん
NGNGイメージトレーニングすればそんなの直ぐになれるよ。
0021デフォルトの名無しさん
NGNG0022デフォルトの名無しさん
NGNGその場合は解説しているページに誘導して頂けたらうれしいです。
BASICの「RIGHT$」「MID$」「LEFT$」と、
同じような動作をさせるには、
どうプログラミングしたらよいのでしょうか?
よろしくお願いします。m(_ _)m
0023デフォルトの名無しさん
NGNG多バイト文字も考慮するわけ?エンコードはどうする?
0024デフォルトの名無しさん
NGNGデフォルトは自動選別でお願いします。
IEの設定で選択できるくらいの種類だけでかまいません。
0025デフォルトの名無しさん
NGNG0026デフォルトの名無しさん
NGNGなに?それ
0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNG普通です。
0029デフォルトの名無しさん
NGNG0031デフォルトの名無しさん
NGNG003227
NGNGうー感じてきます、読んできます\n;
0033デフォルトの名無しさん
NGNG>はじめに
>C言語は、現在広く使用されている言語である。
しかし、Cは、より良い言語を開発しようという目的の下に開発された言語ではなく、
UNIXを開発するために、いわば「いきあたりばったり」で開発された言語である。
ゆえに、ダーティな構文や、コンパイラの実装を容易にするために手を抜いた部分が存在する。
>本文では、そのような「Cの暗部」のうち、「配列とポインタ」について述べる。
>対象読者は、Cをそれなりに習得しており、かつ、以下のような疑問を感じる人である。
>・Cの宣言では、[] は* よりも優先順位が高い。 ゆえに、char *s[10]; という宣言は、
「char へのポインタの配列」を意味する ---逆じゃないか?
いきなりここで躓きました・・・orz
0034デフォルトの名無しさん
NGNG実際に動かしてみれば分かるよ
0035デフォルトの名無しさん
NGNGコンパイルでアセンブラソースを吐かせてどんな動きしてるかとかな
0036デフォルトの名無しさん
NGNG>defineで色々名前変えてるし
この一文から、何か良からぬ事をやってそうな印象を受けるのはオレだけか?
0037デフォルトの名無しさん
NGNG>BASICの「RIGHT$」「MID$」「LEFT$」と、
>同じような動作をさせるには、
>どうプログラミングしたらよいのでしょうか?
1.それぞれの関数がどの様な処理を行っているのか?
を紙などに自分が理解できる言語(日本人の場合はおそらく日本語)で書く。
2.1で書いたものをCに翻訳する。
0038デフォルトの名無しさん
NGNGいや、単純に #define を見慣れていないだけだろ。
stdin だって #define で色々名前変えていると言えなくもない。
003918
NGNGまぁそれなりの理由があるんだろうけど、今の俺にはその理由とやらは理解出来ない。
0040デフォルトの名無しさん
NGNGそこまでいうのなら、ソースをうpしてみな。
皆がお前と同じ意見かどうかが分かる。
004118
NGNG今までJavaを多少やってたけど、Cの方が全然難しいと思うから
その難解さが上記のような気持ちを、錯覚か?を起こさせてるのかもしれない。
004218
NGNG後ヘッダファイルが8つ程と、Cファイルが30個程有るので大きすぎるし。
0043デフォルトの名無しさん
NGNG0044デフォルトの名無しさん
NGNG>言語を使いこなす事が出来たら、大きなパワーを手に入れることが出来る
>Cの方が全然難しいと思うから
別に難しくないし、大きなパワーも手に入らないと思うよ。
0045デフォルトの名無しさん
NGNG0046デフォルトの名無しさん
NGNG構造体のメンバ12個全て構造体で、その中には更に構造体の配列が入ってるものが多数。
全体で6KBほどだけど、どこにどうStubが入るのやらぱっと見じゃもう、全然わからねぇよ。
こんなもん、そのままバイナリファイルに落とすんだもんなぁ…
0047デフォルトの名無しさん
NGNGこの式の関数の呼び出し順序は規定されていないようですが、
f() && g()
この式の場合はどちらの関数が先に呼び出されるのでしょうか?
関数の呼び出しも&&演算子のの評価順と同じく左から呼び出されるのでしょうか?
それとも関数の呼び出しはコンパイラ依存で戻り値の評価が左からなのでしょうか?
0048デフォルトの名無しさん
NGNGf() が先に呼ばれる。
f() が 0(偽)を返せばその式の真偽が決定されるため、
g() は評価されない。
これをショートサーキットという。
0050デフォルトの名無しさん
NGNGおまいは本よりも2chを信じるのか?
それは阿呆のすることだぞ。
自分でちゃんと規格なりコンパイルしてみるなりして
確認する癖をつけたほうがいいぞ。
0051デフォルトの名無しさん
NGNG0052デフォルトの名無しさん
NGNG0053デフォルトの名無しさん
NGNG0054デフォルトの名無しさん
NGNG#define char_ int
#define int_ char
char* main( void ){
char_ char__ = (int_)'\0';
int_ int__ = (char_)char__;
int__ ^= 1;
printf(char__?"%d%d%d%d":"%#X+%#X=%#x",char__,int__,char__+int__);
}
005547
NGNG0056デフォルトの名無しさん
NGNG0057デフォルトの名無しさん
NGNG0058デフォルトの名無しさん
NGNG0059デフォルトの名無しさん
NGNGいや >>48 で合ってるよ、規格上。
0060デフォルトの名無しさん
NGNG**********************
**********************
**********main()
{putchar("*********"[sizeof("*****")]);}
なかなかいいプログラムができました。
0061デフォルトの名無しさん
NGNG起動時にDOS窓をアクティブにしないようにするにはどうすりゃいいの?
さっきからググってるけど関係ないサイトばっかりだ…欝
0062デフォルトの名無しさん
NGNG0064デフォルトの名無しさん
NGNGこれ?
bcc32 -laa
006561
NGNG外部アプリから自作アプリ(CUI)を起動するとき、コマンドラインで
-hoge が渡されたらDOS窓を表示するけど、外部アプリのウィンドウフォーカスを持っていかれないようにする
っていう処理をしたいんだ。
0066デフォルトの名無しさん
NGNG0067デフォルトの名無しさん
NGNGCreateProcessする時に、ウインドウを表示しないようにすればいいかと。
0069デフォルトの名無しさん
NGNG007061
NGNG○外部アプリの
007161
NGNGそれではどっかへ逝ってきます。
ありがとうございました。
0072デフォルトの名無しさん
NGNGウィンでお願いします
0073デフォルトの名無しさん
NGNGこちらでどうぞ
http://pc2.2ch.net/test/read.cgi/tech/1077470361/l50
0074デフォルトの名無しさん
NGNG{
(***********************printf)("hello world\n");
return 0;
}
なかなかいいプログラムができました。
0075デフォルトの名無しさん
NGNG0076デフォルトの名無しさん
NGNGVisualStudioをエディタとして使うことならできるんでないかい?
詳しくはスレ違いなどでVCスレなどでどうぞ。
0077デフォルトの名無しさん
NGNGalias VC=vi
0078デフォルトの名無しさん
NGNG藻前ら優しすぎ
>>75
スレ違い
で十分だろ?
0079デフォルトの名無しさん
NGNGviにしろ
0080デフォルトの名無しさん
NGNG0081デフォルトの名無しさん
NGNG((printf+1)-1)("hello world\n");
は規格上NGでいいんだよね?
配列の一個オーバーは可能だけれども…これ、配列じゃないし
0082デフォルトの名無しさん
NGNGそれ以前に、関数ポインタに加減算をすることは出来ない。
関数の大きさっていくつか分かるか?
0084デフォルトの名無しさん
NGNG008581
NGNG「関数へのポインタの大きさ」ならば意味はわかる
関数ポインタに加減算することが出来ないとすると
void (*arr[10])(void); みたいな
関数ポインタの配列は作れないことになる
なぜならarr[i]は*(arr+i)と等価だから
ってことはやっぱり関数ポインタに加減算は可能になる
ISO/IEC 9899:1999
6.3.2.3の8 関数ポインタ自体の説明
6.5.6の8と9 ポインタの加算と減算の説明
この二つを読んでみた結果そう解釈したんだけど…ちがう?
008681
NGNG6.3.2.3の8
A pointer to a function of one type may be converted to a pointer to a function of another
type and back again; the result shall compare equal to the original pointer. If a converted
pointer is used to call a function whose type is not compatible with the pointed-to type,
the behavior is undefined.
6.5.6の8抜粋
If the pointer operand points to an element of
an array object, and the array is large enough, the result points to an element offset from
the original element such that the difference of the subscripts of the resulting and original
array elements equals the integer expression.
この解釈、ちがう?(英語苦手で自信なし)
0087デフォルトの名無しさん
NGNGただし、次にどの関数が来るかは完全に処理系依存になってしまうが。
008881
NGNGこれ自体が処理系依存のような気がするんですが…
どこに書かれているか教えていただけますか?
0089デフォルトの名無しさん
NGNGネタをネタと(ry
0090デフォルトの名無しさん
NGNGここのC三級とるにはどのくらいできればいいのでしょうか?
0091デフォルトの名無しさん
NGNGここの3級のとこ見て、知らない用語があったらあきらめろ。
あと歴史もいるぞ。
0092デフォルトの名無しさん
NGNGこれ試験に出るからよく覚えとけよ
0093デフォルトの名無しさん
NGNG2級の範囲だし
0094デフォルトの名無しさん
NGNGと日下部先生がおっしゃってましたよ。
0095デフォルトの名無しさん
NGNGを持っている人っています?
一部では糞本って言われているけど・・
0096デフォルトの名無しさん
NGNG恥ずかしながら原書を読んだことはないけど、
日本語訳の『プログラミング言語C 第2版』は糞で間違いない。
訳本の改訂版がだいぶ前にでたみたいだけど、そっちは知らん。
聞くところによるとそっちも糞らしい。
0097デフォルトの名無しさん
NGNGもうさすがに古いだろうね・・・
0098デフォルトの名無しさん
NGNG0099デフォルトの名無しさん
NGNGできる
0100デフォルトの名無しさん
NGNG何がいけないのかできません
_| ̄|○
0101デフォルトの名無しさん
NGNG0102デフォルトの名無しさん
NGNG0103デフォルトの名無しさん
NGNGしないしない。とっととコード晒せ。
0104デフォルトの名無しさん
NGNGvoid yourfunc(struct youst st){};
0105デフォルトの名無しさん
NGNGなんなに長くはないですが
0106デフォルトの名無しさん
NGNGはmainの外に書け
0107デフォルトの名無しさん
NGNG問題が起こったらその問題を検証する最小限の別のサンプル作る習慣をつけるべし。
ここで質問するかどうかに関係なくね。
0108デフォルトの名無しさん
NGNGtypedef struct
{
int n1;
int n2;
}N;
func(abc.n1,abc.n2)
{
//省略
}
int main()
{
N abc;
abc.n1=1;
abc.n2=2;
int BB;
BB=func(abc.n1,abc.n2);
}
こんな感じです。
0109デフォルトの名無しさん
NGNG0110デフォルトの名無しさん
NGNG/*typedef struct
{
int n1;
int n2;
}N;*/
int func(int n1,int n2)
{
int BB;
BB=n1+n2;
return BB;
}
int main()
{
/*N abc;*/
int n1=1;
int n2=2;
int BB;
BB=func(n1,n2);
printf("%d\n",BB);
}
これが構造体を使う前のものです。
この状態ならばエラーは出ません。
0111デフォルトの名無しさん
NGNGのNはintに相当し、
abcはn1に相当する
0112デフォルトの名無しさん
NGNGところで
int func(int n1,int n2)
{
int BB;
BB=n1+n2;
return BB;
}
を
int func(int nnnnn,int mmmmm)
{
int BB;
BB=nnnnn+mmmmm;
return BB;
}
に変えてもちゃんと動くことは理解してる?
0113デフォルトの名無しさん
NGNG↓これじゃだめなの?
typedef struct
{
int n1;
int n2;
}N;
func(int n1, int n2)
{
int BB;
BB=n1+n2;
return BB;
}
int main()
{
N abc;
abc.n1=1;
abc.n2=2;
int BB;
BB=func(abc.n1,abc.n2);
}
0114デフォルトの名無しさん
NGNGなるほど、知りませんでした。つまり型があってさえいれば変数名は変えてもいいのですね。
なんか解決できそうです。
>>113さん
ここでは最低限のものしかないてないので分かりずらかったですが、func内で
N abc意外にN defや N ghiと複数使う予定なのでこれだと
変数名が重なっちゃいます
もう一度頑張ってみます
0115デフォルトの名無しさん
NGNGint main()
(プ
0116デフォルトの名無しさん
NGNGどこに重なるんだろう?
問題ないと思うが。
typedef struct
{
int n1;
int n2;
}N;
func(int n1, int n2)
{
int BB;
BB=n1+n2;
return BB;
}
int main()
{
N abc, def, ghi;
abc.n1=1;
abc.n2=2;
def.n1=3;
def.n2=4;
ghi.n1=5;
ghi.n2=6;
int BB, CC, DD;
BB=func(abc.n1,abc.n2);
CC=func(def.n1,def.n2);
DD=func(ghi.n1,ghi.n2);
}
0117デフォルトの名無しさん
NGNGvoid main()
だろ?
0118デフォルトの名無しさん
NGNG0119デフォルトの名無しさん
NGNGでも受けさせられたんだろ?
0120デフォルトの名無しさん
NGNGそれ以前に、こんな基本的な文法の質問がでるってことは、
参考にしている本にそれが出てないってことでしょ?
その本の名前をまず書かせたほうが今後のためだぞ。
0121デフォルトの名無しさん
NGNG{
N def, ghi;
int BB;
BB=abc.n1+abc.n2;
return BB;
}
abc.n1=1;
abc.n2=2;
BB=func(abc);
0122デフォルトの名無しさん
NGNGいや、それは学校の方針で受けることに決まってたので...。
合格率は前年度に比べて2倍にアップしましたよ!
0123デフォルトの名無しさん
NGNG> abc.n1=1;
> abc.n2=2;
> def.n1=3;
> def.n2=4;
> ghi.n1=5;
> ghi.n2=6;
常識的に、以下のように書く。
abc = {.n1=1, .n2=2};
def = {.n1=3, .n2=4};
ghi = {.n1=5, .n2=6};
格段に見やすい!
0124デフォルトの名無しさん
NGNGまた、どうせ関数に渡すためだけにやってるんだったら、
わざわざ、
abc.n1=1;
abc.n2=2;
def.n1=3;
def.n2=4;
ghi.n1=5;
ghi.n2=6;
func(abc.n1,abc.n2);
func(def.n1,def.n2);
func(ghi.n1,ghi.n2);
などと書くのはまぬけ。
ふつうのまっとうなCプログラマーなら以下のように書く。
func((N){.n1=1, .n2=2});
func((N){.n1=3, .n2=4});
func((N){.n1=5, .n2=6});
おまえられヴぇるひくすぎ!
0125デフォルトの名無しさん
NGNG「仮引数」と「実引数」という言葉ぐらい覚えろ!
あと、おまえの参考にした本の名前を言え!
0126デフォルトの名無しさん
NGNGその構文はきもすぎて嫌
0127デフォルトの名無しさん
NGNGいいえ。常識的にはこう書きます。
おまえがダメすぎなだけ。
0128デフォルトの名無しさん
NGNG0129デフォルトの名無しさん
NGNG0130デフォルトの名無しさん
NGNGいや、変数に入れる必要ないだろ?
関数に渡すだけなら。
0131128
NGNGBB=func(1,2);
CC=func(3,4);
DD=func(5,6);
0132128
NGNGうん。
0133デフォルトの名無しさん
NGNG「はじめたばかり」は何の言い訳にもなりません。
はじめたばかりのひとも10年やってるひとも使う関数は同じです。
また、質問の態度に関しても同じものが適用されます。
で、まずオマエの参考にしている書籍やWebの名前を書け!
そしたらおしえてやる。
0134デフォルトの名無しさん
NGNGstdin,stdoutをfreopenしてprintfやscanfを使う。
0135デフォルトの名無しさん
NGNG0136デフォルトの名無しさん
NGNGそのやり方は初期化では使えても代入では使えない。
0137デフォルトの名無しさん
NGNGそうなんだけど、初期化でいいと思ったんで。
0138デフォルトの名無しさん
NGNG構造体もちゃんと説明していない本読んでるのか?
0139デフォルトの名無しさん
NGNG0140デフォルトの名無しさん
NGNG営業に必死なんでしょうかね。
0141デフォルトの名無しさん
NGNG道順 なんてありますか?
やらせたい処理の順序、使う手法、必要になるであろう文等、概要は
頭では分かっていますが、実際書こうとするとくだらない細かい所、
データのやりとりのやり方等で頭が混乱することが多いです。
(今日も配列からデータを取り出して処理し、再配列するプログラムを
追加するだけで一日使ってしまいました・・。
ある程度必要になる文章を憶えるしかないんだろうか、と思ってますが、
他の人はどうなんでしょうか。
0142デフォルトの名無しさん
NGNG0143デフォルトの名無しさん
NGNGみんな最初はそうだよ。
例えば初めて英語を勉強するところを想像してみな。
最初はくだらない一言を話すのにも苦労するだろうけど、上達すると
もっと簡単に、もっと複雑な会話が出来るでしょ。
だから、ひたすら書いて読むこと。
読む方に関しては、お気に入りのプログラムを見つけて、それをゆっくり
読み進めるのが良いと思う。
0144デフォルトの名無しさん
NGNGそうでもない。
scanfを使っているような本で勉強するからそうなるだけ。
0145デフォルトの名無しさん
NGNG営業ってことは、どこかの出版社の人間?
0146デフォルトの名無しさん
NGNGvoid main(void)だろうがint main()だろうがscanfだろうがたいした問題ではない
0148デフォルトの名無しさん
NGNGvoid main(void)やら int main()やら
scanf やら if(n>0)とかつまらんところにケチつけたがるんだよな。
叩きたいけど、それだけの知識しかないから。
0149デフォルトの名無しさん
NGNGその手の話題は過去ログに腐るほどあるし。
0150デフォルトの名無しさん
NGNG奥が深い症候群 だな
0151デフォルトの名無しさん
NGNGmemmoveとmemcpyですが、memmove
だけで事足りると思うのですが、となると
memcpyの存在意義はなんなのでしょう?
また、文字列用にstrcpy等の関数がありますが
これもmem〜系関数で十分間に合うと
思うのですが。。。
0152デフォルトの名無しさん
NGNGあなたの存在意義も謎ですね
0153デフォルトの名無しさん
NGNGstrcpy の代わりに memcpy を使うためには
文字列の長さ+1を先に計算しておかないといけない。
0154デフォルトの名無しさん
NGNGmemmove(d,s,n);
まずsから空いているメモリtにコピーしてから、tをdにコピーするので遅い。
memcpy(d,s,n);
いきなりsからdにコピーするので速い。
strcpy(d,s);
memcpyのnの代わりに、sの0x00を検出してからdにコピーする。
0155151
NGNGレスありがとうございます。
すごくよくわかりました。一長一短というか
ちゃんと用途がある(特化してる)のですね。
ところで今VC6.0を使っているのですが、
memcpyの実装(memcpy.c)を見てみると、x86でないときは
RtlMoveMemoryというAPIを使っているのですが、
x86では1バイトずつしこしこコピっているようです。
どう考えてもAPIの方が最適化されていて早いような
気がするのですがなんででしょう。。。
0156デフォルトの名無しさん
NGNG> 空いているメモリtにコピーしてから、
本当か?
場合によって前からコピーするか後ろからコピーするか切り替えるように実装しないか?
0157デフォルトの名無しさん
NGNGソース見る限り確かにそうだな。
しかし、x86の場合ならストリング転送に最適化されるはず。
確認はしてないが。
0158デフォルトの名無しさん
NGNG0159151=155
NGNGその上x86のリリースビルドのときにはレジスタで処理するように極度に最適化
されったぽいアセンブラコード(memset.asm)とリンクするようになっている
みたいなのですが、デバッグビルドではAPI使わずに1バイトずつコピって、
リリースビルドではAPIどころか自身(C)のライブラリも使ってないって
どういうことなんですかネ。。。
0160デフォルトの名無しさん
NGNGMicrosoft Corporationに聞けば。
0161デフォルトの名無しさん
NGNGネタじゃなかったのか
0162デフォルトの名無しさん
NGNG0163デフォルトの名無しさん
NGNG0164デフォルトの名無しさん
NGNGつか速度が要求されないのにC使ってる奴は(ry
0165デフォルトの名無しさん
NGNG> これもmem〜系関数で十分間に合うと
> 思うのですが。。。
0166デフォルトの名無しさん
NGNG速度を要求されないときは何使えばいいですか?
0167デフォルトの名無しさん
NGNGC#に決まってるだろ。
0168デフォルトの名無しさん
NGNGWin以外の環境で使えるのあったっけ?
0169デフォルトの名無しさん
NGNGWin以外に使いものになる環境あったっけ?
0170デフォルトの名無しさん
NGNGint func(int *z)
{
*z=55;
return 0;
}
main()
{
int a;
a=5;
func(&a);
printf("%d",a);
return 0;
}
55と表示したいのですが・・・
0171デフォルトの名無しさん
NGNG0172デフォルトの名無しさん
NGNGちゃんと省略せずに「何も表示されない」と書けや
0173>>170
NGNG0174デフォルトの名無しさん
NGNG{
char buf[256];
int a;
a=5;
func(&a);
printf("%d\n",a);
gets(buf);
return 0;
}
0175デフォルトの名無しさん
NGNG0176デフォルトの名無しさん
NGNGBIOSを呼ぶ。スレ違いなので詳しい情報は割愛。
0177デフォルトの名無しさん
NGNGやや、レスサンクスです。
詳しく載ってるようなサイトとか無いですかね?
0178デフォルトの名無しさん
NGNGint86x とか REGS とかでググッてみたら?
0179デフォルトの名無しさん
NGNGライブラー中で、自己変更コードかいてるのはあそこだけだった。
0180デフォルトの名無しさん
NGNG0181デフォルトの名無しさん
NGNGスレ違いと指摘されつつ、何故更に問う?
0182デフォルトの名無しさん
NGNGそんな人間はもともと見込みがないです。
質問するだけ無駄。
0183デフォルトの名無しさん
NGNG推薦書スレと日下部スレの他にもいたんですね-;)
0184デフォルトの名無しさん
NGNG0185デフォルトの名無しさん
NGNGWinが動く環境ってPCだけじゃん
0186デフォルトの名無しさん
NGNG0187デフォルトの名無しさん
NGNG今日も二回使っちゃったYO
0188デフォルトの名無しさん
NGNG0189デフォルトの名無しさん
NGNG一回20円じゃなかったっけ?
0190デフォルトの名無しさん
NGNG0191デフォルトの名無しさん
NGNG}は?
0192デフォルトの名無しさん
NGNG0193デフォルトの名無しさん
NGNG0194デフォルトの名無しさん
NGNGそうか?Cが最初の言語だったら質問する人もいるんじゃないか?
おまえの一番最初の言語を覚えたときはどうだったんだ?
0195デフォルトの名無しさん
NGNGいつまでもつまらん話を続けてんじゃねえよ
0196デフォルトの名無しさん
NGNGようするに、194は「初心者だからしかたない」と思い込んでいる馬鹿。
「初心者のうちはscanfやgetsを使ってもよい」と思い込んでいる馬鹿。
実際には、初心者にこそすすめてはいけないからこそ問題になっている。
熟練者なら問題点も把握しているから使うことができるか、熟練者は使う用事がない。
つまり、だれも使う用事がないわけだ。
0197デフォルトの名無しさん
NGNGださい。
いまどきWindowsは、プロンプト出したら、
vi .cshrcして
set nobeep
から始まるのがふつう。
0198デフォルトの名無しさん
NGNGこわがりすぎー
(特定の単語をさけているだけでは? ^^;)
0200デフォルトの名無しさん
NGNG{
int i ; char c ;
} Kouzou ;
Kouzou GetKouzou ( void )
{
Kouzou kouzou ;
kouzou.i = 1 ; kouzou.c = '1' ;
return kouzou ;
}
int main ( void )
{
printf ( "%d\n" , GetKouzou().i ) ;
return 0 ;
}
VC6なんですが、「'.i':左側が構造体、共用体でない」とでてしまいます。
関数を書いたあとに.を押すとメンバーが表示される(VCの機能)ので、
正しい書き方だと思ったのですが。動かせるようにお願いします。
0201デフォルトの名無しさん
NGNGVC6(SP5)でコンパイルできたぞ。
他の部分が間違っているんだろう。
0202デフォルトの名無しさん
NGNGこの書き方やめとけ
0203200
NGNGだから別の所に問題があるか調べていた所、元のソースではファイル分割していて
プロトタイプ宣言が無かったので通らなかったようです。すいません。
0205デフォルトの名無しさん
NGNG> そんなこと言ってないし
ふふ..ごまかそうとしてもだめです。
0206デフォルトの名無しさん
NGNGこの書き方やめとけ。なんで括弧の内側に空白あける?
せっかくちょうどよく接するように括弧をデザインしたフォントデザイナーに申し訳ないとおもわないのか?
> typedef struct
> {
> int i ; char c ;
> } Kouzou ;
なんで、1行に2文書くようなせこい真似してるくせに、
「{」だけで独立した行にするんだ? おまえアホか?
ちゃんと書けよ。
> Kouzou kouzou ;
> kouzou.i = 1 ; kouzou.c = '1' ;
ここも1行に2文わざわざ書くし...。だったら複合定数で初期化しろよ。ぼけ
あと、宣言文をブロックの先頭にまとめて書くなら、それと最初の実行文の間には
1つ空行あけろよ ぼけ。
0207デフォルトの名無しさん
NGNGreturn 0 ;
函数名と括弧の間に空白あけるなよ。ぼけ。よみにくいぞ。
0208デフォルトの名無しさん
NGNGぼけ、ぼけ言うだけより、
書いたやつに「どんな本を参考にして勉強したらこんなひどい書き方になった」かを
質問しろよ。答えてもらえれば、そのほうがよほど有益な情報だ。
0209デフォルトの名無しさん
NGNGお前うざいって。
いいかげん消えて。
0210デフォルトの名無しさん
NGNGよく見かける人なんですか?
0211200
NGNG>フォントデザイナーに申し訳ないとおもわないのか?
>「どんな本を参考にして勉強したらこんなひどい書き方になった」か
int kansuuA(BvoidC)D;
前にスペースを空けろといわれた事があって、
なんでAとDだけ?スペースを空けるのか分からなかったので
B、Cの方も空けていたのですが、A、Dだけ空けるのが正しいのですか?
0212デフォルトの名無しさん
NGNGどこも開けないのが普通。
int kansuu(void);
0213デフォルトの名無しさん
NGNGint
kansuu(void)
{
}
0214200
NGNGint hensuu(int i,char *str,char c);
voidの場合は要らないのですね。ではこれの場合はどう空けるのでしょう。
>>213
doxygenを使うとき引数にコメントを付けるために、引数の方の行を
変える事はあったのですが、戻り値の方にもやるのですね。
0215デフォルトの名無しさん
NGNGべつにvoidの場合にかぎらず、括弧の内側は絶対にあけないんだよ。
あと、カンマの後ろ詰めるなよ ぼけ。
0216デフォルトの名無しさん
NGNGいや、ちっとも「ふつう」ではない。
そういう流儀もある、程度。
だが、括弧の内側に空白あけたり、カンマの後ろを詰めたりするのは「流儀」でさえないのだ。
0217デフォルトの名無しさん
NGNGなぜバックスラッシュを全角にするんだ?
0218デフォルトの名無しさん
NGNGたしかに「流儀」程度だな。
tgrind は、函数名が行頭からはじめてったほうが (つまり型名で改行したほうが)、
つごうよかったのだが、あれは、そういう流儀の人がつくったのかな。
0219200
NGNGこれは>>206さんが言ったフォントデザイナー説ですかね。
>カンマの後ろ詰めるなよ
左側だけ空ける定義はどこにあるのでしょう。
ポインタは char *p と変数側にくっつけますが、
これは char c , *p とあったとき、まずcharであってその後に、
普通のcharであるか、ポインタであるかがあるから、そうなるみたいですが。
0221デフォルトの名無しさん
NGNG何を言ってるんだ??
誰もポインタの話はしてないよ。
『 カ ン マ の 後 ろ に ス ペ ー ス を 入 れ ろ 』と言っているのだよ>>214は。
0222デフォルトの名無しさん
NGNG0223デフォルトの名無しさん
NGNGっていうか、いっしょに定義するなよ。おまえみたいなボケが勘違いするから、
わざわざ1行で書くな。
もっと勘違いしやすいのは char* i, j; とかかいて、iとjが同じ型の変数だとおもっちゃうやつ。
とにかくカンマの後ろ詰めるな。
0224デフォルトの名無しさん
NGNGカンマの前あけるなよ。ぼけ。
0225デフォルトの名無しさん
NGNGその前に、おまえが今までに参考にした書籍の名前を言え。
もし、複数読んでいるんだったら、一番影響を受けたやつか、最初に読んだやつだけでいいから。
0226デフォルトの名無しさん
NGNG文句つけてる暇があったら、自分で書式整形ツールでもつくれよ。
その方がよっぽど世の中の為だ。
0227デフォルトの名無しさん
NGNG0228200
NGNG理由は何なのでしょう。()の時みたいな理由があればよいのですが。
>>225
書籍は複数読んだのですが、特にスペースは気にしないで
通ればよいと思い詰めて書いていました。
よく読んだ本でエイ・エス・ティシステム・アカデミが出している
C PROGRAMING I と言う本があるのですが、見てみると
void main( void )
{
}
scanf( "%d" , &num ) ;
とかとなっている所もありました。
void mainに括弧の内側明け、コンマの前明けにscanf・・
全てそろってますね。
ただ誤字だらけの本なのでなんともいえませんが。
0229デフォルトの名無しさん
NGNG>理由は何なのでしょう。()の時みたいな理由があればよいのですが。
常識。
括弧の前後とかカンマの前にスペース入れるのは
履歴書を色鉛筆で書くのと同じぐらい非常識。
0230デフォルトの名無しさん
NGNGプロポーショナルフォントで表示するような時以外は、
どうでも良いんじゃない?<カンマの後のスペース
必要ならいつでも変換出来るし。
0231200
NGNGスペースのつけ方についていろいろ調べていたのですがみつからず、
演算子の優先順位で○○ではないか、権威ある人が書いた書き方が
そうでそうなったとかいろいろ想像していたのですが、
そういう風に言い切ってもらえてすっきりしました。
0232デフォルトの名無しさん
NGNGというより、英文一般の風習だな。
0235デフォルトの名無しさん
NGNG0236デフォルトの名無しさん
NGNG0237デフォルトの名無しさん
NGNGバーカ<・A・>バーカ
0238デフォルトの名無しさん
NGNG0239デフォルトの名無しさん
NGNGだって、ここでほざいてる香具師みんな
似非プログラマですからね。
0240デフォルトの名無しさん
NGNG0241デフォルトの名無しさん
NGNG0242デフォルトの名無しさん
NGNGこれから私はC言語勉強するつもりなんですけど、初っ端のコンパイルが
旨く出来ません。原因わかる人がいたら教えて頂たいんです。
具体的には「インクルードファイル’stdio.h’をオープンできない。」
と表示されるんです。エラーはこれだけだと思われます。1errorsinCompile
と出てるので。よろしくお願いします。
0243デフォルトの名無しさん
NGNGhttp://pc2.2ch.net/test/read.cgi/tech/1078325423/650
0244デフォルトの名無しさん
NGNGコンパイラは何?
0245デフォルトの名無しさん
NGNGそうでなければ、ファイルを見つけられないことが考えられる。
必要であれば、インクルードファイルが置いてあるディレクトリを
コンパイラに知らせる必要がある。
ttp://www.google.com/search?hl=ja&ie=UTF-8&oe=UTF-8&q=%22C%E8%A8%80%E8%AA%9E%22+%E3%82%A4%E3%83%B3%E3%82%AF%E3%83%AB%E3%83%BC%E3%83%89+%E3%83%91%E3%82%B9%E3%82%92%E9%80%9A%E3%81%99&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
0246デフォルトの名無しさん
NGNGもう答えてるじゃん
http://pc2.2ch.net/test/read.cgi/tech/1078325423/653
0247デフォルトの名無しさん
NGNGbcc32というのかな?
245さん>ディレクトリの指定は出来てると思います。
指定できてないときはファイルが見つからないとでてるので。
0248デフォルトの名無しさん
NGNG0249デフォルトの名無しさん
NGNG0250デフォルトの名無しさん
NGNG特定の環境の話題はスレ違い
0251デフォルトの名無しさん
NGNGスレ違いなのでこっちに移動しましょう。
http://pc2.2ch.net/test/read.cgi/tech/1054390397/l50
0252デフォルトの名無しさん
NGNGコンパイラの環境設定
http://www.mgs2.com/online.lesson/language.c/02.html
0253デフォルトの名無しさん
NGNG氏ね
0254デフォルトの名無しさん
NGNGその初心者を叩く自称上級者はもっとウザイ
0255デフォルトの名無しさん
NGNG初心者を叩く奴なんていたか?
0256デフォルトの名無しさん
NGNGディレクトリの設定とかパスとかしてるのに
コンパイルできません。何故だー
252はメモ町ではないエディタの使用なんですね。
考えられる原因をどなたかお教えください。お願いします
欝だ・・・。
0257デフォルトの名無しさん
NGNGbcc32.cfg
ilink32.cfg
0258デフォルトの名無しさん
NGNGエラーメッセージ全部見なきゃわかんない。
マルチイクナイ。
0259デフォルトの名無しさん
NGNGスレ違い
0260デフォルトの名無しさん
NGNGエラーは以下の文章です。
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
sample1.c:
エラー E2209 sample1.c 1: インクルードファイル 'stdio.h' をオープンできない
警告 W8065 sample1.c 4: プロトタイプ宣言のない関数 'printf' の呼び出し(関数 mai
)
*** 1 errors in Compile ***
0261デフォルトの名無しさん
NGNGmain(void)
void main()
void main(void)
コレどう違うの?何か意味あるの?
0262デフォルトの名無しさん
NGNGmain(void) 戻り値の型 int で引数なし。
void main() 戻り値なしで、引数は不定。C では文法違反。
void main(void) 戻り値なしで、引数はなし。C では文法違反。
0263デフォルトの名無しさん
NGNG>>252
>>257
0264デフォルトの名無しさん
NGNGなんでvoidなんだよ ぼけ
0265デフォルトの名無しさん
NGNGいいや。型宣言を省略した関数が「int」を返す保証はない。
標準規格でそう決まってる。それぐらいおぼえとけぼけ。
(89年にはそういうのがあったが、あれは過去との互換性のため)
0266デフォルトの名無しさん
NGNGいいえ。してません。
0267デフォルトの名無しさん
NGNG0268デフォルトの名無しさん
NGNGさっさと捨てて、まともな本買えよ。
0269デフォルトの名無しさん
NGNG0270269
NGNG0271デフォルトの名無しさん
NGNGint a=10, b=20;
a=-1;
b=1;
でprintf("%d\n", a); すると、
答えが「9」になる処理系もある。(いまどき絶対残ってないですが。いまの標準規格には適合しないので)
そんな処理系で、
int a = 10, b = 20;
a = -1;
b = 1;
だとprintf("%d\n", a); で「-1」になる。
0272デフォルトの名無しさん
NGNGC99です。常識。
0273デフォルトの名無しさん
NGNG少なくとも規格上は認められません。
void にしたせいで何が起こっても文句は言えません。
0274デフォルトの名無しさん
NGNGbは何のためにあるの?
0275デフォルトの名無しさん
NGNGそれは、いまの「-=」演算子が、まだ木下藤吉郎だったころのなごり。
いまどき関係ない。
0276デフォルトの名無しさん
NGNG書名からしてミススペルしてるような本は買うなよ。
0277デフォルトの名無しさん
NGNG0278デフォルトの名無しさん
NGNGいいえ。フランスでもドイツでもそうですよ。
0279デフォルトの名無しさん
NGNG0280デフォルトの名無しさん
NGNGたしかに常識だわな。
つまり231が読んだその本は、そんな常識もわかってないような著者が書いたってことでOK?
0281デフォルトの名無しさん
NGNG実際には1個ではだめなので、よいこは真似しないように。(本気にするやつがいるかもしれないので)
0282デフォルトの名無しさん
NGNG0283デフォルトの名無しさん
NGNGkouzou. i
0284デフォルトの名無しさん
NGNGANSI C を基にした国際規格 ISO C や日本規格 JIS C には従ってもらおう!
0285デフォルトの名無しさん
NGNGできたファイルをコンパイルするためにMS−DOSを開いて A>*****.c と入力するそうですが、
そのMS−DOSをどうやって開くのでしょうか
関係あるかどうかわかりませんが、windows2000です
0286デフォルトの名無しさん
NGNG今後もCとは関係ない疑問がたくさん出てくるだろうが
わからないことが出てきたら、まず
http://www.google.co.jp/
に聞け。
0287デフォルトの名無しさん
NGNGPC98エミュレータをインストールして、MS-DOSをインストールする。
0288デフォルトの名無しさん
NGNG標準規格に適合しないから残ってないって? をいをい・・・
0289デフォルトの名無しさん
NGNGアメリカ製の処理系を使う場合は参考にせざるをえまい
ただし、こういうところで ANSI, ANSI と喚いている香具師の
大部分は ANSI の規格票なんか持ってない
何ページの何行目? って聞けば判別できる
0290デフォルトの名無しさん
NGNG聞いた方すら持っていないから適当に答えてもいいんだけどね。
0291デフォルトの名無しさん
NGNG【yahoo!チャット女神】 a_ranransilva_a 20030513(美人,スレンダー巨乳)[XviD].avi
こんなのしかなかったよ。落としたけど。
0292デフォルトの名無しさん
NGNGC++の14882のPDFみたいにどこかに落ちてないかな
0293デフォルトの名無しさん
NGNGじゃあ残ってるとでも? ;-)
私がその手のコンパイラーを最後に見かけたのは1983年のことですので、
もう20年以上前のことです。
0294デフォルトの名無しさん
NGNGそれは89年の話。(15年前!)
いまのISOのはANSIを元にしてなどいない。
0295デフォルトの名無しさん
NGNGそんなものはありません。
0296デフォルトの名無しさん
NGNGいまどきのWindowsはそんなことしない。> DOSプロンプト
ふつうは、
スタートメニューから、[すべてのプログラム]->[Windows Services for UNIX]->[C Shell]
もしくは[Korn Shell] だ。
0297デフォルトの名無しさん
NGNG論点を逸らそうったってそうはイカのキンタマ
規格に合致しないことを「絶対に現存しない」と断言する根拠とした
アフォ発言は消えない (削除依頼しても無駄だろう)
0298デフォルトの名無しさん
NGNG> じゃあ残ってるとでも? ;-)
残ってるよ。
20年前に開発した機器の開発環境として動態保存してる。
「今時まず使われていないだろう」ぐらいにしとき。
世の中は、あんたの想像力をはるかに超えてるから、「絶対○○」なんて軽軽しく使うと「井の中の○○」と思われるのがオチだよ。
0299デフォルトの名無しさん
NGNGその二番目の○○には何が入るのでしょうか。
0300デフォルトの名無しさん
NGNG0301デフォルトの名無しさん
NGNGhttp://www.media-k.co.jp/jiten/wiki.cgi?%A1%E3%A4%B7%A1%E4#i2
0302デフォルトの名無しさん
NGNG0303デフォルトの名無しさん
NGNGhttp://www.jsa.or.jp
0304デフォルトの名無しさん
NGNG金ねえよ!
0305デフォルトの名無しさん
NGNGISO/IEC 9899:1999(とうぜん英語)えよ!3,870円
http://www.webstore.jsa.or.jp/webstore/Com/FlowControl.jsp?lang=jp&bunsyoId=ISO%2FIEC+9899%3A1999&dantaiCd=ISO&status=1&pageNo=0
JIS X 3010:2003(日本語翻訳)13,600円
http://www.webstore.jsa.or.jp/webstore/Com/FlowControl.jsp?bunsyoId=JIS+X+3010%3A2003&dantaiCd=JIS&status=1&pageNo=0&lang=jp
0306デフォルトの名無しさん
NGNGhttp://www.webstore.jsa.or.jp/webstore/Com/FlowControl.jsp?lang=jp&bunsyoId=ISO%2FIEC+14882%3A2003&dantaiCd=ISO&status=1&pageNo=0
0307デフォルトの名無しさん
NGNG耄碌したおっさんをあんまり苛めるもんじゃないよw
0308デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?q=9899+ISO+filetype%3Apdf&hl=ja&ie=UTF-8&oe=UTF-8&c2coff=1
0309デフォルトの名無しさん
NGNGこれってもしや検索できないということでは・・・
0310デフォルトの名無しさん
NGNGベクトルデータだと少し手間だが。
0311285
NGNGはい、確かにに出ました
でもこれからどうしたらいいのかよくわからない・・・これはさすがにgoogleでもうちょっと粘ってみますが
今度来る時はポインタってなんですかくらいのレベルになっているだろうと思います
>>287
ありがとうございます。でもPC98を入手できるサイトが潰れてました
>>296
よくわかりませんが[すべてのプログラム]がありませんでした。すいません
0312デフォルトの名無しさん
NGNG普通に動いてたプログラムが、突然そんなこといって動かなくなりました。
0313デフォルトの名無しさん
NGNG例えば
int *p;
/*ここで忘れ物*/
*p = 0;
あるいは
*ぬるぽ = ガッ;
0314312
NGNG申し訳ないです、全然意味がわからないです。
0315デフォルトの名無しさん
NGNG0316デフォルトの名無しさん
NGNG例えば配列の範囲外アクセスや
代入も初期化もしていない(不定の)ポインタが指し示す先へのアクセス
これらの結果は「未定義の動作」なので何が起きても、若しくは何も起こらなくてもおかしくはない
未定義の動作のうち、よくあるのがSegmentation FaultとBus Error
多くのメモリ制御回路にはMMUというアドレス変換をする回路がついていて
CPUが指定した論理アドレスと物理アドレスが対応していないと例外処理を開始する
この他read禁止もしくはwrite禁止に対する違反を検出した場合や
物理アドレスにデバイスが実装されていなかった場合にも例外処理を開始する
例外処理とは具体的にはCPUへエラー信号を送り処理を委ねること
0317デフォルトの名無しさん
NGNG0318312
NGNGありがとうございます。やっと解決しました。
どうやら配列外のアクセスをしてしまっていたようです。
0319デフォルトの名無しさん
NGNG0320デフォルトの名無しさん
NGNGおいらNEWS使いだい
0321デフォルトの名無しさん
NGNGで、今こんなの考えたんだけどこれより速いのがあったら教えて。
for (i=0; x >> i; i++) ;
xが自然数でiがlogね。
簡単に言うと1になったビットで最上位のものを速く求めたいって事。
言い換えるとxを越えない2^iのiを求めたい。
0322デフォルトの名無しさん
NGNGfor (i-=3; x >> i; i++) ;
最初は4じゃ無くても良い。
好きにしなされ。
0323デフォルトの名無しさん
NGNGx が 0 〜 2^n - 1 の一様乱数なら半分の確率で最上位ビットが1だから、上位ビットからテストした方が速いかもしれない。
各ビットが独立しているようなデータなら、真中のビットから二分探索した方が速いかもしれない。
0324デフォルトの名無しさん
NGNG>言い換えるとxを越えない2^iのiを求めたい。
xを越える最小の2^iのiに見えるんだが
0325デフォルトの名無しさん
NGNGlog2(x) + 1 をお忘れですよ。小数点以下切り上げ。
~~~~~
0326デフォルトの名無しさん
NGNG処理系とCPUに依存しそうだが、落しどころは>>322あたりかな。
>>324あ、ほんとだ。
0327デフォルトの名無しさん
NGNGそりゃ明らかにウソだね。
そのコンパイラーの名前言ってみろよ ;-)
0328貧乏紙
NGNGおじさんが今から、仮想記憶管理を説明しちゃうぞ!!!いいのか?えっ
仮想記憶システムのアドレス方式には2種類あり、ページング方式と、セグメント方式だ。
ページング方式とは論理的な構造とは関係なく一定の大きさに分割する。
セグメント方式では論理的な構造に基づいて分割するのでセグメントの入れ替えが
最小に抑えられるのだ。
しかし、メモリのフラグメンテーション(主記憶の断片化)が発生するので、リロケーション(主記憶上のメモリを先頭から記憶しなおす)が
発生しOSのオーバーヘッドが増大するのだ。
0329デフォルトの名無しさん
NGNG「何度も言えば、そうだということになる(かもしれない)」という思い込みほど
かっこわるいものはありません。
ふつうC99ですね。(常識)
0330デフォルトの名無しさん
NGNGふつうにうごいてた「と思い込んでた」だけだろーが。
たまたま運良くうごいてただけだ。そんなものは。
不安定な場所にたまたま運良く都合のいいデータがはいってただけ。
0331デフォルトの名無しさん
NGNGb=sizeof(x)*2;
for (i=1; x >> i; i+=b) ;
for (i-=b-1; x >> i; i++) ;
0332デフォルトの名無しさん
NGNG> for (i-=3; x >> i; i++) ;
おい、比較演算子の両側はあけるくせに、代入演算子はあけないのか?
(逆はたまにみるが)
0333デフォルトの名無しさん
NGNGでも、ページング方式の仮想メモリーのOSでも、
「Segmantation fault」ってのがでるのはなんでですかー!? ;-)
0334デフォルトの名無しさん
NGNGxはiよりずっと大きいってか?
0335デフォルトの名無しさん
NGNG「Paging fault」というメッセージがないからです。
0336デフォルトの名無しさん
NGNGシフト演算子のことがいいたかったのだとおもわれ。
(だが、おれもあけるなあ > 代入演算子の両側。つめるとしろーとくさいので)
0337デフォルトの名無しさん
NGNGスタックとヒープを気にした方が実益があるぞ。
0338デフォルトの名無しさん
NGNGfor (i-=b-1; x >> i; i++) ;
空文の「;」を同じ行に書いちゃうやつは、ぜったい1回はハマる。
ちゃんと独立した行にインデントして書け。常識!
0339デフォルトの名無しさん
NGNGb = sizeof(x) * 2;
for (i = 1; x >> i; i += b)
;
for (i -= b - 1; x >> i; i++)
;
0340デフォルトの名無しさん
NGNG0341デフォルトの名無しさん
NGNG0342貧乏紙
NGNGSegmantation faultってなに?
ページフォルトのメモリー版?
0343デフォルトの名無しさん
NGNG上げてるのは何人も居ないだろ?
0344デフォルトの名無しさん
NGNG表引き。これ最速。
0345デフォルトの名無しさん
NGNG0346デフォルトの名無しさん
NGNGそういって8087のときみたいにバグをいれるのですね!
0347貧乏紙
NGNGわかった、セグメントがないという割り込みが発生している。
しかも、その割り込みは優先度が高い。
ページング方式でページがないというメッセージのつもりじゃない。
0348デフォルトの名無しさん
NGNG0349デフォルトの名無しさん
NGNG0350デフォルトの名無しさん
NGNGint main(void){
int i, x;
for (i = 0;i < 100;i++){
for (x = i;x;x >> =1) printf("@");
puts("");
}
return 0;
}
0351デフォルトの名無しさん
NGNGなんでセミコロンの後ろあけない? カンマといっしょだろ?立場は。
中括弧の前もこれだし...
0352デフォルトの名無しさん
NGNGMicroware C Compiler Ver. 1.0 ですが何か ?
その機械まだ動いてるし。
>>329
「お前の」 常識な。
この件についてたぶん世間の総意は得られていないと思う。
>>330
もう解決してるみたいだし、そんな誰でも知ってること書き込んで楽しい ?
>>333
OS がプロセスに与えたメモリ領域 (セグメント) を超えてアクセスしてるから。
(普通の OS では) Segmentation Fault は直接 CPU が発生するんじゃなくて、CPU からの Page Fault で起動された仮想記憶管理でプロセスがメモリーセグメント外のアクセスをしているとわかった時点でソフト的に例外を発生させる。
このページ処理中に IO エラーが発生すると Page I/O error となるよ。
0353デフォルトの名無しさん
NGNGこの言い返しがいかにも中学生レベル ;-)
0354デフォルトの名無しさん
NGNGで、その機械の名前いえますか? ;)
0355デフォルトの名無しさん
NGNGint main( void ){
int i,x;
for( i=0;i<100;i++ ){
for( x=i;x;x>>=1 ) printf( "@" );
puts( "" );
}
return 0;
}
0356デフォルトの名無しさん
NGNG何顔真っ赤にしてんだ?w
0357デフォルトの名無しさん
NGNG相手すんな。つか自作自演か?
だったらウザイので消えろ。
0358デフォルトの名無しさん
NGNG相手すんな。つか自作自演か?
だったらウザイので消えろ。
0359デフォルトの名無しさん
NGNG相手すんな。つか自作自演か?
だったらウザイので消えろ。
0360デフォルトの名無しさん
NGNG恥かかされてるからだろ (ゲラゲラ
0361321
NGNG>>322
なるほど、分割するのですか。
やってみます。
>>323
分布は小さい数ほど多い逆比例分布なのです。
>>324-325
すいません、説明のしかたが悪かったみたいです。
>321のコードで期待した結果が得られています。
>>326
処理系、CPU共に不明なのですが言語はC又はJavaです。
>>331
なるほど汎用的ですね。
勉強になります。
>>338
for (i=0; x >> i; ) i++;
こ、これでいいれすか?
i = 0;
while (x >> i) i++;
こっちの方が分かりやすいかな?
>>344
255以下についてテーブルを持っておけば、いいですかね?
でも今どきのシステムなら殆ど変わらない気がします。
0362デフォルトの名無しさん
NGNGようするに、言えないのですね? > 昔の機種名
0363321
NGNGunsigned int i, x = func(seed);
for (i=31; !(x & (1 << i)); ) i--;
最上位から検索するとこんな感じでしょうか。
というか(x >> i)の真偽判定ってどうやっているんだろう?
ビットシフトなしで特定のビットを狙い撃ちして判定できれば
上位からテストしていけば最大32回の走査で済むから速くなりそう。
0364デフォルトの名無しさん
NGNGで、その下の行には突っ込まないのか ? (藁
>>354, >>362
言ってもわからんと思う。
基盤から内作してる設備だから。
一応 6809 + 6801 で、6809 側は C で組んでいた。(6801 側はフルアセンブラ。)
当時としては、ちょっとした冒険だったと思う。
まあ、ダメだったらアセンブラで組めばいいやと言う考えだったらしい。
>>359
なかなか謙虚な奴だな。(藁
0365デフォルトの名無しさん
NGNG最上位から検索するなら、毎回notするより、
最初にnotしてから判定するよろし。
0366デフォルトの名無しさん
NGNG0367デフォルトの名無しさん
NGNGやーい > 組んで
0368デフォルトの名無しさん
NGNG0369デフォルトの名無しさん
NGNGそのコンパイラーのcharが符号付きか符号なしか、
「# define ...」と、「#」の後ろに空白あけることができたかどうかが言えるはず。
対応していないはずのregister宣言を書いた場合にどういうバグがでるかもな!
(覚えている自分が怖い!)
0370デフォルトの名無しさん
NGNGシッタカ確定
0371デフォルトの名無しさん
NGNG質問者は、聞きたい内容をはっきり書くように。
あと、上げないように。
0372デフォルトの名無しさん
NGNGなるほど、当時厨だったわけね(w
0373デフォルトの名無しさん
NGNGどっちも ;-)
0374デフォルトの名無しさん
NGNGこれからもsakuraかなとは思っているのですが、
もしCに特化されたエディタなどがあれば、教えて頂きたいです。
0375デフォルトの名無しさん
NGNG質問はage、回答はsage
勝手にルールを変えないように
0376デフォルトの名無しさん
NGNGviがおすすめです。
Windowsだったら、プロンプトだして、
vi foo.c
と打ってください。
0377デフォルトの名無しさん
NGNG妙に懐かしい話題が出たので煽ってみた。と。
きっと、PETとかTRSとか昔の機種名を出すともっと反応するぞ。
でもな、スレ違いだ。
OSも CP/M とかな。角度とか。
0378デフォルトの名無しさん
NGNG外部仕様のコンセプトがだめすぎです。
0379デフォルトの名無しさん
NGNGCP/M って OSだったのかー
0380デフォルトの名無しさん
NGNG0381デフォルトの名無しさん
NGNG学生なら無料よ。
0382デフォルトの名無しさん
NGNGとくに金はらう場合は。
悪いことはいわん。viかEmacsにしとけ。
0383デフォルトの名無しさん
NGNG0384デフォルトの名無しさん
NGNGおい犬厨、比較になってないぞ
0385デフォルトの名無しさん
NGNG悪いけど、覚えてない。
組込みだから、char は全て unsigned char でしか使わんし、# の後ろに空白を空けたことはない。
(これは、今でもそうだから覚えているけど。)
register は、記憶がない。(つーか、そのあとの 68020 版の奴とごっちゃになってる。)
動態保存 (= FD で保管) してるけど、今使ってるわけじゃないからな。
0386デフォルトの名無しさん
NGNGそれは動態保存とはいわん。
0387デフォルトの名無しさん
NGNG0388おこちゃまヘルパー
NGNG0389デフォルトの名無しさん
NGNG0390デフォルトの名無しさん
NGNGなんだ、けっきょくないんじゃん。いまどきそんなコンパイラー
0391デフォルトの名無しさん
NGNGちょっと、コンパイル時のメッセージ書いてみてくれ。
そしたら、本物かどうかわかるから。
0392デフォルトの名無しさん
NGNG俺は持ってないってば。
0393デフォルトの名無しさん
NGNG悪い。 >>387 に対してだ。
0394デフォルトの名無しさん
NGNG0395デフォルトの名無しさん
NGNG0396おこちゃまヘルパー
NGNG0397デフォルトの名無しさん
NGNG結局1人だったの?
0398デフォルトの名無しさん
NGNGあるいはその逆のキャストをするとどういう危険なことが
起こり得るのでしょう?
0399デフォルトの名無しさん
NGNGキャストした値をどう使うかで危険さが違うと思うが。
0401デフォルトの名無しさん
NGNG0402デフォルトの名無しさん
NGNGGNUのHello,world!(メール確認機能とかあるやつ)のソースを読んでいて思ったんですけど、
オプションで"sailor"と指定すると"Nothing happens here."と表示されるのはイースターエッグなのでしょうか?
板違い・スレ違いなどはご容赦下さい。
0404デフォルトの名無しさん
NGNG楽しいから、だと思ってますた
0405デフォルトの名無しさん
NGNGだけのハッシュテーブルライブラリ知りませんか?
0406デフォルトの名無しさん
NGNGstd::set
std::multiset
0407デフォルトの名無しさん
NGNGもちろんそれが使えればいいんですけどCなので
0408デフォルトの名無しさん
NGNG0409デフォルトの名無しさん
NGNG0410おこちゃまヘルパー
NGNG0411デフォルトの名無しさん
NGNGCNNのネット投票に協力してください。
今回の台湾総統選挙は公正と思いますか
ぜひ台湾に「Yes」を
http://www.cnn.com/2004/WORLD/asiapcf/03/20/taiwan.elections/index.html
QUICKVOTE
Was Taiwan's presidential vote fair?
Yes ●
No
宋楚瑜氏が先程、このネット投票の結果を利用して、選挙無効を群衆に訴えて
います。宋氏に悪用されないようにしましょう。
「台湾の声」編集長 林建良(りんけんりょう)拜
0412デフォルトの名無しさん
NGNGどんなC言語環境でも、に訂正します
0413デフォルトの名無しさん
NGNG汎用的なものは見たこと無いですな。
誰かくれ、にもう一票。
0414デフォルトの名無しさん
NGNGttp://www.mnet.ne.jp/~tnomura/C.html
0415デフォルトの名無しさん
NGNG恥ずかしい上に自作自演がばればれだぞ
0416デフォルトの名無しさん
NGNGextern "C++" {
#include <map>
}
とかできないもんですかね。
0417デフォルトの名無しさん
NGNG#include <stdlib.h> /* malloc( ) を使うのに必要 */
#define BUFFSIZE 100
void Func1(void);
void Func2(char *str2);
char *Func3(void);
char *BuggyFunc(void);
void main(void);
static char str1[BUFFSIZE];
void Func1(void)
{
static int n = 1;
sprintf(str1, "%d Func1( )", n);
n++;
}
void Func2(char *str2)
{
static int n = 1;
sprintf(str2, "%d Func2( )", n);
n++;
}
0418417
NGNG{
static int n = 1;
char *s;
s = (char *)malloc(BUFFSIZE * sizeof(char));
sprintf(s, "%d Func3( )", n);
n++;
return (s);
}
char *BuggyFunc(void)
{
static int n = 1;
char str[BUFFSIZE];
sprintf(str, "%d BuggyFunc( )", n); n++;
return (str); }
0419417
NGNG{
int i;
char *s;
char str2[BUFFSIZE];
for (i = 0; i < 4; i++) {
Func1( );
puts(str1);
Func2(str2);
puts(str2);
s = Func3( );
puts(s);
free(s);
s = BuggyFunc( );
puts(s);
printf("\n");
}
}
()をうめてこれ実行させるとPCクラッシュや、シャットダウン
0420417
NGNG0421デフォルトの名無しさん
NGNGtime_t timer;
time(&timer);
printf("%f\n", timer);
printf("%s\n", ctime(&timer));
この場合ctimeから今の時間に変換して表示できるのですが
変換する前の秒数?(1970年になったときからの秒数)が見たい場合はどうしたらいいのでしょうか?
上のやり方だと決まった数字だけでて来て 今の秒数は出て来ませんでした
よろしくお願いします
0422デフォルトの名無しさん
NGNG> printf("%f\n", timer);
%l じゃないの?
0423デフォルトの名無しさん
NGNGttp://support.microsoft.com/default.aspx?scid=kb;ja;401928
0424デフォルトの名無しさん
NGNG%ld
0425デフォルトの名無しさん
NGNGunsigned int ui = 0;
if (i < ui)
というコードを gcc -Wall でコンパイルすると何も言われず、
同バージョンの g++ -Wall でコンパイルすると
warning: comparison between signed and unsigned integer expressions
と言われます。
これは GCC のクセでしょうか?
それとも C++ の場合だけ警告するちゃんとした理由があるのでしょうか。
0426デフォルトの名無しさん
NGNGgcc version 3.2 20020927
というやつです。
0427421
NGNG始めは%dでやったのですがマイナスだったので違うと思って他のやつでやってました
もう一つ聞きたいのですが
これって秒数じゃないんですか?
実行したら
[root@localhost test_3]# ./a.out
Su Mo Tu We Th Fr St
-1073750308
Mon Mar 22 02:50:49 2004
[root@localhost test_3]# ./a.out
Su Mo Tu We Th Fr St
-1073747236
Mon Mar 22 02:50:55 2004
[root@localhost test_3]# ./a.out
Su Mo Tu We Th Fr St
-1073749028
Mon Mar 22 02:50:58 2004
のように 増えたり減ったりしています
すいませんが もしよろしければ教えてください よろしくお願いします
0428デフォルトの名無しさん
NGNGキーボードのキーを指定して実行させるコマンドが分かりません
0429デフォルトの名無しさん
NGNGそんなものは無い。
0430デフォルトの名無しさん
NGNG現在、そのキーが押されているかどうかのチェックは環境依存になるぞ
0431デフォルトの名無しさん
NGNGdifftime()を使ってみては?
time_t timer;
time(&timer);
printf("%.0f\n", difftime(timer, 0));
0432421
NGNGありがとうございます
これで思っていた結果が出せたのですが 結局time(&timer)は何を得ているのかが分かりません
説明して頂けないでしょうか?
私もしらべたのですが分かりませんでした
まだdifftimeはなにか分からないのですが 今日はすいませんが寝ます
どうもありがとうございました
0433デフォルトの名無しさん
NGNGえ、「コンパイラー」だとだめなんですか?
0434デフォルトの名無しさん
NGNG0435デフォルトの名無しさん
NGNGあのー。じゃあその「プログラマ」にはならないのですか?
0436デフォルトの名無しさん
NGNG「すごい。彼は通だな。」と思うかい?
0437デフォルトの名無しさん
NGNG0438デフォルトの名無しさん
NGNG0439デフォルトの名無しさん
NGNGプログラマー表記に絡んでくる自称通の馬鹿が多いから
どちらがいい、正しいに関係なくーを省略したほうが無難。
0440デフォルトの名無しさん
NGNG>>382
ありがとうございます。
非常ーーに申し上げにくいんですが・・・
当方、WindowsXPなのですが、コマンドプロンプトでもファイルを指定して実行でも
「vi foo.c」では何も起きないんです・・・。
どうすればvi使えるのでしょうか・・・・
0441デフォルトの名無しさん
NGNGhttp://www.microsoft.com/japan/windows/sfu/
0442デフォルトの名無しさん
NGNG「ドライバ」と「ドライバー」で話が通じなかったことを思い出した
「動かすにはドライバーが必要なんだよ」
(゚Д゚;)?
0443デフォルトの名無しさん
NGNG0444デフォルトの名無しさん
NGNG0445デフォルトの名無しさん
NGNGviはWindowsXPにインストールされていないので
notepad foo.cと打てばいい。ちなみにvi, emacsはUNIXのエディタ。
0446デフォルトの名無しさん
NGNG00000001というキーがあったとします
00000001というキーが発行されました
00000001というキーはこの時点で必要ありません
次にリクエストがあった時に00000001というキーがそのまま残っていてはまた発行されるかもしれません
どう処理すれば良いでしょうか?
0447デフォルトの名無しさん
NGNG一括でフラッシュする関数も探してみれ。
0448デフォルトの名無しさん
NGNG発行キーはTIME関数を利用して20億以上用意してあり
その中の00000001なので1/20億です
で・発行は00000002,00000003...と続いていくのです
その発行済みキーは20億以上用意してあるので無くなりません
だから一行ずつ消したいです よろしくお願いします
0449デフォルトの名無しさん
NGNGエコー
Echo
どちらも3文字以上だが?
0450デフォルトの名無しさん
NGNG省略後に3文字以上。
0451デフォルトの名無しさん
NGNGではだめなん?
0452デフォルトの名無しさん
NGNGまず何をすればいいですか?
0453デフォルトの名無しさん
NGNG0454デフォルトの名無しさん
NGNGとかやったときのiのスコープってどこまでなんでしょうか。
gccだとforループを抜けた後は無効なんですが、
VisualCだとループ後も有効になります。
0455デフォルトの名無しさん
NGNGそれC++じゃなくて?
前者の動作は新しい仕様、後者は古いもの。
0456デフォルトの名無しさん
NGNG0457デフォルトの名無しさん
NGNG0458446.448
NGNGFILELIST
------------------
00000001
00000002
〜ほぼ無限(何故無限なのかと言うとリクエストも無限にあるから無限にあるから)
------------------
というFileが既に作られておりリクエストがあると00000001がまず発行され
次に00000002が発行されます
そんな感じに動くけれど発行された00000001は必要無い
ので発行されたキー:この場合00000001から順にファイルから消したい
キーは一つしかないです
ListFileからリクエストがある度に一行自動削除がしたいという事(^^;
0459デフォルトの名無しさん
NGNGファイルポインタで対処し、プロセスの終了時に書き直す。
ファイルポインタを別ファイルに書込んでおく。
最初のは、あらかじめファイル分割が必要かな。
0460デフォルトの名無しさん
NGNG俺は>>458が何をしたいかわからん
0461デフォルトの名無しさん
NGNGforループスコープの強制準拠だね
/Zc:forScope
分かりにくい名前のオプションだよなぁ
強制準拠って…
>>455
C99からはCでもOKになったんよ。確か。
0462デフォルトの名無しさん
NGNGでも奴はそれに準拠していないコンパイラを使っているはず。
0463デフォルトの名無しさん
NGNGウデムシでヒットしたやつ・・・そんなにきもくないよ。裏からのはなかったけど
478 名前:ピロシキ次郎 ◆EVH/Kw0M :02/08/14 02:42 ID:???
番組の途中ですがここでウデムシ普及委員会から少し宣伝させて頂きます
皆さんもウデムシを知り、その素晴らしさを世界に広めましょう。
アフリカ産ウデムシ
http://www.geocities.co.jp/HeartLand-Namiki/3684/photo/ude0025.jpg
エイリアンな顔
http://www.geocities.co.jp/HeartLand-Namiki/3684/photo/ude0024.jpg
3.22 脱皮。脚が抜けきらない不全。
http://www.geocities.co.jp/HeartLand-Namiki/3684/photo/ude0000.jpg
http://www.geocities.co.jp/HeartLand-Namiki/3684/photo/ude0004.jpg
翌々日死亡。
http://www.geocities.co.jp/HeartLand-Namiki/3684/photo/ude0005.jpg
974 名前:おさかなくわえた名無しさん メェル:sage 投稿日:04/01/09 23:37 ID:ZX1eMQcM
>>973
どうしよう。今日寝れないかもしれない…
怖いよー。
。・゚・(ノД´)・゚・。 ウワァァァァァァアソ
0464デフォルトの名無しさん
NGNG> ちなみにvi, emacsはUNIXのエディタ。
vi はまあいいとして、emacs が UNIX のエディタとか言うと、ちょっと素人っぽいな。
0465デフォルトの名無しさん
NGNG0466デフォルトの名無しさん
NGNG0467デフォルトの名無しさん
NGNG0469デフォルトの名無しさん
NGNG最大値をRAND_MAXではなく100にしたいのですが、
この際、rand%101としたとき、
発生される0から100の間の数字には微妙な偏りが生じてしまうと思うのですが、
このような偏りを生じさせず、きちんとランダムに0から100の間で乱数を発生させる方法はありますでしょうか。
0471デフォルトの名無しさん
NGNGhttp://www001.upp.so-net.ne.jp/isaku/rand.html
0472デフォルトの名無しさん
NGNG>>471
どうもありがとうございました。
0473デフォルトの名無しさん
NGNG0474デフォルトの名無しさん
NGNG(double)rand() / (RAND_MAX+1) * 101
0475デフォルトの名無しさん
NGNGcat > foo.c でデバイスドライバー書いちゃうBill Joyぐらいにならないと...。
Windows(DOS)ならさしずめ、copy con foo.c ってとこか。
0476デフォルトの名無しさん
NGNGそれはC++の場合だろ。
Cの場合は、使えるようになった当初(もう5年も前だ!)から、同じ仕様のまま。
0477デフォルトの名無しさん
NGNG> このような偏りを生じさせず、きちんとランダムに0から100の間で乱数を発生させる方法はありますでしょうか。
for (i = 0; i <= 100; i++) すれば均等 ;-)
0478デフォルトの名無しさん
NGNG> vi はまあいいとして、emacs が UNIX のエディタとか言うと、ちょっと素人っぽいな。
どっちもちがうだろ。まあEmacsはUnixに移植されてから有名になったわけだが。
0479デフォルトの名無しさん
NGNG#include <stdlib.h>
#include <time.h>
#include <limits.h>
#define MAX 11
#define OCC 1
#define EMP (-1)
int a[MAX];
main()
{
time_t seed;
int i, j;
int g;
time(&seed);
srand(seed % UINT_MAX);
for (i = 0; i < MAX; i++) {
g = rand() % MAX;
printf("%d ", g);
}
printf("\n");
}
0480デフォルトの名無しさん
NGNGfor (i = 0; i < MAX; i++)
a[i] = EMP;
for (i = 0; i < MAX; i++) {
do {
g = rand() % MAX;
} while (a[g] != EMP);
a[g] = OCC;
printf("%d ", g);
}
printf("\n");
0481デフォルトの名無しさん
NGNGそれだと遅くなるだろ。10000回ぐらいに増やしてやってみれば一目瞭然。
こうすればいいのでは?
for (i = 0; i < MAX; i++)
a[i] = EMP;
for (i = 0; i < MAX; i++) {
do {
g = rand() % MAX;
} while (a[g] != EMP);
a[g] = i;
}
for (i = 0; i < MAX; i++) {
for (j = 0; j < MAX; j++) {
if (a[j] == i)
printf("%d ", j);
}
}
printf("\n");
0482デフォルトの名無しさん
NGNGそんなに律儀に変数の「もとの意味」を尊重しなくても、
せっかく連続した整数になってるのだから、
以下のように、どう流用しようと正しく出ればいいのでは?
for (i = 0; i < MAX; i++)
a[i] = EMP;
for (i = 0; i < MAX; i++) {
do {
g = rand() % MAX;
} while (a[g] != EMP);
a[g] = i;
}
for (i = 0; i < MAX; i++)
printf("%d ", a[i]);
printf("\n");
0483デフォルトの名無しさん
NGNGprintf("MANKO%d" ,MANKO_CHINKO\n);
}
else
{
printf("MANKO%d" ,MANKO_CHINKO\n);
}
0484は ◆cplnFO9T0I
NGNG開発環境はBCC5.5です。
0486デフォルトの名無しさん
NGNG>リクエストがあると00000001がまず発行され
>発行された00000001は必要無い
>ので発行されたキー:この場合00000001から順にファイルから消したい
キーの発行の処理でファイルを削除するべきじゃないの?
0487デフォルトの名無しさん
NGNGMAX-1回目が終わった時に、次回に出る数が予測できてしまうが、そんなんで良いの?
0488デフォルトの名無しさん
NGNG0489デフォルトの名無しさん
NGNGこのやり方はannealingとか呼ばれてる。
50年前から提案されていたが、この20年で急速に普及した。
#define RMAX 100
int avrand()
{
int r,s;
static unsigned int count[RMAX+1];
static unsigned int cnt;
r=rand()%(RMAX+1);
s=(r+1)%(RMAX+1);
r=count[r]<count[s] ? r : s;
count[r]++;
cnt++;
if(cnt>(RMAX+1)*2){
for(r=0;r<=RMAX;r++){
count[r]>>=1;
}
}
return r;
}
演算子にスペースを付けるとか付けないとかのご指摘は遠慮申し上げる。
0490489
NGNGcnt-=(RMAX+1)*2するのが抜けてた。すまん。
0492デフォルトの名無しさん
NGNG0493デフォルトの名無しさん
NGNG0494デフォルトの名無しさん
NGNGうれしいよ。俺もそうだったし。
0495デフォルトの名無しさん
NGNGすげー安心した。
0496デフォルトの名無しさん
NGNGちったぁ試行錯誤すれ。
理解は試行錯誤の先にあるものだ。
0497デフォルトの名無しさん
NGNG俺も16進数とか意味不明だが、試行錯誤の末に5進数まで理解できた。
年内に10進数、来年には16進数に到達する勢いだ。
継続は力なり。
0498デフォルトの名無しさん
NGNG一般のN進数まで理解できるだろうに...。
0499デフォルトの名無しさん
NGNG11進からは右足を使うか左足を使うかは検討中。
0500デフォルトの名無しさん
NGNG0501デフォルトの名無しさん
NGNGそろそろ32進数に切り替えないとやばいよ・・・
0502デフォルトの名無しさん
NGNG11進数が心地良いな。
俺はこれで十分だ。
0503デフォルトの名無しさん
NGNGちんこをつかえ
0504デフォルトの名無しさん
NGNG16=2の(2の2乗)乗ということも分かんねーのかよー。
やばすぎるぜー。
0505デフォルトの名無しさん
NGNG表記には\0とか\rとか総動員だな。
対応エディタ作ってひとヤマ当てるか・・・
0506デフォルトの名無しさん
NGNG絶対作れよなw
0507デフォルトの名無しさん
NGNGプ
0508デフォルトの名無しさん
NGNGbreakは構造化プログラミングを破壊するので
breakを使わずswitch文をあらわす一般的な方法を示せ
という問題がでたのですがどうすればいいのかわからずてんてこ舞いです。
教えてください。
0509デフォルトの名無しさん
NGNG0510デフォルトの名無しさん
NGNG>breakを使わずswitch文をあらわす一般的な方法を示せ
日本語ワカリマセーン
>breakは構造化プログラミングを破壊するので
ハァ?
0511デフォルトの名無しさん
NGNGビルを壊すぜ
橋を壊すぜ
0512デフォルトの名無しさん
NGNGそれ以前にforを通ったらrは壊れちゃうでしょ?
それに、cntは念のため初期化したほうが教育上いいのでは?
0513デフォルトの名無しさん
NGNGじゃあ、こうか?
#define RMAX 101
int avrand()
{
static int count[RMAX];
static int kt = 0;
int s1, s2;
int r;
int i;
s1 = rand() % RMAX;
s2 = (s1 + 1) % RMAX;
r = (count[s1] < count[s2]) ? s1 : s2;
count[r]++;
if (++kt > RMAX * 2) {
kt -= RMAX * 2;
for (i = 0; i < RMAX; i++)
count[i] /= 2;
}
return r;
}
0514デフォルトの名無しさん
NGNGint k = 0;
switch (n) {
case '3':
++k;
case '2':
++k;
case '1':
++k;
}
...なわけない。
0515デフォルトの名無しさん
NGNGどうやって表示に反映させたらいいでしょうか?
0516デフォルトの名無しさん
NGNG0517デフォルトの名無しさん
NGNGelse ifのことか?
0518デフォルトの名無しさん
NGNGttp://pc2.2ch.net/test/read.cgi/tech/1078157730/374
0519デフォルトの名無しさん
NGNGたぶん出題者はそれを答えさせたいんだろうね。
でも、switchよりもっと汎用だよな。
if (i > 2) ...ってののあとに else if (x == 0) っても書いてもいいわけだし。
(switch文でそんな判定できるか!)
それに、そのやり方を使うのはべつに「breakを使いたくないから」なわけではない。
(delphiのswitchにはもともとbreakないもんなあ)
そもそもbreakは構造化プログラミングを破壊するので、っていいぐさが「大うそ」
その講師は「しったかぶり」してるのがばれちゃってるじゃん。
ここに名前をさらせよ!
そこで、汎用の「goto」しかないようなFortranだと、どこにでもgotoできちゃうので、
構造化プログラミングに反するコードもかけちゃうわけだが、そういうgotoをつかわなく
てもループを脱出できるようにしたのが、Cのbreakであり、VBのExit Forなわけ。
なので、breakはむしろ「構造化プログラミングのため」のものであり、
breakの濫用を恐れるってのは、かなりすじちがい。(そう濫用できるものでもないし、
かなりむずかしくつかって混乱させようとおもっても(gotoみたいには)できないのだ。
とにかくその課題出した講師の名前をここに書け!
0520デフォルトの名無しさん
NGNG漢なら算術IF文だろ!? だって、コードが面白くなるじゃん。
(上記の文を英訳せよ。5点)
0521デフォルトの名無しさん
NGNG0522デフォルトの名無しさん
NGNG0523デフォルトの名無しさん
NGNG逆に、硬派の男は、そんなものを使ってはいけません。
ちょっとまちがえれば手を切ってしまうような、fool-proofがないかわりに、
その道具本来の性能をフルに発揮するようなそんなプロ用の道具、アセンブラーか
Fortranを使うべきです。
0524デフォルトの名無しさん
NGNG0525おこちゃまヘルパー
NGNG大ウソだあ? 冗談も休み休み言え
処理本体の中に制御の一部を持ち込むんだぞ
少なくとも構造化定理に出てくる制御のどれにもあたらないぜ
そういうあなたこそ「そういうgoto」とはどういうgotoかを
全然説明できてないようだが?
0526デフォルトの名無しさん
NGNG0527デフォルトの名無しさん
NGNG0528デフォルトの名無しさん
NGNG宿題スレ逝ったら?
0529デフォルトの名無しさん
NGNG関数へのポインタ使えばできるだろ。
この際一般的かは置いといて。
0530デフォルトの名無しさん
NGNG0531デフォルトの名無しさん
NGNG0532デフォルトの名無しさん
NGNGchar *strcat(char *str1,const char *str2){
int i=0,length;
for(i=0;*(str1+i);i++);length=i;
for(i=0;*(str1+length+i)=*(str2+i);i++);
return &str1[0];
}
int main(void){
char str[128]="aaa";
char *str2=strcat("ABCDE",str);
printf("%s\n",str);
getchar();
return 0;
}
上のコードを書いてみました。予想では「ABCDEaaa」と表示されるはずなんですが、
うまくいきません。どうしたらいいでしょうか。
0533デフォルトの名無しさん
NGNG0534デフォルトの名無しさん
NGNGchar *strcat(char *str1,const char *str2){
int i=0,length;
for(i=0;*(str1+i);i++);length=i;
for(i=0;*(str1+i+length) = *(str2+i);i++);
return &str1[0];
}
int main(void){
char str[128]="aaa";
char *str2=strcat(str,"ABCDE"); //ここ逆じゃないとだめじゃない?
printf("%s\n",str);
getchar();
return 0;
}
0535デフォルトの名無しさん
NGNG「"ABCDE"」にくっつけようとしてるから
そこに「"aaa"」をつけようとしても、そんな領域あるわけないでしょ
0536デフォルトの名無しさん
NGNGおぃおぃ。逆にしたら結果変わるだろw
あ、あとそれやっても"aaa"と出るだろうな。
printfの引数がstrだし。
0537デフォルトの名無しさん
NGNGいや、それはわかってるが・・・
まあこうか?
char *str = "aaa";
char str2[128] = "ABCDE";
strcat(str2, str);
printf("%s\n", str2);
0538デフォルトの名無しさん
NGNGprintf("ABCDEaaa\n");
俺天才。
0539デフォルトの名無しさん
NGNGいまだにそんなに汚いコード書く奴がいるのか・・・
0540デフォルトの名無しさん
NGNG0541デフォルトの名無しさん
NGNGバグってるから駄目。
0542デフォルトの名無しさん
NGNG俺にいうな。
0543デフォルトの名無しさん
NGNGstrcatの引数str2にくっつけるようにすればOK
0544デフォルトの名無しさん
NGNGバグにあわせて修正か。すごいな。
0545デフォルトの名無しさん
NGNG何言ってんのお前?
0546デフォルトの名無しさん
NGNG0547デフォルトの名無しさん
NGNG0548デフォルトの名無しさん
NGNG0549デフォルトの名無しさん
NGNG0550デフォルトの名無しさん
NGNGキャスト
0551デフォルトの名無しさん
NGNGん?
int型整数をchar型整数に変換したいのならキャストで、
int型整数を文字列に変換したいのならitoa関数
0552デフォルトの名無しさん
NGNG0553デフォルトの名無しさん
NGNGどうやって表示に反映させたらいいでしょうか?
0554デフォルトの名無しさん
NGNGint arr[N], *p;
p = arr-1; //(a)
p = arr+N; //(b)
p = arr+N+1; //(c)
この場合(b)だけが合法で、(a)(c)はアドレスを計算ようとしするだけで
まずいんでしたっけ?
0555デフォルトの名無しさん
NGNGうん。まずい。
0556デフォルトの名無しさん
NGNGさんくすです。
>計算ようとしする× ==> 計算しようとする○
スマソ。
0557デフォルトの名無しさん
NGNG>>515
http://pc2.2ch.net/test/read.cgi/tech/1078157730/374
http://pc2.2ch.net/test/read.cgi/tech/1078157730/396
ニヤニヤ
0558デフォルトの名無しさん
NGNG* * *
*** *** *
* * *
*** *** *
0559デフォルトの名無しさん
NGNGゲームとしてサンプルのソースファイルをコピー、コンパイルしようとしたところ、
「can't open: el.h」と表示されました
質問1 このel(easy link library)は、C言語界の中ではどういった評判なのでしょうか?
でまあ結局DLしてみたわけですが、今度は「can't open: window.h」「can't open: windowsx.h」を始め、
winnls32.h ddraw.h dsound.h dinput.hなどが開けませんでした
質問2 これらはどこで手に入れることができるのでしょうか?
見た感じの印象としては、なんだか基本そうなものなのであせっております
ヘタレな質問で申し訳ないです
0560デフォルトの名無しさん
NGNGゲームとしてサンプルのソースファイルをコピー、コンパイルしようとしたところ、
→サンプルのゲームのソースファイルをコピーし、コンパイルしようとしたところ、
0561デフォルトの名無しさん
NGNGせめてBCCかcygwinのgccにしとけ。いや、ほんとに。
金があるならVC++.net買っとけ。
0562デフォルトの名無しさん
NGNG質問 そのサンプルのソースファイルは何?
0563デフォルトの名無しさん
NGNGさすがに1行目を否定されたのは意外でした
「フリー コンパイラ」でググって手に入れたlsicですが、結構2ch評判よさそうだったので・・・
BCCとgcc、調べてみます。ありがとうございます
>>562
ブロック崩しです
http://ponk.jp/el/block/block.cpp
ここにありました
0565デフォルトの名無しさん
NGNGvc++以外だと少しの手間と知識が必要
bccはやり方書いてあっただろ
DirectXSDKもインスコしてなさそうだし
lsicからは使えないと思うぞ
0566デフォルトの名無しさん
NGNGLIS-Cがメインで使われていたOSは現在主流のWindowsXPの
6世代前(Windows2000->Me,98,95,32s,3.1,DOS)という無茶苦茶古い時代の話だから。
0567デフォルトの名無しさん
NGNG(a)はいいだろ?
0568デフォルトの名無しさん
NGNGダメだろ
0569デフォルトの名無しさん
NGNGその理由は?
0570デフォルトの名無しさん
NGNGWindows2.0や1.0はシカトですか?
(XPがはいってないのが不思議)
0571デフォルトの名無しさん
NGNG(a)と(b)がOK、
(c)だけがだめ。
0572デフォルトの名無しさん
NGNG(a)がOKな理由がわからないなあ。添え字がマイナス方向の
一個はみ出しはCでは認めてないよ。
0573デフォルトの名無しさん
NGNG0574デフォルトの名無しさん
NGNGその通り。C++のSTLのイテレータもそれと同様の考え方に
基づいて作られている。
0575デフォルトの名無しさん
NGNGいいHNですね。星新一氏の父親のようだ
ありがとうございます、そうしてみます
>>565
>elライブラリをインストールできてないっぽいな
確かにel.hをINCLUDEフォルダに入れただけです。そうかもしれません
>bccはやり方書いてあっただろ
とりあえずbccをDLしてみます
>DirectXSDKもインスコしてなさそうだし
SDKと言う単語が良くわからないので、きっとそうでしょうね。すいません
ありがとうございます
>>566
勉強になります。ありがとうございます
0576デフォルトの名無しさん
NGNGまるで他の言語だとみとめてるみたいに聞こえますが...
0577デフォルトの名無しさん
NGNGそういう風にひねくれた受け取り方をする人の方が少ないと
思いますが・・・・・
0578デフォルトの名無しさん
NGNGアドレスの計算だけなら何やっても問題ない
全部大丈夫だ
0579デフォルトの名無しさん
NGNGp = arr-1;
このままの流れならマズイ結果になるだけで、
int arr[N], *p;
arr++;
arr++;
p = arr-1;
これなら大丈夫じゃないの。
まあ、
"アドレスの計算だけなら何やっても問題ない全部大丈夫だ"
と同じ理論だけど。
コンパイラも何も言わないと思うよ。
それから
"添え字がマイナス方向の一個はみ出しはCでは認めてないよ。"
配列とポインタ演算をごっちゃにしないように。
arr-1
はポインタ演算
0580デフォルトの名無しさん
NGNG0581デフォルトの名無しさん
NGNG配列の物理アドレスをごっちゃにしないように。
配列の物理アドレスは連続した領域を確保するでしょ。
0582デフォルトの名無しさん
NGNG> arr++;
> arr++;
> p = arr-1;
2行めでエラー...ってのが0.1秒以内にわからないと
0583デフォルトの名無しさん
NGNGあのさ、
>int arr[N], *p;
>arr++;
>arr++;
>p = arr-1;
これ本当にコンパイル試してから書いてるの?arrは定数なので
コンパイルエラーが出るはずだよ。
0584デフォルトの名無しさん
NGNGそんなのは配列とはいわん。
0585デフォルトの名無しさん
NGNG>配列とポインタ演算をごっちゃにしないように。
気になったので一言。
例えポインタ演算であっても、それが配列内のオブジェクトを
指していた場合は、演算によって配列内及び配列の最後尾
の一つ後ろ以外のアドレスを指した場合は結果は不定となる。
不定とは、動作が停止するなどの重大な影響を与える事は
ないが、ポインタの内容が無意味となる事を指している。
だから論点は、「不定が果たして問題ないのか、それとも
問題があるのか」という点に集約される。
0586デフォルトの名無しさん
NGNG物理的に連続した領域である保証は無いよん。
0587デフォルトの名無しさん
NGNG問題はないってことかな? ただ配列要素(末尾+1を含む)の外を
指しているので、演算結果が予測できない値になるかもしれない、
ということですかね。
0588デフォルトの名無しさん
NGNG例えば配列の真ん中当たりでスワップアウトされていたりな。
アクセスの際に初めて物理的に連続な位置に置かれるな。
0589デフォルトの名無しさん
NGNGたぶんそういう意味でしょう。
極端な話、ポインタが32ビットで、配列の先頭アドレスが0x00000004
で、オブジェクトのサイズが8バイトだとすると、ポインタを-1すると
0xfffffffcになり、多くのOSでは明らかに連続とは言えなくなります。
(ラップアラウンドを許可しているOSならいいのかもしれないが、少なく
ともアドレス0は有効なデータであるはずがない)
もっとも0をポインタとして扱う場合はコンパイラがその処理系に有効
なnull pointerに変換するので、必ずしも0x00000000とは限りませんが。
演算そのものは実行しても害はないが、例えば arr - 1 + 1 とやっても
arrに戻る保証は仕様では規定されていないという事ですね。実際には
ほとんどの処理系ではarrに戻ると思うけど、それを当てにしたプログラム
は書いちゃまずいという事でしょう。
0590デフォルトの名無しさん
NGNGいやあの、たとえば配列が物理的に番地0から配置される場合、
-1しちゃったらどうなるとかいう問題が。
こういうのが起こりそうな例だとx86のリアルモードしか
おれには思いつかんのだけど、ありうることはありうる。
たとえばDS:0から配列が配置される可能性はありうるんで。
このスレ的には規格から外れてるから配列の先頭アドレス-1なんて
アドレスを生成しちゃいかんてことでおわりなんだけど、
それは上に書いたような実装のことが念頭にあったのだと思う。
ちなみに、配列の末尾アドレス+1が合法ってのは、K&Rにでてくるstrcpyのループ、
while (*p++ = *q++)
;
のようなコードを救うためだったと本で読んだ覚えがある。
無論アドレスの生成のみが合法で、デリファレンスしちゃいかん。
0591デフォルトの名無しさん
NGNG0592デフォルトの名無しさん
NGNG0593デフォルトの名無しさん
NGNG0594デフォルトの名無しさん
NGNG0595デフォルトの名無しさん
NGNGじゃあこういうの厳密にはダメなの?
良く見るけど。
struct hoge {
size_t len;
char data[1];
};
struct hoge *pHoge = malloc(sizeof(*pHoge) + 10);
char *ptr = pHoge->data;
*(ptr + 5) = '\0'; // 配列の添字を超えたアドレスは未定義?
0596デフォルトの名無しさん
NGNGその数は、単純にバイナリ値として扱われ、正の数になると考えてよいのでしょうか?
0597デフォルトの名無しさん
NGNGhttp://www.catnet.ne.jp/kouno/c_faq/c2.html#6
0598デフォルトの名無しさん
NGNG>配列は、配列としてアクセスされる限りは連続だけど、
>物理的に連続した領域である保証は無いよん。
これってつまり、C言語から見るとすれば必ず連続しているってことですよね?
0599デフォルトの名無しさん
NGNGそういうこと。
ソースレベルでは、配列もポインタも連続した領域にアクセスするように見える。
入門書によく書いてあるメモリの配置そのままになっている。
ただし、実際にはCPUにとって、アクセスしやすいように、メモリ上に配置されている。
たとえば、char型の配列でも、16ビットCPUなら2バイトおき、32ビットなら4バイトおきに配置されることもあり得る。
0600デフォルトの名無しさん
NGNG何かその数字や文字列を消すような要求があった時に、
別のファイルに手動ではなく自動で保存する方法(プログラム)って無いですか?
0601デフォルトの名無しさん
NGNG日本語で話せ
0602600
NGNG管理者による手は加えずに、別のファイルに保存する方法でつ。
0603デフォルトの名無しさん
NGNGを繰り返して、初めのファイルを消去、そして別ファイルの名前を
初めのファイルの名前に変える。
0604デフォルトの名無しさん
NGNGコード示してもらうと助かります。
0605デフォルトの名無しさん
NGNG0606デフォルトの名無しさん
NGNG他人に伝わる日本語で話せ
0607デフォルトの名無しさん
NGNG0608これで分かるかな?
NGNG12345 あいうえお
12346 かきくけこ
12347 さしすせそ
12348 たちつてと
-------------------------
というファイルがあったとして、
例えば一行目(12345 あいうえお)←の登録者から、
「消したい」という要求があった時に
この行をデリート済みファイルとして他のファイルに保存したいでつ。
0609デフォルトの名無しさん
NGNG-------------------------
12346 かきくけこ
12347 さしすせそ
12348 たちつてと
-------------------------
このファイルと
-------------------------
12345 あいうえお
-------------------------
このファイルの二つになります お願いします
0610デフォルトの名無しさん
NGNGそれでもわかりません。
登録者って誰?つーか登録とは?
「消したい」という要求はどうやって出す?
デリート済みファイルって何?
0611デフォルトの名無しさん
NGNGOS? それともこのプログラムだけの概念?
0612デフォルトの名無しさん
NGNG母国語で書いてみな。分かる人が見てるかもしれないから。
0613デフォルトの名無しさん
NGNGんじゃ、消すけど別のファイルに消したIDはとっておきますよ。
と言った感じで。
>管理者ってのは何なんだよ。
自動でやってもらいたいので「管理者など人の手は加えずプログラムだけで処理しきる
0614デフォルトの名無しさん
NGNGやっと気づいた。
0615デフォルトの名無しさん
NGNGこれだけ書いても分からない喪前はアフォなのか?
0616デフォルトの名無しさん
NGNGおまいさんの説明は質問されたことには触れずに他の妙なとこ説明してるんだよ。
それじゃ誰もわからん。下手すりゃ、釣り師扱いだ。
0617デフォルトの名無しさん
NGNGこれだけ書いても分からない喪前はアフォでつね。
0618デフォルトの名無しさん
NGNG0619デフォルトの名無しさん
NGNG>>登録者って誰?つーか登録とは? (>>610)
>一行目が誰かから登録されたIDで、…
>>管理者、登録者ってのは何なんだよ。(>>611)
>自動でやってもらいたいので「管理者など人の手は加えず…
いわゆる再帰ですね。
終了条件が無いから無限ループですね。
0620デフォルトの名無しさん
NGNGあとの細かいことはしらん。
0621デフォルトの名無しさん
NGNGあるわけないし。
0622デフォルトの名無しさん
NGNG>>619が言ってるのは
「登録」って何?って質問に
>一行目が誰かから「登録」された…
って「登録」という単語を使ってることを再帰といってるんだろ。
だから登録って何なんだ。
「管理者」も同じ。
0623デフォルトの名無しさん
NGNG管理者でもそのファイルに手を加えず、
プログラムだけでファイルの中にある文字列処理をしてほしいと言う事。
0624デフォルトの名無しさん
NGNG0625デフォルトの名無しさん
NGNG和姦ねーヤツは釣りといってごまかす(www
0626デフォルトの名無しさん
NGNG0627デフォルトの名無しさん
NGNG#include <string.h>
#define FILENAME "test.txt"
int main(void){
FILE *fin, *fout1, *fout2;
char pat[16], buf[1024], *p;
fin = fopen(FILENAME, "r");
fout1 = fopen("temp.txt", "w");
fout2 = fopen("damelist.txt", "a");
printf("番号 >");
fgets(pat, sizeof pat, stdin);
(p=strchr(pat, '\n'))?(*p = '\0'):(pat[15] = '\0');
while (fgets(buf, sizeof buf, fin) != NULL){
if ((p=strstr(buf, pat)) != NULL){
fputs(buf, fout2);
} else {
fputs(buf,fout1);
}
}
fclose(fin);
fclose(fout1);
fclose(fout2);
remove(FILENAME);
rename("temp.txt",FILENAME);
return 0;
}
ちょっと違うが、こんな感じか。(エラーチェックもしてない。)
0628デフォルトの名無しさん
NGNG0629デフォルトの名無しさん
NGNGそれだとpatの大きさが小さいからふやすべきだな。
0630デフォルトの名無しさん
NGNG書いたりリクエストを出したりするからちょうどいい練習だろ(笑)
0631デフォルトの名無しさん
NGNGという分かりやすい例を見てしまった気がします。
0632デフォルトの名無しさん
NGNG0633デフォルトの名無しさん
NGNGいまから覚えるならどっち??????
0634デフォルトの名無しさん
NGNGどの言語がいいか(不毛な)議論をしてるスレなら他に腐るほどある。他池。
0635デフォルトの名無しさん
NGNGコイン投げでもして適当に決めなさい
どっちを選んでもどうせ五年後には勉強しなおすときが来る
0636デフォルトの名無しさん
NGNGリクエストがあるってことは、ネットワークプログラミングだろ。
0637デフォルトの名無しさん
NGNG取った文字をwprintsで表示すると自分の思う文字が表示されません。
ここで現われる文字はキーボードに対応するアスキーコードではないのですか?
エロイ人アドバイスお願いします。
0638デフォルトの名無しさん
NGNGスレ違い。
他のスレで質問するときはソースも一緒に書けよ。
0639デフォルトの名無しさん
NGNG12346 かきくけこ
12347 さしすせそ
12348 たちつてと
とかしておいて、暇なときにバッチで縮小する。
というのは、今時はしないの?
0640デフォルトの名無しさん
NGNGへえーなるほど。
今時の人間なので参考になります。
0641デフォルトの名無しさん
NGNGどういう意味?
0642デフォルトの名無しさん
NGNG会計系の処理のところで、NPV法の為の算出式を作っています。
NPV法の基本式というのが、
NPV = - i + FCF1/r + FCF2/r**2 + FCF3/r**3 ・・・FCFn/r**n
但し i = 投下資本、 FCFn = n期のFCF、 r = 割引率、とする。
r**n というのが、rのn乗と理解してください。
こういった式をC言語で記述する場合、
i[n] = n期のFCF、time = 算出期間n、out = 投下資本
for( i = 1 ; i <= time ; i++){
pv = in[i];
for( j = 1 ; j <= i ; j++){
pv = pv / r;
}
npv += pv;
}
npv = npv - out;
といった式を作ったのですが、こういう記述以外での
記述方法は有りますか?
このままでもきちんと動くのですが、他の記述方法も
知りたいなと思いまして。
識者のかたよろしくお願いします。
0643デフォルトの名無しさん
NGNG0644デフォルトの名無しさん
NGNG識者ではないが、普通ならこんな感じでいいんじゃないの?
(何のテストもしてないけど)
double NPV(double out, double in[], int time, double r)
{
double u;
out = -out;
for(u = r ; time -- ; u *= r)
out += *in ++ / u;
return out;
}
0645デフォルトの名無しさん
NGNGべき乗なら、
#include <math.h> しておいて、
pv = pv / pow(r,i);
とすれば j をつかった for 文は不要。
0646デフォルトの名無しさん
NGNGそれに大してstrlenやstrstrをつかうのって問題ないのかな
よくそういうコードみるけど
0647デフォルトの名無しさん
NGNGえ。されますよ。以下は規格じゃないけど、一応ISO/IEC 9899:1990に準拠してると
謳ってるFreeBSDのfgets(3)から抜粋。
The fgets() function reads at most one less than the number of characters
specified by size from the given stream and stores them in the string
str. Reading stops when a newline character is found, at end-of-file or
error. The newline, if any, is retained. If any characters are read and
there is no error, a `\0' character is appended to end the string.
エラーが起きたときは'\0'がつかないみたいね…。
エラーじゃないときは'\0'がつきます。
0648デフォルトの名無しさん
NGNGどこかで記憶違いしたのでしょう。
0649デフォルトの名無しさん
NGNG0650デフォルトの名無しさん
NGNGある文字列と文字列の大小比較をしたいのですが
どうすればいいでしょうか?
char hoge[32];
char hage[32];
strcpy(hoge, "123");
strcpy(hage, "789");
if (hoge < hage) {
printf("Good!");
}
という感じです。よろしくお願いします。
0651デフォルトの名無しさん
NGNG|
|
|
|
|
↓
0652デフォルトの名無しさん
NGNG0653デフォルトの名無しさん
NGNGそれだ!
0654デフォルトの名無しさん
NGNGやりたいのは"文字"じゃなくて"数字"の比較じゃないのか?
0655642
NGNGありがとうございます。
644さんのfor文がどういう意味になるのか分かりづらいのですが
チョット試してみます。
645さん、そうやって使える関数が有るのですね。
そうやるほうがシンプルになりそうなのでそうしてみます。
どもどもです。
0656デフォルトの名無しさん
NGNGって書き方良くないの?
0657デフォルトの名無しさん
NGNG#define viod void
0658貧乏紙
NGNGvoidは予約キーワードに指定されているためエラーが出ますぞ。
0659デフォルトの名無しさん
NGNGエラー出ないよ。
っていうか、
#define for if(0);else for
とかも出来るし。
0661デフォルトの名無しさん
NGNGプリプロセッサには関係ないし。
つーか関係あってもシンボルになるのはviodの方だから問題ないだろ。
0662デフォルトの名無しさん
NGNGそれをCスレで書くと面白いことが起きるよって
どこかに案内でもあるのか?w
それともバカの一つ覚えなのかw
0663貧乏紙
NGNG0664デフォルトの名無しさん
NGNG0665656
NGNGで、結局void main(void)って良くないの?
どっかのスレでダメみたいなこと言ってたもんで…
0666デフォルトの名無しさん
NGNG動けばいいんじゃない?
0667デフォルトの名無しさん
NGNGではvoid main(void)を愛用していきます。
0668デフォルトの名無しさん
NGNG0669デフォルトの名無しさん
NGNGカニハンリッチはmain()
これに習うのがまっとうな人間。
0670デフォルトの名無しさん
NGNG0671デフォルトの名無しさん
NGNG#define public
#define String char*
0672我ながら厨房くさ〜
NGNGint g_int = 1234;
int *bar(void)
{
return &g_int;
}
int ((*foo(void))(void))
{
return (void*)bar; /* ←気持ち悪い */
}
int main()
{
int (*(*(*hoge)(void))(void)) = foo;
int (*(*geho)(void)) = hoge();
return printf("%d\n" *(,geho()));
}
上のプログラムを関数ポインタの勉強がてら作ってみたのですが、
コメント部のキャストを行わないと、
「式は引数リストのない関数に対して評価します」
という warning が出ます。でも void* にキャストするのも気持ち悪い。
かといって関数ポインタ型へのキャストは不正とされます。
なにか他の(キャスト?)方法はあるのでしょうか?
それともなんか変なことやってんのかな?
0673デフォルトの名無しさん
NGNGbar を (*foo) に置き換えた宣言を作ってみれ
0674デフォルトの名無しさん
NGNG#include <stdio.h>
int g_int = 1234;
int *bar(void)
{
return &g_int;
}
int *((*foo(void))(void))
{
return bar;
}
int _tmain(int argc, _TCHAR* argv[])
{
int(*(*(*hoge)(void))(void)) = foo;
int(*(*geho)(void)) = hoge();
return printf("%d\n", *geho());
}
fooがint *(*)(void)を返していないことが原因
ちなみに関数ポインタはvoid *にキャストできない
0675デフォルトの名無しさん
NGNG#include <stdio.h>
int g_int = 1234;
int *bar(void)
{
return &g_int;
}
int *(*foo(void))(void)
{
return bar;
}
int main(void)
{
int *(*(*hoge)(void))(void) = foo;
int *(*geho)(void) = hoge();
return printf("%d\n", *geho());
}
fooがint *(*)(void)を返すと定義されていないことが原因
ちなみに関数ポインタはvoid *にキャストすることは出来るが
元に戻るとは限らない
(sizeof(void *)とsizeof(void (*)(void))を要比較、大体の処理系では異なる)
0676デフォルトの名無しさん
NGNGANSI C では void main(...) は許容されないから、
プロならやめといたほうがいいでしょう。
ホビープログラミングの場合はお好きなように。
0677デフォルトの名無しさん
NGNGプロなら納期までに動けば認めてもらえるんです
趣味ならプライド持ってこだわらなきゃ
0678デフォルトの名無しさん
NGNG0679デフォルトの名無しさん
NGNG氏ね
0680672
NGNG× int ((*foo(void))(void))
○ int (*(*foo(void))(void))
でした、すみません。
>>675
ちなみに上の書き方はなんかおかしいですね。
確かに、 int *(*foo(void))(void) のほうが正しそうです
(厳密にはどうなのか分からないところが悲しい・・・調べます。
・・・でも自分のは間違ってないか?動いてたけど)。
しかし 675 のをコンパイルしても、同じエラーが出ます。
「式は引数リストのない関数に対して評価します」って warning は
「関数実行しようとしてんのに、引数がねぇんだよ!!」
ってことだと思うので、(とかいいながら実行すると関数のアドレスを返してくれるから謎)
「ちがうよ、関数のアドレスを返してるだけなんだよ」
っていうキャストが必要なんじゃないかと思うのですが、
考えてみると、foo 関数の宣言から明確にそのことが分かるから・・・
つまり自分の認識が間違ってる?それともコ(ry
>>673
多重定義になるのでは?というか多分良く分かってません。どういうことでしょう?
void* にキャストするのは非常に嫌なのですが、
ぐぐったらそれっぽい記述があったのでしてみました
(スレ違いですが、VC6に関してはOKなのかな)。
個人的にはこっちのほうが warning じゃない?と思ってしまいます。
0681デフォルトの名無しさん
NGNGtypedef int* (*FUNC)(void);
とか書いてみるのは如何?
0683672
NGNGtypedef int *(*pFunc)(void);
intg_Int= 1234;
int *bar(void)
{
return &g_Int;
}
pFunc foo(void)
{
return (pFunc)bar;
}
int main(void)
{
pFunc(*hoge)(void)= foo;
pFuncgeho= hoge();
return printf("%d\n",*(geho()));
}
で出来ました。(インデントは許して)
関数ポインタ型にキャストすればよかったんですか。
ちなみに 672 の「関数ポインタ型」→「(関数ポインタを返す)関数の型」ですた。
いろいろ知識不足でご迷惑をおかけしました。
これで寝れそうです。
0684675
NGNGVC7.1でコンパイルとおったよ。コンパイルのバグの可能性も疑うべし。
もしくはプリプロセッサが悪さをしているか…
察しのとおり関数ポインタのvoid*キャストはVCの拡張機能、
warningを出したいのなら言語拡張機能をOFFにするとよい
関数呼び出しをする演算子は()であって、関数名自体は関数を示す関数ポインタだよ
ちょうど配列のarrと[]演算子のarr[0]の関係かな?
関数宣言の外側の括弧はあっても無くてもいいよ、両方とも合法(BNF参照のこと)
やとうとおもえば((printf))("Hello");みたいなことも出来るしね
ちなみに動いてたから間違ってないはずと言うのは危険だよん
0685デフォルトの名無しさん
NGNG0686デフォルトの名無しさん
NGNGキーワード「隠蔽」
0687デフォルトの名無しさん
NGNGstaticもつけないでか?
0688デフォルトの名無しさん
NGNG0689デフォルトの名無しさん
NGNG0690デフォルトの名無しさん
NGNGそのうちつくだろ
>>688
そのうち構造体になるんだろ
第一テストコードに文句言うな
0691デフォルトの名無しさん
NGNG値返しだと読み込み専用になっちまう
Set関数を作れってことになると思うんだけど
operator関数みたいなことがしたくて仕方が無いから妥協
さらにはそのうち配列になる可能性があったりして
そんな妥協の産物といってみるテスト
さすがにstaticがついていない理由は思いつかなかった
0692デフォルトの名無しさん
NGNG車内に代々伝わる呪いのコード
そのコードのメンテナンスをした者は必ず三日以内にバグまみれで発狂して死ぬ
いつしか「あのコードは決していじってはいけない」そんな決まりが生まれる
しかしあなたは上司からそのコードのメンテナンスを命じられた!
グローバル変数地獄のコードを直接いじらず外部に修正を加えるためには…
そう!グローバル変数のアドレスを関数の戻り値で公開するしかない!
これぞ差分プログラミング!
to be continued...
0693デフォルトの名無しさん
NGNG何のためにやっているのか、はさておいて、
pFunc foo(void)
{
return (pFunc)bar;
}
この無駄なキャストはやめろ。激しく危険だ。
0694デフォルトの名無しさん
NGNG0695デフォルトの名無しさん
NGNG苦しい将来につながる呪いのキーワード
0696デフォルトの名無しさん
NGNG0697デフォルトの名無しさん
NGNGじゃあ、アプリを作りながら学べるところ。
>>696
いいサイトですね。ありがとうございます。
0698デフォルトの名無しさん
NGNGアプリやゲームを作らずに学ぶ方法は漏れには思いつきません
0700デフォルトの名無しさん
NGNGcheck関数にすでに宣言された配列のデータを渡したかったので、
void main(){
.............................
check(numbers[]);
}
check(int numberscheck[]){
....................
}
このように書きました
こうすれば、numbers[0],[1],[2]・・・を全部numberscheckに渡せると思ったからです
しかし、 error C2059: 構文エラー : ']' と言われてしまいました
いかがいたしましょう
0702デフォルトの名無しさん
NGNG0703デフォルトの名無しさん
NGNG0704700
NGNGポインタ・・・
後ほどじっくりゆっくり見てみます。今はもうちょっと基本的なことをやるべきレベルだと思うので
ありがとうございました
>>702
すいません、できれば良い渡し方を教えていただきたかったです
>>703
「'check' : 関数が不正な 1 個の実引数をともなって呼び出されました。」と、出ます
0705デフォルトの名無しさん
NGNGじゃあそのnumbersの型に問題があるんだろ。
配列かポインタなんだろうな?
0707デフォルトの名無しさん
NGNGそれなら>>703で良いのだが。
プロトタイプ宣言が間違っているなら実際の定義と食い違ってエラーになるし、
宣言がないならそもそも型チェックでエラーになることはないし。
0708700
NGNGプロトタイプ宣言を消して、check関数をmainより上にもってきたら、>>703ですんなり通りました
その問題のプロトタイプ宣言ですが、
void check():
だけでした
もうひとつ恥ずかしいことですが、配列を渡す時のプロトタイプ宣言はどのようにすればよいのでしょうか?
0709デフォルトの名無しさん
NGNGそれと、おまえ、C++でやってるだろ?
0710デフォルトの名無しさん
NGNG0711デフォルトの名無しさん
NGNGint check(int numberscheck[]);
int main()
{
check(numbers);
return EXIT_SUCCESS;
}
int check(int numberscheck[])
{
return 0;
}
0712デフォルトの名無しさん
NGNGそうすると勝手にC++として処理されるらしい。
だからCとして扱ってほしければ拡張子を.cに汁。
0713700
NGNGすいません、ソースにはきちんと void check(); と書いてました。素直にコピペしたらよかった
そして、またも質問の答えになるかわからないけど、VC++使ってます
ついでにまたまた恥ずかしい話ですが、CとC++の違いがわかりません。ごめんなさい
>>710
戻り値はいらないのでvoidかなとか思ってました
そういうものなんですね
>>711
おお。なるほど
そのプロトタイプ宣言の書き方と、>>710のとおり戻り値を書き換えると、すべてが思い通りにいきました
本当にありがとうございました
>>712
よくわかりませんが、その通りです
そしてよくわかりませんが、またよくわからなくなったら.cにしてみます
ありがとうございます
0714デフォルトの名無しさん
NGNG>戻り値はいらないのでvoidかなとか思ってました
おいおい。戻り値いらないんだったら
void check(int numberscheck[]);
void check(int numberscheck[])
{
...
}
だろ。
0715700
NGNGなるほどう。その通りです
試しに両方のintをvoidに書き換えてみたら、
関数は 'void' 型として宣言されていますが、値を返しました。
と言われました。すごい丁寧ですね。嬉しくなってきます
そして今日は return 0; でも値を返していると学びました
知りませんでした。何もかもが新鮮です
ちなみに0消して return; にするとコンパイルできました・・・なんて報告はいりませんか
0716デフォルトの名無しさん
NGNG0717デフォルトの名無しさん
NGNG0718デフォルトの名無しさん
NGNGことが信じられないのだが、今の世の中これが普通なのか?
C以前に学ぶべきことが多くて混乱するだけの気が・・・
0719デフォルトの名無しさん
NGNG0720700
NGNGそれでもきちんと動作するようになりました。4桁の数当てゲームです
ランダムの数字を選ぶのと、今回の関数のことは人様の力を借りましたが、
1人でできたというのはやはり嬉しいものです。本当にありがとうございました!
>>718
その環境は、“弟の特権”と言うヤツかもしれません
意味のわからない単語は多いですが、とりあえず後でいいやと目をつぶってます
「コマンドライン」も意味はわかりません。きっとそれじゃダメなんでしょうね。でも今は許してください
0721わーおあまさがぜんぜんちがーう
NGNG0722721
NGNG0723デフォルトの名無しさん
NGNGドンマイ
0724デフォルトの名無しさん
NGNG0725デフォルトの名無しさん
NGNG0726デフォルトの名無しさん
NGNGGIUって何だよ。
0727デフォルトの名無しさん
NGNGすまん。察して
0728デフォルトの名無しさん
NGNG「ぼ、ぼく、まだCの勉強はじめたばかりなんです。GIUっなんて出来ません」
さらに彼は手を動かしながら、不安に怯える私に「やらないか」と言った。
0729デフォルトの名無しさん
NGNG親衛隊か? こいつ(藁
0730デフォルトの名無しさん
NGNG「いや、GIUしないで」
0731デフォルトの名無しさん
NGNG冗談さておき、自前でグラフィック画面にボタンを描画するような処理なら
結構すぐに始めたが。
#つーか、その頃手軽なGUIライブラリなんてなくってね。
0732デフォルトの名無しさん
NGNGそしてオブジェクト指向を覚えた後には
泥沼設計地獄が待っている
いや、楽しいんだけどさ
0733デフォルトの名無しさん
NGNG0734デフォルトの名無しさん
NGNGこれで一位とってくれー!なかなかとれん。。。もうだめぽ。
フローチャートの高速化のコツがわからん。
ttp://game5.2ch.net/test/read.cgi/game/1080879039/48-
0735デフォルトの名無しさん
NGNG数値データをテキスト(CSV)から読みこんで処理するということを良くやるのですが、
データが大きいのでバイナリ化(?)でもして高速に処理したいんですが、
どうやったら良いのでしょうか?
CSVのファイルをソースにコピペして、どうにかしようかとも考えたんだけど、
もっと賢い方法があるような気がする。
教えて下さい。
0736デフォルトの名無しさん
NGNG生のデータを見ずに圧縮方法を考え出せる奴などこの世にはいない。
0737デフォルトの名無しさん
NGNGCSVを読み込んだら構造体の配列にでも入れるのだろうから、
そいつをバイナリイメージのままファイルに出力、
以降はそのファイルを読めばCSVを読むより多少は速いかも知らん。
だが、ファイルサイズとデータにもよるが、高速化すべきポイントが
そこかどうかはなんともいえないのが実情だがな。
0738デフォルトの名無しさん
NGNGとりあえず言えることは
テキストの数値データをバイナリデータに変換(文字列型を整数型に変換)
という処理がボトルネックになっているのならばすさまじいパフォーマンスアップが望める
しかし、テキストのデータのほとんどが文字列だった場合、それをバイナリにしたところで
それはテキストデータなのだから意味が無い、むしろ構造体を直接書き出すとかやった場合は
固定長文字列の場合はファイルサイズが大きくなり、可変長文字列だった場合は
処理に時間がかかるようになる
さあ、どっち?
0739デフォルトの名無しさん
NGNG0740デフォルトの名無しさん
NGNG0741デフォルトの名無しさん
NGNGソースにコピペする覚悟があるようだから、バイナリファイルに書き出して、
(配列で有る必要は無い。int等の数値をsizeof(int)だけ順次書き込めば桶。ただ、charとかshortとか
を併用するなら構造体が便利)カスタムリソースとしてリンクすればよろし。
Win32なら、必要なAPIはLoadResource()、FindResource()
0742デフォルトの名無しさん
NGNGお歴々の言う通り、数値をバイナリ化しちまえば速くなると思う。
が、その数値ってのはCSVで管理してるくらいだから頻繁に書き換えるんじゃないのか?
そうなると今度は人の手で書き換える時が面倒になってしまうが。
0743デフォルトの名無しさん
NGNGスタティックリンクは諦めて、CSV<->バイナリの
変換フィルタを作るのが得策かね。
0744デフォルトの名無しさん
NGNGWin32以外で環境依存せずにカスタムリソースとしてリンクする手法があるなら教えてくれ。
0745デフォルトの名無しさん
NGNGバイナリデータを24bitRGBの画像としてDIBで扱えば、フォーマットを忘れる事も無いし
グラフィックエディタで編集出来るぞ。
数値の全体観がヴィジュアルに把握出来るから何か良い事があるかもしれん。
ランレングス圧縮は標準だが、PNGで圧縮と洒落込むのも一興。
アングラの香りがするのも単調な日常業務にあってはスパイスだ。
ただし、16bitRGBはお勧めしない。
0746デフォルトの名無しさん
NGNG実際、8ビットや16ビットのデータをグレイ画像に落とす応用は結構ある。
問題はだ、16ビットグレイを扱えるツールが少ないことだな。
0747デフォルトの名無しさん
NGNG初心者向けCの本にはちっとも書いてないし、
関数でもないから(?)コンパイラの説明書にも
書いてないっす。
0748デフォルトの名無しさん
NGNGttp://www.google.com/search?hl=ja&ie=Shift_JIS&q=sizeof%28%29&btnG=Google+%8C%9F%8D%F5&lr=
0749747
NGNG0750デフォルトの名無しさん
NGNGなんか解説サイト見たら
MSDNライブラリを参照してください
と説明されていたのですが
0751デフォルトの名無しさん
NGNGhttp://www.microsoft.com/japan/msdn/library/
これくらいはぐぐれ。
0752735
NGNGデータは完全な数値データなので、高速化できるということですね。
>スタティックリンクは諦めて、CSV<->バイナリの
>変換フィルタを作るのが得策かね。
CSV->バイナリ、この作業がよくわからんのですが、、、
バイナリ化したデータ、これはobjファイルですよね?
で使うときはこれをリンクして使うわけですよね。
で、変換フィルターってのはどうやって作るんでしょうか?
とにかく、テキストデータを読み込んで、どうにかコンパイルして、
objファイルを生成するのかと思ってましたが、どんなもんなんでしょうか?
ちなみに環境はlinux gccです。
0753貧乏紙
NGNGテキストデータとバイナリデータです。
テキストデータはASCIIテキストを扱いOSによる文字変換の差を吸収します。
例
Windowsシステムでは改行と復帰を2文字(CR,LF)であらわしますが、Cでは\nの1文字ですので1文字に変換します。
バイナリデータとはどんなデータでも扱えます。バイナリデータはファイルのデータ
と文字が1:1で対応します。
>>735さんに質問ですが
本当にテキストデータでファイルがかかれてますか?
普通にfopen,fwrite,freadを使っていればバイナリデータで処理されるはずですが。。。
0754デフォルトの名無しさん
NGNG殿!
voidは予約キーワードに指定されているためエラーが出ますぞ。
0755貧乏紙
NGNG3色しかないから3の倍数だと思うんだけど。。。
0756貧乏紙
NGNG0757デフォルトの名無しさん
NGNGソースリスト中で、配列の初期化にCSVテキストそのものをコピペすれば、
実行ファイル中ではデータはバイナリになっとる。
dat[4]={1,2,3,4};みたいなかんじ。
ただ、これではデータを変更する度にビルドする事になるし、
メモリが一括で確保出来る保証が無い。
>>743で言ってるのは、データはデータファイルのまま残すが、
CSVからバイナリファイルに変換して使用するという意味だと思われ
>753
CSVはテキストだけだと思ってたが、バイナリもあるのか?
>755
16bitRGBのRGBは、{0x1f, 0x3e0, 0x7c00}または{0x1f, 0x7e0, 0xf800}
のビットフィールドだね。
前者ではgの解像度だけが2倍で、後者では1bit余る。
もっと自由にビットを割振れる処理系もある。
0758735
NGNGはい。テキストです。
>普通にfopen,fwrite,freadを使っていればバイナリデータで処理されるはずですが。。。
読み込みは ifstream でやってます。
>データの形式には2種類あります。
>テキストデータとバイナリデータです。
その辺のことを良く知らないのです。
今、調べてたら、ifstream にもバイナリモードというのがあって、
これを使ったら良いのかなと考えてたところです。
少し勉強してみます。
0759デフォルトの名無しさん
NGNG>普通にfopen,fwrite,freadを使っていればバイナリデータで処理されるはずですが。。。
誤解を招く表現だな。
普通にfwrite,freadを使ってれいれば、第一オペランドの場所にデータが有り、
そこを数値型でアクセスすれば数値になるし、文字型でアクセスすれば文字型になる。
というより、数値型と文字型の区別自体、文字列を扱う関数以外では意味が無いのでは?
0760デフォルトの名無しさん
NGNG0761デフォルトの名無しさん
NGNGセマフォとかミューテックス使いたいんだけどどうすればいい?
0762デフォルトの名無しさん
NGNG同期関係はこの本が良かった。
ttp://www.amazon.co.jp/exec/obidos/ASIN/4774108022/250-1842761-3041806
0763デフォルトの名無しさん
NGNG_beginthread()ってことはWinだよな。CreateThread()とかと一緒。
戻り値がスレッドのハンドルになってるので必要ならAPIに渡してやればOK。
0764デフォルトの名無しさん
NGNG0765デフォルトの名無しさん
NGNGC/C++室 Ver.5スレに行け。ここはCのスレだ。
その上で、もっと具体的にやりたいことを書け。
>>761
環境依存なら該当スレに行け。例えばWin32APIなら専用スレがある。
0766デフォルトの名無しさん
NGNG>データが大きいのでバイナリ化(?)でもして高速に処理したいんですが、
扱うデータが大量なのでファイル読み込み処理に時間がかかる
のであれば、RAMディスクを使う手もあるが。
0767デフォルトの名無しさん
NGNG>バイナリ化したデータ、これはobjファイルですよね?
>で使うときはこれをリンクして使うわけですよね。
...だめだこりゃ
(逝ってみよう)
0768デフォルトの名無しさん
NGNG0769デフォルトの名無しさん
NGNG0770デフォルトの名無しさん
NGNGバイナリ化もいいが、>>738も触れてたようにランダムアクセスを念頭に置くべきだよ。
0771デフォルトの名無しさん
NGNGキー
インデックス
昇順
0772デフォルトの名無しさん
NGNG0773デフォルトの名無しさん
NGNG0774デフォルトの名無しさん
NGNG0775デフォルトの名無しさん
NGNG>データの形式には2種類あります
>テキストデータとバイナリデータです
はっきり言うが、二種類など無い
テキストデータはバイナリデータの一種だ
存在するのは「テキストモード」と「バイナリモード」だ
初心者向けのWindows解説本ならまあただしい表記だが、
プログラマ向けの解説でのこの表現はただ誤解を産むだけ
0776デフォルトの名無しさん
NGNGこのループからはどうやって抜けるのだ?
0777デフォルトの名無しさん
NGNG0778デフォルトの名無しさん
NGNG例えばだ、ある項目のトータルを計算したい場合などは
ランダムアクセスなぞ無意味
0779デフォルトの名無しさん
NGNGMSのローカルルールなわけだが
0780デフォルトの名無しさん
NGNG現状はMSのOS以外では使われていない仕様だとしても。
0781デフォルトの名無しさん
NGNG0782デフォルトの名無しさん
NGNG>>778
>ある項目のトータルを計算したい場合などは
>ランダムアクセスなぞ無意味
ランダムアクセスを想定したファイルの読み書きで
シーケンシャルなアクセスが遅いとは限らないと思う。
シーケンシャルに読みたい場合は、いちいちポインタを動かさず
適当な大きさの構造体なり配列に読み込めば、デリミタのない分
むしろ高速ではないか?
0783デフォルトの名無しさん
NGNG固定長によるデータサイズの無駄を指してるなら、異存は無いです。
99%のデータが0..255だが最大値は100億、なんて場合は可変長だろうね。
0784デフォルトの名無しさん
NGNGだからあんたも頓珍漢だ。
正しいことを言うだけが能ではあるまい。
#まぁ、質問者が出てこないことにはこの調子で続くんだろうな。
0785700
NGNG0786デフォルトの名無しさん
NGNG>シーケンシャルなアクセスが遅いとは限らないと思う
だからそーゆーことじゃねーよ
ランダムアクセスしなくてすむなら、無意味だっつーの
0787デフォルトの名無しさん
NGNGあなたはレス番号を間違えている
0788デフォルトの名無しさん
NGNGランダムアクセス&固定長って、
あぁそうか n番目を 先頭+(n-1)*サイズ でアクセスするのか
もまえは既に死んでいるぞ(w
07892ch初心者
NGNGわからないので質問させてください。
FILE *fp;
char c,str[50];
int i;
if((fp = fopen("test.txt","r+"))==NULL){
printf("error");
exit(0);
}
while((c = fgetc(fp))!=EOF){
str[i]=c;
i++;
}
str[i]='\0';
rewind(fp);
fprintf(fp,"test");
fclose(fp);
こんな感じの事をしたいのですが、"test.txt"が"test"という文字列より
大きい場合(この場合は4バイト)"test"の後ろに元のデータが残ってしま
います。
ファイルを読み込み、書き込みモードで2回開けばすむ事ですが、出来たら
一回で済ませてしまいたいのです。
ファイルをクリアする関数とかあれば教えてください。
0790デフォルトの名無しさん
NGNGたぶん望む動作は実現できない。
0791デフォルトの名無しさん
NGNG07922ch初心者
NGNGfreopen()の存在自体しりませんでした(汗
freopen()で十分便利そうなので使いたいと思います。
ありがとうございました。
0793デフォルトの名無しさん
NGNGファイルを切り詰める機種依存しない関数はない。
単純に削除するにはremove()。
空のファイルを作るにはfopen()で第二パラメータに"w"か"w+"。
>>791
どっからそんな発想が出てくるんだ?
0795デフォルトの名無しさん
NGNG俺様が推理するに
>791が r で読んで w でリオープン って意図を
>793 がアフォなので「はぁ?何逝ってんの」
って事だな
0796デフォルトの名無しさん
NGNG俺様の超好意的な解釈によると
「>791は神!」って事では?
0797デフォルトの名無しさん
NGNGつまり
>どっからそんな発想が出てくるんだ?
(解釈1)はぁ?お前何一点の?(侮蔑)
(解釈2)私みたいな低脳には思いつきませんでした。(感嘆)
ということかな。
0798793
NGNG>>791
どっから「rewind()するくらいなら」なんて発想が出てくるんだ?
「fclose()してfopen()するくらいなら」なら判るんだがな。
0799デフォルトの名無しさん
NGNG0801デフォルトの名無しさん
NGNG0802デフォルトの名無しさん
NGNG0803デフォルトの名無しさん
NGNG|||||||||||||||||||||||||||
||||@||||||||||@|||
|||||||||||||||||||||||
|||||||||▽||||||||||| >>ぬるぽ!
|||||||||||||||||||||
|||||||||
0804デフォルトの名無しさん
NGNG0805デフォルトの名無しさん
NGNG0806デフォルトの名無しさん
NGNG0807デフォルトの名無しさん
NGNG自分の持ってる本にはVisual C++、もう一冊にはVisual C++は
上級者向けと書いてあるんです。初心者でも使えるコンパイラを教えてください。
0808デフォルトの名無しさん
NGNGむしろ統合環境なVC++は難しいかも
0809デフォルトの名無しさん
NGNGpublic static void main(String args[]) {
ex app = null;
app.hoge();
}
void hoge() {
}
}
0810デフォルトの名無しさん
NGNG0811デフォルトの名無しさん
NGNGとりあえずCの勉強始めようか、ってんならフリーのコンパイラダウンロードしてやって見れ。
0812デフォルトの名無しさん
NGNG0813デフォルトの名無しさん
NGNGカエレ!
0814デフォルトの名無しさん
NGNG0815デフォルトの名無しさん
NGNGhttp://www.uploda.net/anonymous/etc2/upload22465.c
二次元配列と言うものの勉強のため、1,3,5,2を押すと上下左右に、
冒頭で設定したwsizex × xsizeyの長方形の範囲内で動くプログラムを作ってみました
一見普通に動くのですが、偶然発見したことで、wsizexがwsizeyより2以上大きくなると異変が生じるのです
2時間くらい粘りましたが、このバグのもとが全然わからなかったわけです
めんどくさければ「どこがおかしいか」まで見つけてもらわなくても結構ですから、
「なぜバグるのかわからないときは、こうしている」という経験談を教えてください
0816デフォルトの名無しさん
NGNGで定義しつつ、使うときは
map[mapy][mapx]
なのはなぜだ?
0818デフォルトの名無しさん
NGNG0819デフォルトの名無しさん
NGNGかっこいいトリップを見つけたので使ってください。
0820デフォルトの名無しさん
NGNG0821デフォルトの名無しさん
NGNGおまえ用にできてないってことだ
0822デフォルトの名無しさん
NGNGあらそう??
つかAPIとかつかったりVBでリンクとったり
するときsizeofでいつもド壷にはまる
0823デフォルトの名無しさん
NGNGやっぱりそうじゃん
sizeof が「何を」返してるのか
根っこが見えてない
0824デフォルトの名無しさん
NGNGポインタが型をもっていることを理解してないか
どちらかが原因の気がする
0825デフォルトの名無しさん
NGNGではあなたのオツムで伝授してください。
ヨロオネ
0826デフォルトの名無しさん
NGNG受信側のプロトコルは? レイヤ1から公開しる
0827デフォルトの名無しさん
NGNGTCPアンスコIP
0828デフォルトの名無しさん
NGNGなるほど、おまいの脳にはつながってないわけか
0829デフォルトの名無しさん
NGNG0830デフォルトの名無しさん
NGNGTCP_IP?
0831デフォルトの名無しさん
NGNG0832デフォルトの名無しさん
NGNGこれマジスレ
0833デフォルトの名無しさん
NGNGこれマジレス
0834デフォルトの名無しさん
NGNG0835デフォルトの名無しさん
NGNGを符号をつけてCHARのファイルに出力したい
(パック型とはバイナリ下位一ビットで符号を表しており
(Cは+ Dは-)で 100C なら 100 010D なら -10
符号をつけてCHARでファイルに出力したいです。
元ファイルがバイナリで 100C010D という形であれば
100-10 とテキストエディタで開いて見えるようにしたいです。
ソースを作ってみたのですが我ながらもう少し良い方法はないかと思っております
ご意見をいただけないでしょうか?
わかりにくい文章で申し訳ないのですが。宜しくお願いします
0836835
NGNGtypedef struct { unsigned char read_str[2];} INPUT_DATA ;
typedef struct { unsigned char out_str[4]; } OUTPUT_DATA ;
int main(argc,argv){
FILE *read_fp; FILE *write_fp; INPUT_DATA input_data; INPUT_DATA *p_input_data;
OUTPUT_DATA output_data;
int i_count; long data1 ; char buf{sizeof("0000")};
p_input_data=&input_data;
fread(p_input_data,sizeof(input_data),1,read_fp);
for ( i_count=0 ; i_count < 3 ; i_count++){
if( 0x0f & p_input_data->read_str[i_count] == 0x0c ) {
data1 = ( 10 * str[0] + 0.1 * str[4] - 0x0c ) ;
} else if ( 0x0f & p_input_data->read_str[i_count] == 0x0d ) {
data1 = (-1) * ( 10 * str[0] + 0.1 * str[4] - 0x0d ) ;
} }
if ( 0< data1 && data1 < 10 ) {
sprintf( buf , "%i" , 0 ) ;
sprintf( buf + 1 , "%i" , 0 ) ;
sprintf( buf + 2 , "%i" , 0 ) ;
sprintf( buf + 3 , "%i" , data1 ) ;
}
else if ( -10< data1 && data1 < 0 ) {
sprintf( buf , "%i" , - ) ;
sprintf( buf + 1 , "%i" , 0 ) ;
sprintf( buf + 2 , "%i" , 0 ) ;
sprintf( buf + 3 , "%i" , data1 ) ;
} else if ( 10 <= data1 && data1 < 100 ) { ・・・ }
else if ( ・・・ それぞれの場合を出力 }
memcpy(output_data.out_str, buf, sizeof(buf));
fwrite(&output_data,sizeof(OUTPUT_DATA),1,write_fp);
; }
見づらくてもうしわけないです宜しくお願いします
0837835
NGNG10 * str[0] + 0.1 * str[4] - 0x0c
の str[4] は str[1]の間違いです。
0838デフォルトの名無しさん
NGNG情報処理試験を思い出した。
0839838
NGNG> 元ファイルがバイナリで 100C010D という形であれば
これはint型の変数をそのまま書き出したものということ?
0840838
NGNG0841838
NGNGsizeof(input_data)をなぜかsizeof(int)と読み間違えていたw
0842デフォルトの名無しさん
NGNG数値の入り方のルールがよくわからないんだけど、
少なくともdata1の計算がおかしい。
data1からbufに変換するところは無駄だらけ、
memcpy()も不要。
0843デフォルトの名無しさん
NGNGsprintf(buf, "%04d", data1);
でいいんでない?
0844デフォルトの名無しさん
NGNGちょっと調べてみた。
パック型は、一桁4ビットなので1バイトで二桁ってことになる。
なので、変換関数はこんな感じ。
/* const char * pc はデータの先頭、4bitがa-fなら終端とする */
int pack2bin(const unsigned char * pc)
{
int data = 0;
while (*pc >= 0x0a) {
data = data * 100 + (*pc >> 4) * 10 + (*pc & 0xf);
}
if (*pc == 0x0d) {
data = -data;
}
return data;
}
0845fd
NGNG0846デフォルトの名無しさん
NGNG0847デフォルトの名無しさん
NGNG0848デフォルトの名無しさん
NGNG0849デフォルトの名無しさん
NGNGC言語のプログラムに最低限必要なのは、コンパイラとエディタ
コンパイラとは、人間がわかりやすく書いたプログラムを、コンピューターが理解できるように翻訳する通訳さんみたいなもので、
エディタとは、人間が書くためのもの。これは最低メモ帳でもできる
両方の機能を兼ね揃えたソフトはあるけど、無料でやりたいのならとりあえず個別に揃えよう
コンパイラは>>846がお勧めだよ
0850デフォルトの名無しさん
NGNGどのくらいでバイトで使えるレベルのプログラマになれますか?
2.プログラミングのために、ノートかポケットPC、もしくはPalmのような手軽に起動できるタイプのPCを買おうと思っています。
スペックはどの程度あればいいでしょうか?
0851デフォルトの名無しさん
NGNG0852デフォルトの名無しさん
NGNGCやるならNECのパソコンがいいYO!
0853デフォルトの名無しさん
NGNGむしろ教育しにくいバイトの方が、最初から高い能力を求められるかも。
0854デフォルトの名無しさん
NGNG0855デフォルトの名無しさん
NGNGバイトというのは一種の目安という意味で出しただけで、バイトになる気は今のところ無いです。(そもそも募集してない)
だいたいどの程度の期間を見ればいいのかと思いまして。
NECのパソコンですか。検討してみます。
機種より、CPUとかメモリのスペックを教えていただきたいのですが・・・
0856デフォルトの名無しさん
NGNGプログラミングをするだけなら、
メモリやCPUはコンパイラの推奨スペックさえあれば十分だと思う。
むしろ、画面のサイズや解像度の方が重要かと。
0857デフォルトの名無しさん
NGNG「通訳」というアナロジはインタプリタのために取っておいて欲しかったな、
という突っ込みが心に浮かんだ春の夜。
0858デフォルトの名無しさん
NGNGけっこう低いスペックでできますね。ノートの中古のほうが安そうですね。
ありがとうございます。
一応書いときます。
C++Builder 5 Enterprise
Pentium/90(推奨Pentium/166以上)のCPU
日本語Windows 98、Windows 95、Windows NT 4.0(SP3以降)、Windows 2000
48MBのメモリ(推奨64MB以上)
200MBのハードディスク(推奨500MB以上)
CD-ROMドライブ
マウスなどのポインティングデバイス
期間については・・・やっぱ人それぞれですかねえ・・・
0859デフォルトの名無しさん
NGNGwindowsでもいいけど、言語だけじゃなく処理系とはどういうことなのか、理解すると応用的な能力がつく。
そもそもそのスペックだとwindowsは厳しかろ。いまどきwindwos95 や98はお勧めできないしな・・・。
俺はCPU 230MHz memory 64Mのノートwindows2000でよくプログラミングするが、このスペックだと統合開発環境は厳しいぞ。
0860デフォルトの名無しさん
NGNG人によって相当答えが変わると思うが、漏れの場合は十年かかった
環境が無かった、周りに出来る香具師がいなかった
ちなみに2chに来るようになってからのレベルアップはすさまじかった
最初はプログラム板で話していることがちんぷんかんぷんだったが、
いまでは理解できるようになった。2chっていいぞ、マジで
0861デフォルトの名無しさん
NGNG0862デフォルトの名無しさん
NGNGマジレスすると
1.その程度の心構えでは使えるレベルにならない
2.素直にディスクトップ買え
0863デフォルトの名無しさん
NGNG0864デフォルトの名無しさん
NGNG0865デフォルトの名無しさん
NGNGまあ、2chには>>862みたいなのがいると言ういい例で砂
ま、こういう香具師は無視しとき
0866デフォルトの名無しさん
NGNG0867デフォルトの名無しさん
NGNGみたいに毎日少しずつ継続的にって考え方する人はある意味立派だと思うがね。
まあ>>862の言うことも一理あって、プログラムやる人ってのは基本的に
凝り性なんだよ。プラモ作るのに、ずっと完成するまで時間を気にしない
のと一緒。
個人的には、SYCOM辺りのショップブランドで安いの適当に買えばいいと思う。
しかし、学校とかへ持っていったり、空き時間にちょこちょこいじりたい
というのならば、やはり、普通のノートだろうね。
>>856の言うように、それなりの作業をするので、画面は広いのにこした
ことはない。ポケットPCとパームは駄目だと思うな。
ノートはメーカーのもののほうがいいので、中古でなるべく新しい予算に
あったものを買うといいと思う。それなりにいいのあるよ。
0868デフォルトの名無しさん
NGNG何かオススメのC/C++基礎勉強の本がありましたら、教えて下さい
0869デフォルトの名無しさん
NGNG0870デフォルトの名無しさん
NGNG取得する方法はありますか?
0871デフォルトの名無しさん
NGNG2chのいいろころは、漏れがいるということ。
0872デフォルトの名無しさん
NGNG付加的な情報を別に用意するのでなければ、ない
0873835
NGNG>>843 さん うまくできました
>>844 さん
そのまま関数に組み込んで利用してみたのですがうまくいきませんでした。
101d という入力ファイルに対して 0 が帰ってきてしまいました。
まだまだ、改良の余地がありますのでいじってみます。
0875貧乏紙
NGNGこういうの作ってみました。。。
#include <stdio.h>
#include <string.h>
void main(){
FILE *fp;
char *ch;
long int f_size[128];
int i=0,k=0,j=0;
fread(&ch,sizeof(ch),1,fp);
while(sizeof(ch)>i++,k++,ch++){
if(*ch == '\n'){
f_size[j] = k*sizeof(char);
k=0;
j++;
}
}
}
0876デフォルトの名無しさん
NGNG0877デフォルトの名無しさん
NGNG0878デフォルトの名無しさん
NGNGここはCのスレだぞ。
そのgotoxy()がCの関数ならC++からでも呼び出せるだろ。
0879デフォルトの名無しさん
NGNG>>865
>>867
結構かかるもんですね。
腰を据えてじっくりがんばっていきます。
凝り性っていうのには気づきませんでした。考えてみればそうですね。
どうもありがとうございました。将来、フリーソフトで恩返ししたいと思います。
0880デフォルトの名無しさん
NGNGwin2kでエスケープ・シーケンスってできますか?
0881デフォルトの名無しさん
NGNGすれ違い、かつ、日本語がおかしい
0882デフォルトの名無しさん
NGNG#include<stdio.h>
#include<time.h>
#include<stdlib.h>
main(){
int coin;
int head;
int tail;
int i;
srand(time(NULL));
printf("コイン投げ\n");
for(i=0;i<3;i++){
coin=rand()%2+1;
if(coin==1){printf("コインは表\n");head++;}
else{printf("コインは裏\n");tail++;}
}
printf("表が%d回・裏が%d回\n",head,tail);
return;
}
0883デフォルトの名無しさん
NGNGint tail = 0;
0884デフォルトの名無しさん
NGNG0885デフォルトの名無しさん
NGNG0886デフォルトの名無しさん
NGNG0887デフォルトの名無しさん
NGNGリスト操作をリストの操作以外に使えるなら教えてホスィ。
質問の意味が曖昧だとかいう前にスレ違いクサイが。
0888デフォルトの名無しさん
NGNGつっこみどころ満載
0889デフォルトの名無しさん
NGNG#include<stdio.h>
#include<time.h>
#include<stdlib.h>
main(){
int coin;
int head=0;
int tail=0;
int kou[6];
int i;
int n;
srand(time(NULL));
for(n=0;n<6;n++){
for(i=0;i<3;i++){
coin=rand()%2+1;
if(coin==1){head++;}
else{tail++;}
}
kou[n]=(head*2)+(tail*3);
if(kou[n]==6||kou[n]==8){printf("陰コウ== ==\n");}
else{printf("陽コウ=====\n");}
}
return 0;
}
0890デフォルトの名無しさん
NGNGhead=0; tail=0; //ここ追加
for(i=0;i<3;i++){
0891デフォルトの名無しさん
NGNG質問になってない。
0892デフォルトの名無しさん
NGNG質問ではなく独り言なんですが。
0893デフォルトの名無しさん
NGNGtypedef struct _POINT {
int x;
int y;
} POINT;
void SetPoint(const POINT point);
この関数を呼び出すとき、引数の構造体を即値で記述する方法はないでしょうか。
SetPoint((const POINT*)(&POINT(4,5)));// ※イメージです、コンパイルは通りません
値をスタック領域にコピーするようなCPUコストが発生しないように、
以下のコードと同様のコンパイル結果が得られるようにしたいと考えています。
(1) static const POINT point = {4,5};
SetPoint(&point);
(2) SetPoint((const POINT*)"\x04\x00\x00\x00\x05\x00\x00\x00");// ※Win32環境用
0894デフォルトの名無しさん
NGNG定数といえ定数と。
C99に準拠しているコンパイラを使っているのなら可能だが、そうでないなら不可能。
http://seclan.dll.jp/c99d/c99d07.htm#dt19991101
0896893
NGNG複合リテラルという機能ですね。
VisualC++6.0をコンソールで使っていましたが、対応していようです。
コンパイルオプションを変えれば使えるのかもしれませんが・・・
C言語に手をつけて5年ほどになりますが、その場で必要なことしか覚えてきませんでした。
まじめな本で基本的な用語から勉強しなおした方がよさそうです。
ありがとうございました。
0897デフォルトの名無しさん
NGNGフリーコンパイラとか、みんな準拠していないから、C99の新しい仕様は
コンパイラのヴァージョンを確認したうえで使わないと。
0898デフォルトの名無しさん
NGNG>値をスタック領域にコピーするようなCPUコストが発生しないように、
定数だとスタックに積まれない、と思っているのか?
0899デフォルトの名無しさん
NGNGコンパイラの最適化で詰まれなくなる可能性が上がる
ってことじゃない?
0900デフォルトの名無しさん
NGNG0901X
NGNG0902デフォルトの名無しさん
NGNGsourceforgeとかは嫌です。
0903デフォルトの名無しさん
NGNG0905デフォルトの名無しさん
NGNG……に行ったらストライキしてるしw
0906デフォルトの名無しさん
NGNGはぁ?主張してるだけでしょ。 www.gnu.org/home.html
0907デフォルトの名無しさん
NGNG0908デフォルトの名無しさん
NGNGそもそも
SetPoint((const POINT*)"\x04\x00\x00\x00\x05\x00\x00\x00");
みたいなひどい処理をせざるを得ない時点で設計が下手くそなんだと思うよ。
そんなわけの分からん新機能使う前に設計を考え直したほうがよくね?
5年もやってるとは思えない
0909デフォルトの名無しさん
NGNGvoid main() {
char arra[1];
gets(arra + 2);
return 1.2;
}
0910デフォルトの名無しさん
NGNGたまにいるよな、一時変数確保のCPU負荷がどうこう言うヤシ。
でもってそういうヤシに限って他のことが高負荷な処理になってたりする。
可読性を低くすることで請負の仕事の独占を図ってたりするわけだが。
プロマネは、そういう輩を見抜かないとねw
0911デフォルトの名無しさん
NGNG>コンパイラの最適化で詰まれなくなる可能性が上がる
>ってことじゃない?
最適化でスタックに積まれなくなるわけないじゃんw
0912デフォルトの名無しさん
NGNG大抵__fastcallみたいなものつきで関数を宣言しとかんとならんけど。
こういうのがついたら可能な限りレジスタで渡すようにする処理系はある。
最適化オプションによってすべての関数にこういった物がついてると
仮定してコンパイルさせることも可能なため、「最適化オプションによって」は
スタックに積まれなくなることもある。
「最適化で」積まなくなることもありうる。static関数の場合ですな。
0913デフォルトの名無しさん
NGNG0914デフォルトの名無しさん
NGNG0915sage
NGNG> SetPoint(&point);
これなら{4,5}は実行初期化時からメモリに常駐され
スタックに詰まれることもないと思うが
関数側にもconst付いてるし
0916デフォルトの名無しさん
NGNGフラグ変数を使わないテクニックはありますか?
0917デフォルトの名無しさん
NGNG抽象的過ぎ
状態にも色々ある
0918デフォルトの名無しさん
NGNGウインドウが表示されてるか、されてないかとか
クリックされたとか、されてないとか
こういう状態のことです。
0919デフォルトの名無しさん
NGNG「ビットフィールド」という答えで希望する解答になるのだろうか?
0920G
NGNGfwrite()で書き出したいのですが,
配列形式のままで出力できますか?
つまり,256こ並べて改行して..といった感じです.
ご存知の方教えてくださいまし.
0921デフォルトの名無しさん
NGNGforかなんかでも使いましょう。
0922デフォルトの名無しさん
NGNG漏れだけ終らなくてクビにされそうです。
助けてください…
0923デフォルトの名無しさん
NGNG別のスレに移動するか退職しましょう。
0924貧乏紙
NGNGでfor文使って表示させたい月の1日が何曜日か調べてそっからさらに7での余りがどうのこうので
改行させるとかなんとか。。。
って言うかプログラム知らないのにプログラム作る会社に入ったの???
0925デフォルトの名無しさん
NGNG改行と言うことは、テキストエディタで読めるようにしたいのか?
それならfwrite()でなくてfprintf()だろ。
そもそも、その配列aの型は一体なんなんだ?
0926デフォルトの名無しさん
NGNG物を知らないのにコテハンで恥晒して楽しいか?
0927デフォルトの名無しさん
NGNGマジレスすると、暦に関するアルゴリズムが存在するし、
サンプルプログラムもWEB上に転がっている。
研修をしている会社が何故、暦のプログラムを作らせるか知らないが、
自力だけで解けとは言ってないだろ、きっと。
本読むなりWEBでググるなりして情報を見つけ出す
情報検索能力を問うているんだよ、きっと。
この能力はPGには確かに必要ではある。
ま、そんな大げさな能力でもないけどね。
0928デフォルトの名無しさん
NGNGコンパイルができません。
しようと思ってもソース ファイルが開けませんと出てしまって・・・
何が原因ですかね?
0929デフォルトの名無しさん
NGNGアプリの使い方とか基本的なことは、ここ(プログラム板)ではなくて
PC初心者 http://pc5.2ch.net/pcqa/
Windows http://pc5.2ch.net/win/
とかへ行ったほうがいい。Mac OS や Unix系 OS なら、また別の板だけど。
0930デフォルトの名無しさん
NGNG要求されるプロジェクトを、初心者にやらせない。
1.コピペの十分に試されたアルゴリズムのソースを導入
2.自力で試行錯誤して考えたアルゴリズムのソースを導入
プロとして評価されるのは1。プロの世界は学校ではない。
0931デフォルトの名無しさん
NGNG0932デフォルトの名無しさん
NGNGアルゴリズムはわかるんだけど、参考書にのってるソースが理解できない。
ぶっちゃけ、アルゴリズムってどれぐらい理解してたらいいの?
0933デフォルトの名無しさん
NGNG実際に書かなきゃいけなくなるまでは仕様が理解できて使えればいい。
先ずは、qsort()やbsearch()を使っていろいろやってみたらどうだろう。
0934デフォルトの名無しさん
NGNG>アルゴリズムはわかるんだけど、参考書にのってるソースが理解できない。
そういう場合はどんなにアルゴリズムを勉強しても無駄。
言語自体を勉強しろよ。
何でそんな当たり前のことが分からないんだ?
0935デフォルトの名無しさん
NGNG使っているが、もしかして同一人物だろうか?
だとしたら・・・(w
0937hello world
NGNG煽るときはスペルミスに注意したほうがいいな。 (プ
0938デフォルトの名無しさん
NGNG>>930の文章の特徴
文書の末尾に必ず「。」を用いる。英数字の表記に全角を用いる。
「、」をやや脈略無く使用する傾向にある。
体言止め等を用いて文章に勢いをつけている。上記の「、」の使用もその一環と思われる。
また「実装する事を要求されるプロジェクトを」の説で「実装することを」とするのは珍しい
大多数の日本人は「実装することが」とする。文章は日本標準語。
>>932
文書の末尾に必ず「。」を用いる。
特筆するべき特徴は「本で書いてある」の文面。大多数は「本に書いてある」とする。
「わかるんだけど」「のってる」「理解してたら」などから文章は東京弁であることが分かる。
結論:比較する文章が非常に短くて予測は困難であるが、恐らく別人の文章である。
0939デフォルトの名無しさん
NGNG正しい手順を踏めば、理解しやすいはず。
ってか、君の言っているクイックソートのソース見せてくれないと、
なんとも言えないと思う。
0940デフォルトの名無しさん
NGNGそこらへんに転がってる洗練されたプログラムを
引っ張り出して来そうなんだが、ダメなのかね?
0941デフォルトの名無しさん
NGNGいっそ関数型言語使えば?
クイックソートとか書きやすいよ
0942デフォルトの名無しさん
NGNG簡単に言えば、
・全体をA,Bに二分割して、Aをソート
・Bをソート
って事を再帰すれば良いのだから。
0943デフォルトの名無しさん
NGNGでも境界条件を考えるのが鬱陶しい
0944デフォルトの名無しさん
NGNGvoid QuickKojunSort(int array[], int left, int right);
int main(void){int gakusei[] = { 165, 158, 170, 156, 175 };
int i;
QuickKojunSort(gakusei, 0, 4);
for (i = 0; i < 5; i++){ printf("%d\n", gakusei[i]);}
return 0;}void QuickKojunSort(int array[], int left, int right){
int jiku,big,small,flag,temp;
if (left < right) { jiku = array[left];
big = left + 1; small = right;flag = 0;
while (flag == 0){
while ((array[big] <= jiku) && (big < right))
{ big++; }
while ((array[small] >= jiku) && (small > left))
{ small--;}
if (big < small) {temp = array[big];
array[big] = array[small]; array[small] = temp; } else {
flag = -1;}}
array[left] = array[small];
array[small] = jiku;
QuickKojunSort(array, left, small - 1);
QuickKojunSort(array, small + 1, right);}return;}
こんな感じです。クイックソートのソース、微妙にしか理解できん
0945デフォルトの名無しさん
NGNGvoid quick(int *s, int left, int right){
int pl = left, pr = right;
int x = s[(left + right) / 2];
do{
while (x > s[pl]) pl++;
while (x < s[pr]) pr--;
if (pl <= pr){
swap(int, s[pl], s[pr]);//交換
pl++; pr--;
}
} while(pl <= pr);
if (pl < right) quick(s, pl, right);
if (left < pr) quick(s, left, pr);
}
0946デフォルトの名無しさん
NGNGソースが理解できん。ぶっちゃけ、944のソース理解できるか?
0947デフォルトの名無しさん
NGNG>>946 944と945はほとんど同じだ
全体を分けるのに 944はarray[left]を基準にしている
945はs[(left + right) / 2]を基準にしている
0948デフォルトの名無しさん
NGNGどれぐらいのアルゴリズムを覚えたらいいのでしょうか?
0949デフォルトの名無しさん
NGNG0950デフォルトの名無しさん
NGNGその際、枢軸より小さな要素は配列の若い方、大きな要素を逆の方へ移動させた。
945とは少し違うね。
0951デフォルトの名無しさん
NGNG入れないだろうな
0952デフォルトの名無しさん
NGNG> swap(int, s[pl], s[pr]);//交換
ってのは違うのか?
0953デフォルトの名無しさん
NGNGSELECT * FROM TBL
WHERE A = :A;
LIKEを使ったWHERE条件に変えたいんですが
SELECT * FROM TBL
WHERE A LIKE ':A%'
としても動いてくれません。
埋め込みSQLでLIKE文は使えないんでしょうか?
0954デフォルトの名無しさん
NGNG0955デフォルトの名無しさん
NGNG→ヒントは 書式指定
0956デフォルトの名無しさん
NGNGSQLは忘れちゃったが
;Aの中に%も代入しちゃえばよかったんじゃなかったっけ?
違ったらスマソ
0957956
NGNG俺も捨てたもんじゃないな。
0958デフォルトの名無しさん
NGNGはぁ?
0959デフォルトの名無しさん
NGNG0960956
NGNGいい加減なこと書くと駄目だな。
0961デフォルトの名無しさん
NGNG0962デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1081597375/
0963デフォルトの名無しさん
NGNG414ペイジの表を見ればわかりますね。
0964デフォルトの名無しさん
NGNGint main()
{
printf("\x1b[4;31m");
printf("色が変わってアンダーラインが付くはず\n");
return 0;
}
猫プロに書いてあったんだけど、色変わらないしアンダーライン付かない
ttp://www.kumei.ne.jp/c_lang/intro/no_26.htm
環境
WIndowsXP pro
VC++6.0
0965デフォルトの名無しさん
NGNG0966デフォルトの名無しさん
NGNGANSI.SYS。
スレ違いですよ。
0967デフォルトの名無しさん
NGNGXPでansi.sysなんか組み込んでも無駄ですよ。
まあおとなしくcygwinでもつかっとけってこった。
0968デフォルトの名無しさん
NGNGコンソールAPI使えば9x系,NT系どっちもいけるよ。
サンプルは猫の58章にある。
0969964
NGNG猫プロの26章のはGNU環境、9x系で動作するもので
NT系では動作しないということですね。
58章はまだ先なので気が付きませんでした。
レスありがとうございました。
0970デフォルトの名無しさん
NGNGchar hoge[5];
char hoge2[5];
} Hoge;
Hoge hogehoge;
foo(&hogehoge);
/* 以下、fooの本体 */
void foo(Hoge *bar) {
int i = 123;
memset(bar, '\0', sizeof(bar));
printf("bar->hogeの値は[%s]です。", bar->hoge); /* 初期化されてない */
sprintf(bar->hoge, "%d", i); /* コピーされない */
printf("bar->hogeの値は[%s]です。", bar->hoge);
}
まず、以上のコードでは、Hoge型の変数hogeの内容は初期化されませんか?
sizeof(Hoge)
とすればよいのでしょうか?
(すいません。本来なら試してから質問するのが筋です。ですが今実行環境がありません)
次に(これが本当の疑問です)、
sprintfが反映されないのは何故でしょうか?
ご指導よろしくお願いします
0971デフォルトの名無しさん
NGNGこれは何処で宣言しているのか?
0972デフォルトの名無しさん
NGNGtypedefはヘッダーファイルで
Hoge hogehoge;
は1つ上のレイヤーの関数内で宣言しています。
0973デフォルトの名無しさん
NGNG0974デフォルトの名無しさん
NGNGHoge hogehoge;
foo(&hogehoge);
}
0975デフォルトの名無しさん
NGNGsizeof(bar)だとHoge *(ポインタ)の大きさ(うちでは4)になる。
0976デフォルトの名無しさん
NGNGあぁスマソ
> memset(bar, '\0', sizeof(bar));
こっちの事か。sizeof(Hoge)だな。
sizeof(ポインタ)とsizeof(構造体)の違いだ。
0977デフォルトの名無しさん
NGNG0978デフォルトの名無しさん
NGNG全部を0にしようが先頭数バイトを0にしようが。
0979978
NGNG0980デフォルトの名無しさん
NGNGmain関数でいつもreturn 0;を返してますが
さきほどreturn 1;をみました。
1が返るとどうなるの?
0981デフォルトの名無しさん
NGNG0982デフォルトの名無しさん
NGNGこの一行目は明らかに釣り。
0983デフォルトの名無しさん
NGNG0984980
NGNG1が返って終わりですか?
0が返ったときと何がちがうんですか?
0985970
NGNG結果から言ってしまえば、いずれにしても
"bar->hogeの値は[]です。"
と表示されると思いましたが、実際に動かすと不定値と思わしき値が表示されます。
0986デフォルトの名無しさん
NGNGbar->hoge2にしていないか?
0987デフォルトの名無しさん
NGNGcmd.exe で実行しているなら、echo %ERRORLEVEL%
UNIX shell 上なら echo $?
0988デフォルトの名無しさん
NGNG漏れもそれに一票
0989970
NGNGそれは無かったと思います。
(すいません。確認できませんが・・・)
*bar = '\0';
とすると先頭アドレスの中身に'\0'が代入されて、
やはり"bar->hogeの値は[]です。"と表示されるような気がしますが、
やはり不定値が表示されました。
0990デフォルトの名無しさん
NGNG0991デフォルトの名無しさん
NGNGこれは許される事なのか?
0992デフォルトの名無しさん
NGNG0993デフォルトの名無しさん
NGNGじゃあ構造体の定義でchar hoge[5]よりもchar hoge2[5]を上に持ってきたとか。
0994デフォルトの名無しさん
NGNG0995デフォルトの名無しさん
NGNG0996970
NGNGそうですか・・・。
コンパイラが認めてないのであれば、私の勘違いかもしれません。
ただ、数時間これと格闘していたので、いろいろやってみた気がしたんです。
パッケージ開発中のソースなので、実物は晒すことができないんですが、
明日、もう一度、間違いじゃないか確認してみます。
0997デフォルトの名無しさん
NGNG実にいぃですなぁ〜のんきで。
うらやますぃ
0998970
NGNGそうですか・・・
今確認できないのが残念です。
それは非常に興味深いのですが、
*bar = '\0';
はNGで
memset(bar, '\0', sizeof(*bar));
はOKということですか?
(これはメモリに展開しているhogehogeの先頭アドレスも含めた全体に'\0'が代入されるのではない?)
0999デフォルトの名無しさん
NGNG顔から火が出るほど恥かしくなるようなミスをしてるか、ネタかのどっちかだな。
1000デフォルトの名無しさん
NGNGしたいんだな♪
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。