C言語なら俺に聞け! Part 84

このエントリーをはてなブックマークに追加
1v(^o^i)d
まず問題を冷静に吟味してCの話か否かをはっきりさせてから質問しましょう。
質問する前には最低限検索を。

GUIなどの標準Cではできない事の質問は使用している開発環境のスレへGo! (←ここ注目)
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへさようなら。

エラー(警告含む)が起きたのならばエラーメッセージを書きましょう。

コンパイラを探しているなら >>2-13 を。
上記を逸した場合の結果は激しく未定義だYO!

C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/

各種リンク、関連スレ、推奨NGワードは>>3-20あたり(誰か適当に貼って)

C言語なら俺に聞け! Part 83
http://pc5.2ch.net/test/read.cgi/tech/1088151291/
他の過去ログはここに
http://nssearch.hp.infoseek.co.jp/clang/
2デフォルトの名無しさん:04/07/01 00:42
【コンパイラ】
gcc
http://gcc.gnu.org/

【Win32用の開発環境のみ。】
gcc-cygwin
http://www.redhat.com/software/tools/cygwin/
gcc-mingw
http://www.mingw.org
Digital Mars C++
http://www.digitalmars.com/
Open Watcom
http://www.openwatcom.com/
Borland C++ Compiler 5.5.1
http://www.borland.co.jp/cppbuilder/freecompiler/

【ライセンスや機能などに問題あり】
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
3デフォルトの名無しさん:04/07/01 00:45
宿題:
 ぼるじょあがC/C++の宿題を片づけますYO! 25代目
  http://pc5.2ch.net/test/read.cgi/tech/1087929711/
環境依存:
 【初心者歓迎】C/C++室 Ver.7【環境依存OK】
  http://pc5.2ch.net/test/read.cgi/tech/1086373839/
猿:
 【独習C】猿62【猿C言語教室 part7】
  http://pc5.2ch.net/test/read.cgi/tech/1083765346/
GCC:
 GCCについて part3
  http://pc5.2ch.net/test/read.cgi/tech/1072484422/
BCC:
http://pc5.2ch.net/test/read.cgi/tech/1054390397/
ママ:
http://pc5.2ch.net/test/read.cgi/tech/1087648569/
>>1
GJ!
5デフォルトの名無しさん:04/07/01 00:46
推奨NGワード:
「;-)」 「;)」「頭悪すぎ」「空白あけろ」「空白あけるな」「ぼけ」「ボケ」「函数」
>> 1
>>1
ワラタ
5があぼーんになっている人も多かろう。
はきだめで見てようやく気付いた
10デフォルトの名無しさん:04/07/01 01:10
構文解析/字句解析を作りたいんだが、どうすればいいんですか?
>>10
そういうコードを書けばいいのです。
推奨NGワード
#include
for
if
while
hoge
foo

推奨NGID
デフォルトの名無しさん
つまらん
エディタが気に入らないが、結構いい感じに使える、BCCの総合環境だ。
コンパイラもついてくる。
コマンドラインの設定はしてくれない。
学習で使うとか、簡単なツールをつくるんなら、これで十分そうだ。

http://phys.cool.ne.jp/physjpn/bccwin.htm
宣伝乙
16デフォルトの名無しさん:04/07/01 07:59
int* p;

こういう書き方するヤツってキモいよ。
ていうか、するってーと何かい?
普通は
d = *p;
て書くときに、
d =* p;
みたいに書くわけか?
C使いにむいてないんじゃないの?
>>8
>>5 がアボーンになってる人は既に設定済みということなので問題ありません。
>>17
いやだめだろ
その中の全部がやってあるとは限らぬよ
12が見えない
int* p, *q;
typedef int *pint;
typedef char *pchar;
とか、
アホなことやってるヤツ居るよな。
何が目的なんだろうな?
いいかげんしつこいよ。ドアホ。
23デフォルトの名無しさん:04/07/01 12:01
>>12
NG"ID"って
>>21
うるせーほっとけ。つうかお前はLPSTRとか使うなよ
だれかC→CASLのコンパイラとかしらないか?
>>25
IIならまだしも、無印CASLかよ
>>26
失礼、CASLUでおねがいします
>>25-27

CASLってなんだよ
CASTLだろ
ププ
>>16
*の意味が違う
>>29
違ってないよ。
int a, *b; /*← a も *b もint型。*/
int c, d;
c = a;
d = *b;
問題ない。
似非プログラマにはパラノイア野郎が多い。職業でやってるとンなこと気にもならない。
32デフォルトの名無しさん:04/07/01 14:51
d=*pとか書くかなぁ。
d=p[0]の方が多くないか?
>>30
違ってるよ。

int *a; /* intのポインタ型変数を定義 */
int b = *a; /* デリファレンス */

34デフォルトの名無しさん:04/07/01 15:11
#include <stdio.h>
main()
{
char *p;
p = "hogehoge";
printf("%s\n", p);
}

というような例文をC入門のテキストで見たのですが、初心者の自分には
pを初期化せずにいきなり文字列を放り込むのは行儀悪く見えます。
社内のC経験者に見せたら「別にこれくらい普通」と言われました。
本当にこれは普通なんでしょうか?
メモリ上のどこかにある"hogehoge"という文字配列の先頭アドレスを、
p に代入してるだけ。何らおかしなことではないです。
>>34
じゃあ、
char p[] = "hogehoge";

char *p = "hogehoge";
をどう思う?
すごく・・・
大きいです・・・
学生が帰ってきたな
教授のオツムをコンパイルしたいです
4034:04/07/01 15:28
>>35
なるほど、私の見方が逆だったようです。

>>36
前者のやり方はまだ勉強してません。最初に配列で領域を確保してから
文字列を代入(?)する方法だけしかやってないもので・・・
後者はやっぱり危なそうに見えますが、
char *p;
p = "hogehoge";
と同じであれば問題はないということですね。
>>40
じゃあ、>>1に書いてあるリンクからfaqを読んできて下さい。
42デフォルトの名無しさん:04/07/01 15:55
p = "hogehoge"はエラーになるよ。
strcpy(p, "hogehoge")でやってるけど。

char p[] = "hogehoge" はだいじょうぶ。
strcpyでアナタ領域破壊してませんか?
44デフォルトの名無しさん:04/07/01 16:07
main()って言うのがちょっと心配だけで、普通の自動寿命の変数だから
コンパイラがさいてきかしてくれるんでねーの?
45デフォルトの名無しさん:04/07/01 16:12
入門書を読み直してみなさいな。
聞くよりもはやいともいますですよ。
46デフォルトの名無しさん:04/07/01 16:17
strcpy は、メモリのヒープもしてくれるから大丈夫よ。
memcpy は、ヒープしてくれないから、要注意かな?
メモリのヒープもしてくれる
はつみみです:}
4934:04/07/01 16:19
ちなみに>>42>>44は私じゃないっすよ。
char *p;
p = "hogehoge";
で、データ領域を破壊しそうな気がしたので質問して見ただけなので
問題がないようならそれはそれで構わないです。
自分では内容を理解するまでその表記はしないと思いますが。

ご回答いただいた方、ありがとうございました。
>>46
char * strcpy ( char * dest, const char * src );
Copy string.
 Copies the content pointed by src to dest stopping after the terminating null-character is copied.
 dest should have enough memory space allocated to contain src string.

えーと、メモリ確保してくれるのはどこのstrcpyですか?
この時間帯に質問するのは避けた方が良いと思う
char* p;
p = "hello";

printf("%s\n", p);

>> hello

ちゃんと動くぞい
53デフォルトの名無しさん:04/07/01 16:23

>>42>>44>>46
え?だから、文字列をだいにゅう出来ないって。
どうでもいいけど、初心者相手に楽しいか?
そろそろ、分かりやすく教えてあげれば?
56>>42と>>44と>>46 :04/07/01 16:26
>>52
C++のコンパイラ使っているから大丈夫でないの?
暗黙の変換してくれてるのかも?
>>56
ヒッコメアホウ
5852:04/07/01 16:28
今使ってるコンパイラbccだったよ。

ソースを.CにしてもCとしてコンパイルしてくれないの?
ママスレいけよ
6042と44と46 :04/07/01 16:34
え、本当に?Cも仕様が進化しているのかなあ?
うざ
6242と44と46:04/07/01 16:39
まあ、動けば良いじゃん。な。
63デフォルトの名無しさん:04/07/01 16:42
いきなりで何ですが 質問です
C++ でマルチメディアタイマっていったいなんなんですか?
64デフォルトの名無しさん:04/07/01 16:42
いま >>62 が怖いこと言った。
>>62が一流釣り師であることを祈るよ・・
>>C++ でマルチメディアタイマっていったいなんなんですか?
「マルチが出て頭痛い」じゃねぇの
6742と44と46:04/07/01 16:52
反対に、漏れが釣られているような気がしてならないんだがw?
>>67
おまえは相手にするのもいやになるくらいダメ人間。
ここになんてこないで、入門書からやり直せ。
69デフォルトの名無しさん:04/07/01 17:17
>>58
Cソースは.c
.C .cc .cpp .c++ .cxx はC++コードの拡張子。
.Cと.cって、違うんだ。
知らなかったです。
確かに同じではないな
どうしよう、俺Windows使ってるんだけど・・・。
コンパイラが勝手にwindowsの拡張子に関する仕様を変えちゃうのか。
困ったな。
Windowsを捨てろ池沼
74デフォルトの名無しさん:04/07/01 18:18
>>73
捨てたら困る
役に立たないことを言うのは 0 だけど、間違ったことを言うのはマイナスだ。>>67みたいに。
余りに恥ずかしい書き込みの連続だから42と44と46なんて名乗れるわけ無い品。
7742と44と46:04/07/01 18:34
何か、漏れの噂をしているようだが?で、エラーにはならなかったのか?
> strcpy(p, "hogehoge")でやってるけど。
これがうまくいく道理が分からん。説明汁
うまく行くけど領域を破壊してるだけでねーの
char b[1024]; /* ←おまじない これを消すと何故か動かない */
だから未定義なんだってば。
その中にはうまく行ってるように見えることもあるだけ。
8242と44と46:04/07/01 18:46
>>78
あれはpは配列って事で。ポインタは領域を確保してから使おうね。
うはw見苦しい逃げ方だな。
>>82
おまえ最低だな
おまえは三菱か。
>>42 の何処を読んだら配列だと分かるんだ?
8742と44と46:04/07/01 18:53
フェイルセーフって、好きな言葉だなあ。
       _,. -‐ '' " ",. ̄'' ̄` ''‐、        
      ,.-'      ,r''  _,,.. - 、  ` 、      
    ,.r'/// /   ,.-'      `' 、. \
   /       ,r'  ,r'       ,rfn、 \ '、    
  / /////  ,'   ,'  ,rffn.   '"     ヽ ',   
  i     ,.ァ   .i  '"     ,riiニヽ.   ',. ',  
 |  ,.r '"  |.   {  ,riiニヽ      _.    ', ',  ヨコハマタイヤ様が素敵な笑顔で>>88GET!!
 | .,.r'    |   !   ,..  _,,.. -‐' _,..r'  i .i   轢き殺されたくなかったら道をあけろ!!
 |,'      ',   ',   '、., __ ,.. -‐''"゙  }  | .| 
  |       ',    `、  ヽ        !   } .} 
  ',         ',    '、  ヽ      ./   ! .|  >>42 勝手にメモリ領域ぶっ壊すんじゃねーよ
   '、       `、   \  `ヽ==='゙    ,' !   >>44 ぬぁーに寝ぼけた事言ってんだ(プ
    `、        '、     ' 、        / .,'   >>46 ヒープしてくれる?なんだそりゃ(ゲラ
      '、'-..,,_____ ___`、    `''‐- ..,, ,,.. r'  /   >>56 話にならん(ワラ
      \ ヾヾヾヾヾ \          /    >>60 釣りのつもりか阿呆(爆
       ` 、  、、、、、、、、 ` - ..,,, _ _,.r'゙      >>62 知能障害起こしてんじゃねーよ(ギャハ
         `' - .,,_       _,. - ''"       >>67 お前の隣人がアンドロイドになってないか注意しろよ(クス
             `"'' '' '' ""           >>77以下は言い逃れきちんとしろよ!
42と44と46あぼーんしました
90デフォルトの名無しさん:04/07/01 18:55
なんで、ctrcpyを使うんだ?
>>52がやってるのは、いかんのか?
>>90
何の問題も無い。
p[1] = 'a';
とかしないかぎりは。
92デフォルトの名無しさん:04/07/01 18:58
p[1] = 'a';
と書くやついるのか?かが、疑問だな。
9342と44と46:04/07/01 19:00
>>90
漏れも何でエラーになならいのか解からんが、まあ、動けば良いじゃん。な。
良い訳ねぇだろ ハゲっが!
相手すんな
>動けば良いじゃん。な
やめろよ。何かあったら困るだろ−が!
へなちょこ
なにをダラダラやってるのかな
faq見れと言えばいいだけじゃソ
ププ
99デフォルトの名無しさん:04/07/01 19:37
1:#include <stdio.h>
2:typedef struct _sample {
3: int a;
4:} sample;
5:int i;
6:void sampo(sample* s) {
7: for (i=0; i<6; i++, s++) s->a=i;
8:}
9:int main(void) {
10: sample s[6];
11: sampo(&s[0]);
12: for (i=0; i<6; i++) printf("%d / ", s[i]);
13: return 0;
14:}
7行目のs++だが、*s++と同じ動きをするんだが、いいのか?
同じ動きはしませんが
10199:04/07/01 19:45
実行結果が
0/1/2/3/4/5/
と、同じになるんです。・
102デフォルトの名無しさん:04/07/01 19:49
口調が違うから101は偽者
103デフォルトの名無しさん:04/07/01 19:53
Cで画像処理のできるお勧めのライブラリってないっすか?
あー。でもSDL以外で;
>>99
でも確かにその場合なら動作は同じ。
*s++は優先順位の関係で*(s++)という扱いになる。
forのそこの場所では式を評価した結果は捨てられるから、この場合だと結果的に同じ動作になる。
GUIなどの標準Cではできない事の質問は使用している開発環境のスレへGo! (←ここ注目)
106デフォルトの名無しさん:04/07/01 19:56
>>103
GDI32.lib
>>103
imlib
10842と44と46:04/07/01 20:01
>>99
何か、漏れが出しゃしゃり出てきて、とても恐縮です。
S++みたいな構造体へのポインタは順番に確保されるんじゃなかったっけ?
そう、ハンドルみたいなもんね。
構造体ポインタの指しているもの*S++構造体自身がが加算出来ないので、エラー。
エラー。
エラー。

笑えてくる
>>109
やはりそこに突っ込んできたか・・・

皆、考えることは一緒だな。
なぁネタだろ?ネタと言ってくれ…
11242と44と46:04/07/01 20:13
ネタではない。釣りだ。
>>112
釣りということにしたいんですよね。
11442と44と46:04/07/01 20:19
釣りだ。釣りだ。釣りだ。釣りだ。釣りだ。釣りだ。釣
りだ。釣りだ。釣りだ。釣りだ。釣りだ。釣りだ。釣り
だ。釣りだ。釣りだ。釣りだ。釣りだ。釣りだ。釣りだ
。釣りだ。釣りだ。釣りだ。釣りだ。釣りだ。釣りだ。
釣りだ。釣りだ。釣りだ。釣りだ。釣りだ。釣りだ。釣
りだ。釣りだ。釣りだ。釣りだ。釣りだ。釣りだ。釣り
だ。釣りだ。釣りだ。釣りだ。釣りだ。釣りだ。釣りだ
。釣りだ。釣りだ。釣りだ。釣りだ。釣りだ。釣りだ。
釣りだ。釣りだ。釣りだ。釣りだ。釣りだ。釣りだ。釣
りだ。釣りだ。釣りだ。釣りだ。釣りだ。釣りだ。釣り
だ。釣りだ。釣りだ。釣りだ。釣りだ。釣りだ。釣りだ
。釣りだ。釣りだ。釣りだ。釣りだ。釣りだ。釣りだ。
11542と44と46:04/07/01 20:20
>>112
誰ですか?漏れはいつでも真剣よ。
追加推奨NGワード:
「池沼」「42と44と46」
11742と44と46:04/07/01 20:24
>>115
では、C言語の規格では "エラー" とは
どのような事と定義されているのかを
教えてくれ。
ミスを隠すために一生懸命ネタにしようとしてるのか?
11942と44と46:04/07/01 20:29
>>117
知らない。
ただ問題があって、それを解決するだけでないの?
42と44(ryのコードは絶対に-Wall -Werrorでコンパイル通らないと確信出来る。
121デフォルトの名無しさん:04/07/01 20:32
>>119

( ゚д゚) ・・・
 
(つд⊂)ゴシゴシ
 
(;゚д゚) ・・・
 
(つд⊂)ゴシゴシゴシ
  _, ._
(;゚ Д゚) …!?

122デフォルトの名無しさん:04/07/01 20:32
> では、C言語の規格では "エラー" とは
> どのような事と定義されているのかを
> 教えてくれ。

漏れも聞きたい。
ム板がいかにゴミ箱かを体現できそうな悪寒。
>>118
重ねて言う。

ネタではない。釣りだ。
-Wall -Warriorってどういうオプションですか?
125デフォルトの名無しさん:04/07/01 20:35
-wareme -worriyaaaa
必死に釣りだと言い張ってる人がいますね。
まるでDQNのCappuccinoを見ているようだ。
>>124
ぐるぐる回る
12942と44と46:04/07/01 20:38
>>126
再度言う。

ネタではない。釣りだ。

実際、釣れているだろ?
>>122
ISO/IEC 9899:1999には"error"って単語が243回使われてる(大文字小文字区別なし)。
全部読め。
131レガシー飯野:04/07/01 20:40
>>122
コンパイルできないからエラーだろ。



  御  前  の  人  生  そ  の  も  の  が  エ  ラ  ー  だ  !!
>>131
>コンパイルできないからエラーだろ。

どのコンパイラだ?
13442と44と46:04/07/01 20:47
良く見たら、ハンドル渡しじゃなかったね。スマソ。
構造体のポインタのポインタを加算させてやらないとだめよ。
13599:04/07/01 20:48
>>104 >> 108
Thx
136デフォルトの名無しさん:04/07/01 20:53
>>130
全部読む必要があるのはおまえだろ
その200回余りのどれが「定義」かわからない
貧相なオツムでせいぜいがんばれよ
137前の967:04/07/01 22:42
>>968,>>975,>>983,>>984
前のスレッドで関数ポインタについて質問した者ですが
親切な回答ありがとうございました!
おかけでうまく動きました。
975さんの言う通り他の場所を特定して直したらしっかり動きました。
間違ってる所が多数有りました。
138デフォルトの名無しさん:04/07/01 22:52
1バイトや2バイト文字をint配列に入れることはできないのですか。
読んだ本ではマルチバイトを何とかするためにintを使ってもいいし
むしろintで配列を作れとありますが


int 九十九里浜 = 0;
int KIRINの903ってクエン酸がらみなんでクエンサンとかけて903にしたらしいよ[40] = { '\0' };
int ファッキン乳酸くらい分かれバカヤロウ[40] = { '1', '2', '3', '\0' };


while(ファッキン乳酸くらい分かれバカヤロウ[ 九十九里浜 ] != '\0')
{
  KIRINの903ってクエン酸がらみなんでクエンサンとかけて903にしたらしいよ[九十九里浜] =
  ファッキン乳酸くらい分かれバカヤロウ[ 九十九里浜++ ];
}
printf("903 = %s \r\n", KIRINの903ってクエン酸がらみなんでクエンサンとかけて903にしたらしいよ);


intに%sが適用できるのか疑問ですが本に倣えば
これでは1 2 3 と入っているはずが
先頭の1しか入ってないです。
139デフォルトの名無しさん:04/07/01 22:52
名前: デフォルトの名無しさん
E-mail:
内容:
クイックソートのプログラムについてお伺いしたいです。

これは静岡大学情報科学部大学院入試の試験問題に出てくる
クイックソートのプログラムです。

このプログラムの問題は、ふってある番号の16番の(key[i]<x)の部分と17番(key[j]>x)、
23番sort(left,j)、24番sort(i,right)の部分が空欄になっていて、
答える形式なのですが答えがわかりません。
下のソースファイルでは私が書いたものをのせてありますが
コンパイルができますが実行結果がうまくソーティングされません。
なぜうまくソーティングされないのかと、正しい答えをどなたか教えてください。
お願いいたします。
140デフォルトの名無しさん:04/07/01 22:55
#include <stdio.h> 1

#define N 8 2


void list(),sort(int,int); 3
int key[N]; 4
void list(){ 5
int i=0; 6
while(i<N)printf("%d",key[i++]); 7
printf("\n");} 8


void sort(left,right) 9
int left,right; 10
{int i,j; 11
int x,w; 12
x=key[(left+right)/2]; 13
i=left,j=right; 14
while(i<=j){ 15
while(key[i]<x)i++; 16
while(key[j]>x)j--; 17
if(i<=j){ 18
w=key[i];key[i]=key[j];key[j]=w; 19
i++;j--; } } 20
printf("%2d,%2d,%2d,%2d :",left,j,i,right); 21
list(); 22
if(left<j) sort(left,j); 23
if(i<right) sort(i,right); } 24
141デフォルトの名無しさん:04/07/01 22:55
void main(){ 25
int i=0; 26
while(i<N){ 27
printf("[%d]",i); 28
scanf("%d",key+i++);29
} 30
list(); 31
printf("--------\n"); 32
sort(0,N-1); 33
} 34
142デフォルトの名無しさん:04/07/01 23:06
> 違ってるよ。
> int *a; /* intのポインタ型変数を定義 */
> int b = *a; /* デリファレンス */

いいえちがってません。
int *a; は「*をつけてデリファレンスした結果がintになるような、そんなaを宣言」です。
なので、同じ意味ですね > *
苦しいな
144デフォルトの名無しさん:04/07/01 23:18
#include <stdio.h>

#define N 8

void list();
void sort(int, int);

int key[N];

void list()
{
  int i = 0;

  while (i < N)
    printf("%d", key[i++]);
  printf("\n");
}
145デフォルトの名無しさん:04/07/01 23:19
いや、ふつう
  int i;

  for (i = 0; i < N; i++)
    printf("%d", key[i]);
  printf("\n");
って書くぞ。
いいたいことは分かるが、そういう風にも書かない
呆れて書き込む気にもなれない
もうお前ら全部
exec("yes");
で手を打ってくれ。みてらんない。
149デフォルトの名無しさん:04/07/01 23:27
void sort(int left, int right)
{
  int i, j;
  int x, w;

  x = key[(left + right) / 2];
  for (i = left, j = right; i <= j; i++, j--) {
    for (; key[i] < x; i++)
      ;
    for (; key[j] > x; j--)
      ;
    if (i <= j) {
      w = key[i];
      key[i] = key[j];
      key[j] = w;
    }
  }
  printf("%2d, %2d, %2d, %2d :", left, j, i, right);
  list();
  if (left < j)
    sort(left, j);
  if (i < right)
    sort(i, right);
}
150デフォルトの名無しさん:04/07/01 23:29
int main()
{
  int i;

  for (i = 0; i < N; i++) {
    printf("[%d]", i);
    scanf("%d", &key[i]);
  }
  list();
  printf("--------\n");
  sort(0, N - 1);
}
151デフォルトの名無しさん:04/07/01 23:30
> いいたいことは分かるが、そういう風にも書かない

いいえ。書きます。
yyyyyyyyyyyyyyyyyyyy(ry
153デフォルトの名無しさん:04/07/01 23:31
> なぜうまくソーティングされないのかと、

空白が空いてないから。
はいはい♥
>138

まじれすすると、printf("903 = %s",書式指定文字がcharポインタと判断);
>>138
1が表示されてる所を見るとリトルエンディアンだな。
'1'で0x31000000で00がNULLコードと見なされてそこで終わってる。
以上。
157デフォルトの名無しさん:04/07/01 23:33
> なぜうまくソーティングされないのかと、

mainがvoidだから。
158デフォルトの名無しさん:04/07/01 23:34
> なぜうまくソーティングされないのかと、

scanfを使っているから
俺はママに感謝している
> なぜうまくソーティングされないのかと、
宣言方法が伝統形式だから
> なぜうまくソーティングされないのかと、

行の最後にへんな数字が付いているよ
162デフォルトの名無しさん:04/07/01 23:38
% ./a.out
[0]0
[1]5
[2]5
[3]7
[4]4
[5]1
[6]2
[7]6
05574126
--------
0, 5, 8, 7 :05564127
0, 1, 4, 5 :01465527
0, -1, 1, 1 :01465527
4, 4, 5, 5 :01465527
163初心者1:04/07/01 23:43
フィボナッチ数列を求めるプログラムを配列を使って作ったのですが
第47項あたりから符号が−を数もおかしくなってしまいます。
これは何が原因なのでしょうか?

#include <stdio.h>
void main()
{
int i,a[1000],n;
printf("第何項まで計算しますか?\n");
scanf("%d",&n);
a[0]=0;a[1]=1;
for(i=1;i<=n;i++){
if(i==1)
a[i]=1;
else
a[i]=a[i-2]+a[i-1];
}
i=i-1;
printf("フィボナッチ数列:第%d項は%dです。\n",n,a[i]);
return;
}

>>163
次は変数を long long にしてしばらく遊ぶ
int
エンディアンうそつかない
>>166
ワロタ
169初心者1:04/07/02 00:05
>>164
unsignedにしたら98項ぐらいまで計算できたんですが
それ以上は絶対に計算できませんか?
long long
171デフォルトの名無しさん:04/07/02 00:07
if(i==1)
a[i]=1;
こんなことする意味あるのか。
>>169
できる。
多倍長で検索GO!
>>169
配列の一つを一桁としたデータ構造を採用しる!
int a[1000000];
初歩な疑問なんですが,
同じ反復処理を行う場合,for,while,do whileどうやって使い分けるのですか?
それぞれ条件判断が違うのは分かりますが、
この場合はforが便利とか、これならwhileがいいとか具体的に教えて下さい。
176デフォルトの名無しさん:04/07/02 01:38
釣りは結構
177デフォルトの名無しさん:04/07/02 01:41
おもしろい
178デフォルトの名無しさん:04/07/02 02:55
>>173
可変長を扱えるようになったらこのスレは卒業ですか?
キャリーってCではどう扱うんだっけ...アセンブラなら簡単なのだが。
179デフォルトの名無しさん:04/07/02 02:59
unsigned long long int a;
180デフォルトの名無しさん:04/07/02 03:00
> キャリーってCではどう扱うんだっけ...

まらいや
>>178
では部分的にアセンブラで書けば良いのでは?
182デフォルトの名無しさん:04/07/02 07:51
>>178
被加数と上限の差を加数と比べれば
キャリーが発生するか否かを事前に知ることはできるよな?

アセンブラならもっと簡単にできることがえらい非効率になるが・・・
「非効率」の意味がわからん。
>>183
1命令でできるものを計算しなきゃならないなら
非効率だろどう考えても
>>175
ひとつの目安として、

for ループ条件が主にループ回数に依存する場合。
while 回数以外の条件の場合。
. while{} 一度もループが実行されない可能性がある場合。
. do {] while 少なくとも最初に必ず一度は実行される場合。
アセンブラの方が効率がいい
って
いちいち言うことなのか
ある意味でアセンブラの方が可読性があるということで効率が良い
ハードで用意されてる機能をそのまま使うわけだしね。
ソフトでエミュレートするよりも開発効率も実行効率もいいのは確かだな、
しかしその僅かな差を感じとれる奴は絶滅寸前だけどな
アセンブラをかじった程度でも、多倍長演算はアセンブラでやるのが
効率いいって思うよ。
そうやってアセンブラでカリカリに書いたライブラリがGMP
int a;
while(1){
    scanf("%d", &a);
    if(a==2)
       break;
}
としていて
数字を入力するとなんともないのですがiとかjとか数字以外を打つと無限ループしてしまいます。
何故ループするのかが判らないのですがどうしてなのでしょうか。
暇な人いたら判りやすく教えてください
ここでぼけ厨が登場
     ↓
>>192
scanfの戻り値チェックしろぼけ
>>192
数字以外をいれると、バッファにそのデータが残ったままになるんだよ。
そんで、次のscanfで、そのバッファを読み取って・・・以下ループ
>>195
さんきゅーよく判った。
なんつーか、すごい初歩的な質問なんだが、
C++とかで、どんなプログラム作れるの?
>>197
OSからゲームまで何でも。
200197:04/07/02 19:02
じゃあ、どうやって画像とかを操作するんですか?
('A`)荒らしさんはお帰りください
>>200
勉強して画像とかを操作するプログラムを作成する。
>>200
画像とかを扱えるライブラリを使う。
そんな貴方に、DirectX
205デフォルトの名無しさん:04/07/02 19:34
な、仕事以外でプログラムってするか?
206デフォルトの名無しさん:04/07/02 19:36
>>189
正気で言ってるのか?
数値計算だぞ
すごい回数のループで使われる
可能性が大きいぜ

こういうのは1回あたりのnsじゃなく%で考えるべきだろ
仕事で会社に来てるはずなのに
趣味のプログラムしか作ってません。
>>207
よくわかる。
>>207
うちの部長も同じ。
会社でスクリーンセーバーとかデスクトップアクセサリー作って、
Vectorで売ってやがんの。バカ部長。アホ部長。
週間業務報告書に「水位測定システムの開発」だとよ。
内部告発してやれよ。黙ってたらお前も同罪。
もまいら板違いですよ
部長もいい加減にしなきゃだめですよ
部長火消し乙
M_PIってC99で消えちゃったの?
「部長もブッチョー面するわけさ」
>>209
ばれますよ身元
216部長:04/07/02 22:00
おまえらそんなことはどうでもいいから
Cのこと俺に何でも聞けよ。
>>216
前戯は長い方ですか?
218デフォルトの名無しさん:04/07/02 22:06
風俗用語では「犬」という
ここで質問していいのかな?
ポインタとか構造体とかある程度理解したんでWINDOWSプログラム行ったんですけど
なんていうか覚えるの多過ぎて、どんな感じで初めていけばいいんでしょか
サンプルひたすら打ってるけどサパリで(つД`)
スレ違い
質問になってない
>>219
でも基本は変わらないはず。
ただ、全体的に関数の引数が多めなのはいろいろなケースに対応できるように……、
のはずだけど絶対、使わないものがあって、(特にNT系しか、意味をなさない引数なんか)
それさえ気が付けば、なんだたいした事ねーじゃん、って具合に俺はすんなりいけたんだけど。
9x系と心中してくれ
224デフォルトの名無しさん:04/07/03 00:28
基本的に、Win32APIを使うときには引数は覚えない。
全部VCまかせ。


そんな奴が99.9999%を占めている。
それかコーディングするたびに本を開く奴か。
じゃあ俺は0.0001%の稀有な例か。
覚えてる奴なんていやしねー

VC++が勝手に生成
勝手にやりくりが基本だろ
227!225:04/07/03 00:51
オレは覚えてる。
インテリセンス嫌い。
とてもじゃないが覚えきれない。
問:
CreateWindowEx関数の第3引数には何を指定する?
229初心者:04/07/03 01:02
ウィンドウの色?
ウィンドウ名だよ
CDTのコードアシスタンス機能がもう少しマシだったらCプログラミングはもっと楽になるのに。
ウィンドウの背景色はクラス登録のときじゃなかったっけ
void hoge(void);
void hoge(void)
{return;}

この場合の hoge は、何と呼んだらいいのですか?
関数ではないようですし、函数というのとも違うと思われます。


ほうじと読みます
どうせ消えちまうから(多分)どうでもええて
ゲホ
>>233
何が聞きたいのか、頭の悪い俺にはさっぱりわからん。
hoge は、「ホゲ」と呼びます。
値を返さない(何もしない)関数の呼び方の事を聞いてんじゃねーの?

まぁそんなこと聞く前におまえには山ほどやらなきゃならないことがあるんだけどな。
>>237
戻り値が void なので、関数ではありませんよね?
函数でもありませんよね。
では、何と呼ぶべきなのでしょうか?
手続き
>>239
数学の関数と、Cの関数は違うぞ
ちょっとお訊ねしますがム板で最もレベルの高いC系のスレは何処ですか?
>>242
どのスレでも見たり書いたりしてる人間は同じだ。
>>239
それでもCでは関数だ。
ところで、函数って何よ?
ちゃんと納得のいく説明をしろよ。出来ないなら、しったかするなよ。
>>243
では2ch外の方でやったほうが良さげですかね
少なくとも、漏れはEclipseでコーディングする裏でCLANNADやるようなアホです

でも、たまにちゃんと質問に答えてます。
int a = 0;
int main(){
kansu();
}
void kansu(){
a = 1;
}

と書いたのに、aが0のままというような状況になることがあります
(実際にはこんな単純なプログラムではありませんが)
どういうミスをするとこんなことが起こりますか?
kansu()の中でもaを宣言した時とかー
>>248
どこで a の値を出してるんですか
>>248
うっかりミスでそ。
グローバルの場合名前にプレフィックス付けるなりサフィックス付けるなりしたら?
単純なコードで無いなら尚更。
252デフォルトの名無しさん:04/07/03 09:40
なんでみんな春休みの宿題いまごろやってんだYO!
また電波のレスが・・・
254デフォルトの名無しさん:04/07/03 10:37
233はPascal厨
>>248は「自分はこういう仕組みにしたはずだ」を
書いただけなので何の意味もない。
C言語の基礎からやり直し。
256デフォルトの名無しさん:04/07/03 11:18
>>248
コンパイラによっては外部変数を register にできたりするが
kansu が割り込みハンドラだったりすると・・・
>>248
そのあとで、a=0を実行してるんでしょ。
>>248
割り込みでa=0にしてるんでしょ
259デフォルトの名無しさん:04/07/03 14:52
再起呼び出しがなにをしているのか、わけワカメなのですが。
詳しく説明しているサイトってあるでしょうか?
>>259
再起ではなく再帰。
簡単に言うと、関数が自分自身を呼ぶこと。

「再帰」で検索すればちゃんと解説してあるサイトは山のようにある。
261デフォルトの名無しさん:04/07/03 15:25
>>260
いやいや失敬失敬(ワハハハハ
262デフォルトの名無しさん:04/07/03 15:26
>>262
これが再帰
>>262
これはスタックオーバーフローを起こす悪い再帰
ファイル入出力をやっているのですが
fgetsで一行単位の読みはできますけど
一行の文字数が不定の場合にファイルポインタを一行分
(改行コードの後ろまで)
移動させる方法というのはないのでしょうか?

fgetsを繰り返して移動させるしかないですか?
>>264
fgetsで何か不都合でも?
アヒャヒャ
267264:04/07/03 15:48
>>265
そういった関数とかがないということは
fgetsは内部的には一文字づつ改行コードかどうか比較していて
シークさせるのに比べて重くなるんじゃないか
と思いまして
>>267
次の改行後の位置を、改行コードを探すことなく知ることができるなら、
そうなんじゃないの。
>>267
パソコンは魔法の箱でもなんでもないんだから、どこかで処理するのは当然だろ
シークとか、毎回アクセスしてると思ってるのかな?何のためにキャッシュとか積んでると思ってるんだ
>>267
気になるのなら、一回走査して行の開始位置を記録しておけ。
>>259
基本は関数内で以下を行う。
・(最も簡単な場合である)基底に達したら何か計算したりしてリターン
・それ以外なら計算するとか引数をちょっと変更するなどして自分自身を呼ぶ

重要な点は、自分自身の呼び出しでは必ず基底に近付くようにすることだな。
これに気をつけないと>>262のようになる。これは基底が存在しない例。
ま、がんばれ。
272デフォルトの名無しさん:04/07/03 16:02
>>271
言いたいことはわかるが「基底」って用語を定義してあげないと
わかんない人には絶対に通じない説明だよ
終了条件なら分かるかな
ガウスの積分公式のプログラム探してるんだけど、見つかんない・・・orz
>>274
そういうのは図書館にいけ。
スレ違いだし。
277デフォルトの名無しさん:04/07/03 16:20
void Countdown(int i)
{
 printf("%d", i);
 if (i > 0)
  Hoge(i - 1);
}
この場合、i が0以下のとき基底に達したってことになる。
278デフォルトの名無しさん:04/07/03 16:40
>>277
おいおい、それじゃ再帰になってないだろw
なってるじゃん
おお、なってない。
281デフォルトの名無しさん:04/07/03 17:49
char data[100];

while(1){
scanf("%s", data);
if(data[0]=='\n')
break;
}

入力された文字を繰り返しchar[100]に格納、
enterのみ入力されたらbreakというプログラムを書きたいのですがうまく動作しません。
どげん直したらよかですか。よかったら教えてやってください
垂水まで来い、教えてやる
>>281 のような過ちを繰り返さない為にも、
>>1 に「scanf 使うなぼけ」とでも入れてはどうか。
>>281
入力をscanf以外の方法で書き直してみてください。
その方がシンプルになります。
>>283が見えなかったからわざわざIEで確認すた。
そんなことしたら>>1があぼーんされちゃうよ。
286281:04/07/03 18:10
よく判らんけどscanfは駄目?っぽいみたいですね。
でもまだ入力関数はscanfのしか習った事ないんでもう少し調べてから書き直してみます。ありがとうございました
つうか本とかHPとかで最初にやたらscanfを教えてくれるのはじゃあ何故なんだろう・・とか思ってしまった
>>286
簡単だから。この一点。
まわりくどい質問だな
>>285
わざわざIEで確認したらNGWORDの意味ねーじゃん
290デフォルトの名無しさん:04/07/03 18:19
だいたい何で最初に printf だの scanf だの可変引数の関数から教えるんだ?
puts gets から教えりゃいいのに。
gets は簡単だし、危険だがそれ故に教えるのにはちょうどいいし。
>>290
文字列しか入力できないじゃん。
>>291
何か問題でも?
問題大有り。C始めたての初心者に文字列→数値解析関数を書かせるのか藻前は
>>293
なんで書かなきゃならんのだ
>>294
High&Lowも書けないじゃん
まず、整数と文字列が違うことから教えないといけないな。
少なくともお前らには教わりたくないな。
俺もごめんじゃん
atoiとかはダメなの?
問題大有り。C始めたての初心者にatoi使わせるのか藻前は
301デフォルトの名無しさん:04/07/03 19:10
VBプログラマ質問スレ(6.0以前) Part35
http://pc5.2ch.net/test/read.cgi/tech/1087519251/446
ここから誘導されました。
質問です。

Cで関数を組んで、APIのような形で使いたいのですが
うまく関数に値が渡せていません。
Cで組んだ関数は
struct HOGE{
int a1;
int a2;
};

HOGE fncSub(int p1,int p2,int p3);

という形になっていて

Public Type HOGE
a1 As Long
a2 As Long
End Type

Declare Function fncSub Lib "hoge.dll" (ByVal p1 As Long, _
ByVal p2 As Long,ByVal p3 As Long) As HOGE

で呼び出しているのですが。
どこを修正したらよいかお願いします。
スペース区切りの2数字を入力してその和を求める、なんてのにも苦労するだろ。
>>301
> GUIなどの標準Cではできない事の質問は使用している開発環境のスレへGo! (←ここ注目)
> ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへさようなら。
そもそも C の前にアセンブラから教えるべき。
C って元々はアセンブラ理解できること前提だろ?
初心者にscanfを使わせるのかよ!
初心者にCやらせちゃならんだろ
初心者は何もするな!
308デフォルトの名無しさん:04/07/03 19:35
質問。
一般論だけど、だいたい一つのソースファイルはエディターで何行くらいにしてる?
あまり細かく区切るのもファイルが増えて嫌だし、一つのファイルにうんざりするほど関数が入っているのも嫌だし。
2万行以内には抑えるようにしてる。
量で分割するもんじゃないし。
どうせ最後にプリントアウトして、その重さで値段がきまるわけだし。
いちがいに言えない。
短いのはエディターの1ページ以内。
長いのは2、3000行。
ラインエディタ使ってますが何か?
あっそう。よかったね。
>>308
私は関数4、5個ぐらい。
ファイル名にあった関数をいっしょに入れている。
一つの関数の行は1ページぐらい。
俺は初心者の練習プログラミングにatoi()は楽で良いと思うけどな。
なんで反対してる人は反対するの?
>なんで反対してる人は反対する

そりゃ反対する人は賛成しないだろ
反対している理由を聞いているんだろ。アフォ?
>>316
scanf に対する憎しみが育たないからだよ。
320デフォルトの名無しさん:04/07/03 20:35
>>316
fscanfと書かないのは意図的か?
321デフォルトの名無しさん:04/07/03 20:36
>>320
いい間違い
s/fscanf/fgets/
失礼
流れ嫁
323デフォルトの名無しさん:04/07/03 20:48
>>322
読んでるよ

俺は 316 に i = atoi("123"); のような使い方が
初心者の練習プログラミングには楽でいいと
本気で言っているのかと聞いている。
で?scanfがいいんですか?
scanfでいいんじゃない?
326デフォルトの名無しさん:04/07/03 21:00
atoiは入力のおかしなときの動作が未定義だからじゃないの。
327デフォルトの名無しさん:04/07/03 21:00
>>324
おまえ 316 か? 反問はこっちの問いに答えてからにしろ。
>>327
その言葉、そっくりそのままお返しします☆
プ
香ばしい臭いがしてきますた
331デフォルトの名無しさん:04/07/03 21:18
>>328

おまえ 316 か?

俺は i = atoi("123"); のような使い方が
初心者の練習プログラミングには楽でいいと
断じて思ってない。

定数、変数、演算子、式文などを
これから憶えようって段階の人を相手に
fgets, stdin, char[], \n を先に説明する
必要があるやり方を推奨することに強く反対する。

もっとも、scanf にしても & だの EOF だのが
出てくるところは、そういう段階の人に推奨するには
適さない特徴だと思っている。
しかし、fgets+atoiよりはマシな妥協案だと思っている。


さあ、答えたぞ。

俺はあんたに i = atoi("123"); のような使い方が
初心者の練習プログラミングには楽でいいと
本気で言っているのかと聞いている。

俺があえて黙っていたのはこの問いに答えやすく
してやろうという意図があったが、今となっては自業自得だな。
>>331
いやだねえ、頭の固いのは。
マシもクソもないじゃない。難しさなんて。
333通りすがり:04/07/03 21:24
入力に関係ないサンプルでは無説明にgetsだのatoi使ってもいいんじゃないの。
scanfで入力しくじってゴミが入るよりは0が入ったほうがまだましではある。
なんか議論すべきことでもないだろ。はっきり言ってどうでもいい話だな。下らなさ杉。
第三者だが
>>331
> 定数、変数、演算子、式文などを
> これから憶えようって段階の人を相手に
> fgets, stdin, char[], \n を先に説明する
> 必要があるやり方を推奨することに強く反対する。
君ヴァカ?K&Rをはじめとする先人の血の財産を否定するつもりかね?
335デフォルトの名無しさん:04/07/03 21:26
>>333
入力関係ないなら i = 123; でいいだろ?
何で i = atoi("123"); なんて必要があるんだよ。

>なんか議論すべきことでもないだろ。
>はっきり言ってどうでもいい話だな。下らなさ杉。

だったらスルーしてろよ、何なのあんた?
336デフォルトの名無しさん:04/07/03 21:27
>>334
全然意味わかんない
かわいそうな人・・・
>>335
アホだね。コンソールから入力する場合の話だろ。
リテラル変換して何の意味があるんだよ。モーツァルトでも聴いてモチツケ
今更モーツァルトかよw
消防の頃に全曲制覇しておくもんだよ庶民の無知の皆さん
クラシック=上流階級か。
庶民の発想だな。
341デフォルトの名無しさん:04/07/03 21:36
>>338
じゃ、コンソールから初心者は整数値をどうやって入力すべきだ?
アホじゃない立派な回答を期待する
なに 初心者 って
キーボードをカタカタ
344デフォルトの名無しさん:04/07/03 21:40
>>341
gets&atoi
なるほど。いつまでも初心者の人が教える立場になると、こうなるのか。
347デフォルトの名無しさん:04/07/03 21:43
>>341

整数値を入力> one hundred and twenty-two_

348デフォルトの名無しさん:04/07/03 21:44
>>338
アホじゃない立派な回答はどうした?w
今まで scanf とか printf とかばかり使っていた初心者たちに、
「関数の引数には型の宣言が必要です」
と説明して納得させる自信のある強者はいませんか?
while(scanf("%d", &n)
    printf("%d", n);

for(;;){
    scanf("%d", &n);
    printf("%d", &n);
}
まず納得できない理由を知りたい。
>>349
%d、%s、%fを解釈するprintfを自作させれば嫌でも納得するんじゃないかと。
>>352
いきなり可変個引数をとる関数作らせんの?
354デフォルトの名無しさん:04/07/03 21:54
>>349
確かに、可変個数引数になってるのはよくないな。
int なら int 専用の入力関数があればよかったが、
そこが C が初心者向きにはできてないってとこだな。
それぐらい中学生でも分かるっつーのw
356デフォルトの名無しさん:04/07/03 22:05
printf(("%s %s\n", "hello", "world"));
うまく動かないのですが、どうしてですか?
357デフォルトの名無しさん:04/07/03 22:06
>>356
そのサンプルをもう一度よく読みなさい
あなたはタイプミスをしています
358デフォルトの名無しさん:04/07/03 22:06
> コンパイラによっては外部変数を register にできたりするが

できねーよ。常識でかんがえろ ぼけ
359デフォルトの名無しさん:04/07/03 22:08
>>358
おまえが知らないだけ
心配するな非標準拡張だ
俺もブツが回ってくるまで知らなかった
>>359
透明あぼーんにレスしないでよー
361デフォルトの名無しさん:04/07/03 22:10
ちなみに「作ってわかるCプログラミング」なんて、最初から最後までscanfなど1度もでてこない。
よくできている。
透明あぼーんにレスしたレスもあぼーんになるけど?
>>361
std::cin
364デフォルトの名無しさん:04/07/03 22:11
>>349
いや必要ない。
「宣言したほうがいい」ぐらいですね。もともとのCでは。
365デフォルトの名無しさん:04/07/03 22:12
>>361
論点先取にはつきあってやらない
scanf をきちんと否定できてからにしろ
ハァハァ
368デフォルトの名無しさん:04/07/03 22:15
> おまえが知らないだけ

いいや。実際存在しない。するとおもうならコンパイラーの名前を行ってみろ。

ほらいえない。
>>362
NidaかViewあたりを使ってる?いいなー。Styleじゃまだできない。
ここで大学ネタの復活ですよ
371デフォルトの名無しさん:04/07/03 22:18
実際、scanfとか使わないから、あれだけ初心者に親切なバランスの教え方の本に
なってるのよね。

つかってる本はどうみても
o わかったような気にさせて実際読者は何もわからない結果になる。
o そもそも作者がわかってないので、いいかげんなウソを教える
のどちらかだね。

2chでまぬけな質問するぼけの数を集計してみろよ。80%がscanf使ってることかあも明らか。
って、連鎖ついたんだ。verupしてこよう
373デフォルトの名無しさん:04/07/03 22:18
>>368
別に「おもう」わけじゃないし
おまえの物乞いに答えないからって
その事実が覆るわけじゃない
374デフォルトの名無しさん:04/07/03 22:18
> ほらいえない。

あーぶくたったーにえたったー
375デフォルトの名無しさん:04/07/03 22:19
> 別に「おもう」わけじゃないし

やーい。いまさらごまかそうと暴れてもむだ
あるスレ限定のあぼーん条件を指定出来る2chプラウザは無いものか・・・
377デフォルトの名無しさん:04/07/03 22:19
>>375
おまえの物乞いに答えないからって
その事実が覆るわけじゃない
378デフォルトの名無しさん:04/07/03 22:20
> おまえの物乞いに答えないからって

まだごまかしもーどだし
379デフォルトの名無しさん:04/07/03 22:21
存在するなどとまぬけなことを言ってしまって、
「じゃあその名前を言ってみろ」といわれて困って
暴れているやつがいます!
>>368
つーか、>>368 なんて奴は実際存在しない。
するとおもうなら >>368 の名前を行ってみろ。

ほらいえない。
・数値を一つ入力してそれを表示する。書式は"n=数字\n"
・数値以外のものが入力された場合
  ・"quit"が入力されたら終了する。
  ・それ以外の文字列の場合はエラーとその文字列を表示する。
・終了しなかった場合は最初に戻る。
scanf使った模範解答キボン
ちなみに自分は諳では書けませんw
382デフォルトの名無しさん:04/07/03 22:22
名前は言えないけど存在するんだよ!
383デフォルトの名無しさん:04/07/03 22:23
>>378
おまえの物乞いに答えないからって
その事実が覆るわけじゃない

>>379
教えてもらえなくてムキになってるのはそっちだろ
384デフォルトの名無しさん:04/07/03 22:24
>>382
翻訳すると
「存在することにしたいんだよ! (でも実際存在しないので)名前は言えないわけなので、なんらかの
理由で名前を言えないってことにしないといけないが」ですね?
385デフォルトの名無しさん:04/07/03 22:27
>>381
EOF 判定だの例外処理だの
いきなり持ち出してくるあたり
いかにも初心者の扱いについての初心者だね
そういうジョキョージュほど scnaf を嫌うって法則ありそう
>>385
いや普通に知りたいんだけど。
387デフォルトの名無しさん:04/07/03 22:33
>>386
初心者を対象とした出題ではないってことか?
中級以上の人にそんな問題出すと笑われるよ
388デフォルトの名無しさん:04/07/03 22:36
a が int 型とすると、正しい宣言はどっち?

(1) int *b = *a;
(2) int *b = &a;
>>387
いや普通に初心者なんだけど。
fgets&sscanfの書き方は分かるけど
scanf使った厳密な書き方がよく分からないんだよね。
改行がどーたらこーたらとか失敗したあとのリカバリ方法とか。
罠張ってるわけじゃないので普通に教えてよ。
390デフォルトの名無しさん:04/07/03 22:37
(2)
391デフォルトの名無しさん:04/07/03 22:38
>>389
出題意図があまりにも露骨すぎるよ。
もうちっとヒネれ。それじゃ食いつき悪いだろ。
392デフォルトの名無しさん:04/07/03 22:39
>>388
1
>>388
何を意図するかによるだろ。
と、いいたいところだが、
変数で初期化するな。
>>389
自分で書けばいいんじゃない?
>>391
意味わかんないよ。
scanfには不向きな例題だってこと?
>379
オレの名前を言ってみろ〜。
>>395
長年初心者やっている人に聞かないほうが。
なんでscanf限定なんだ?
他の関数使えば?
399デフォルトの名無しさん:04/07/03 22:46
>>395
人に聞くな。自分の胸に手をあてて聞け。
>>381
while (1) {
char buf[256];
scanf("n=%255s\n", buf);
/* あとはお好きなように */
}
初心者にscanfを教えるなという事だな
害はあっても利点は無い
>>398
上のほうで初心者にはまずscanf使わせろみたいな主張があったから。
自分は食わず嫌いでscanfスキップしてたから、まともな使い方知りたかったんだけどね。
403デフォルトの名無しさん:04/07/03 22:49
>>401
うしろだてになる命題はどれだ?
>>381
int main()
{
int n;
char str[256];
for(;;){
if(scanf("%d", &n)) printf("n = %d\n", n);
else{
scanf("%s", str);
if(!strcmp(str, "quit")) break;
else printf("Error - %s\n", str);
}
}
return 0;
}

これで満足か?
お取り込み中すみません
>>388 はどっち?
>>404
ゴミバッファ捨てるのはどうするの?
scanf("%s",str)で空読みが定石?
>>402
ご苦労さん。
処理系依存一切無視でfflush(stdin);!



・・・嘘です御免なさい。
ゴミ捨てもそうだが、メモリ破壊を
ああ。相手が初心者だからいいのか
411デフォルトの名無しさん:04/07/03 22:57
ゲラゲラ
>>410
初心者だからというより、限定された使いかただからだね。
scanfに限らず、向いてなければ別の方法を採るのが普通。
scanf("%16s",str)
とか長さ指定しとけばいいんでしょ。
C FAQ
12.20:
どうして誰もがscanf()を使わないほうがいいというのか。かわりに 何を使えばいいのか。
A:

scanf()には数多くの問題がある。質問12.17, 12.18, 12.19を参照の
こと。さらにscanf()の%sフォーマットはgets()が抱えているのと(質
問12.23を参照)同じ問題を抱えている。つまり受け取りに使うバッファ
があふれる心配がないと保証するのは難しい。

もっと一般的な話として、scanf()はかなりしっかりした構造を持っ た、
書式にのっとった入力を対象に設計されている(実際scanfという
名前は「scan formatted(書式を持ったものを走査する)というところ
から来ている」)。注意していれば、処理が成功したかどうかわかる。
しかし、どこで失敗したかは大体のところしか分からないし、どうい
う風にとか何故かはぜんぜんわからない。scanf()を使った場合エラー
からのまっとうな復帰はほとんど不可能である。たいていは1行丸々
(fgets()かなにかで)読み込んで、sscanf()かその他の技を使って解
釈するほうがずっと簡単である。(strtol()とかstrtok()とかatoi()
といったルーチンも役に立つことが多い。質問13.6も参照のこと。)

どうしてもsscanf()を使わなければならなければ、戻り値を調べてこ
ちらが期待した数だけ項目が見つかったことを確認するのを忘れては いけない。
>>406
scanf("%*s");でどうだ。
fgets使うにしても入力がバッファをまたがった場合でも
ちゃんと処理するようなサンプルは皆無な気が。
何も考えずに
char buf[16];
fgets(buf, sizeof(buf), stdin)
sscanf(buf, "%d", &d)
って書くと
ABCDEFGHIJKLMNO123
って入力したら二周目で数字拾っちゃうバグが出る。
417デフォルトの名無しさん:04/07/03 23:27
>>414

>しかし、どこで失敗したかは大体のところしか分からないし、どうい
>う風にとか何故かはぜんぜんわからない。

こいつは、自分が何を知りたいのかを定義せずに「わからない」と焦っている。
かなり痛い。


>scanf()を使った場合エラー
>からのまっとうな復帰はほとんど不可能である。

こいつは、「まっとうな復帰」とは何かを定義せずにそれを書こうとして挫折という、
上級者になれない中級者が際限なく繰り返すパターンをまだやっている。


>(strtol()とかstrtok()とかatoi()
>といったルーチンも役に立つことが多い。質問13.6も参照のこと。)

こいつは、strtok の問題点に気づいていない。
マジ痛い。


>どうしてもsscanf()を使わなければならなければ、戻り値を調べてこ
>ちらが期待した数だけ項目が見つかったことを確認するのを忘れては いけない。

scanf についての質問のはずだが・・・
痛杉。
>>416
許容入力文字数くらいは仕様で決めとくけど。
419デフォルトの名無しさん:04/07/03 23:28
>>417
わらた
C FAQに文句つけてきたー
421デフォルトの名無しさん:04/07/03 23:29
scanf()
gets()
goto

使わないほうがいいといわれているが、
これに変わるほかの便利な手段はない。
とハーバート・シルトが。

「要は使い方しだい、チェックの仕方ひとつ」
gotoを使わずにループ深度を上げるよりはさっくり使っちゃう
423デフォルトの名無しさん:04/07/03 23:30
> >しかし、どこで失敗したかは大体のところしか分からないし、どうい
> >う風にとか何故かはぜんぜんわからない。

> こいつは、自分が何を知りたいのかを定義せずに「わからない」と焦っている。
> かなり痛い。

いたいのはどう考えても、まっとうなC-FAQの著者にいちゃもんつけてでもごまかそうとする
417だ。
424デフォルトの名無しさん:04/07/03 23:31
  ./  ̄/〃__〃   /  ̄/       /
    ―/  __ _/   ./ ―― / /
    _/   /   /   _/    _/ /_/
    /\___/ヽ
   /''''''   '''''':::::::\
  . |(●),   、(●)、.:| +
  |   ,,ノ(、_, )ヽ、,, .::::|    
.   |   `-=ニ=- ' .:::::::| +
   \  `ニニ´  .:::::/     +
,,.....イ.ヽヽ、ニ__ ーーノ゙-、.
:   |  '; \_____ ノ.| ヽ i
    |  \/゙(__)\,|  i |
    >   ヽ. ハ  |   ||   ←このへんをトリプルクリックすると
                    ダディの目が光るぞ !
gotoという単語が出てきましたが、これについての議論はしないでください。
426デフォルトの名無しさん:04/07/03 23:33
>>424
驚きました。
これはどうやって光らせているのですか?
>>425
後藤君に対する差別です、撤回してください。
>>427
どのみちプライバシーに触れるので
議論しないでください。
出来ません。言論の自由に反します。
>>424
まじワラタ
「CFAQが痛杉だね」と君が言ったから七月三日はscan腐記念日。
432似非採点廚:04/07/03 23:36
>>424
32点
>>424
光った光った。ウン。今井美紀は歌が上手だなぁ。なぁそうだろう?
434デフォルトの名無しさん:04/07/03 23:37
> とハーバート・シルトが。

あいつだめすぎ
435デフォルトの名無しさん:04/07/03 23:38
>>424
IEで見て初めて分かった。ワラタ
>>418
仕様だけで縛れるならgetsでもいいじゃんって話になるし。
がんばって処理するにしろ捨てるにしろ明示的に追加コード書かないといけないんだけど、
そこらへんをちゃんと書いてるコードってあまりないよな。
437デフォルトの名無しさん:04/07/03 23:38
> gotoという単語が出てきましたが、これについての議論はしないでください。

呼びましたか?

(私の本名なので、クレジットカード使うたびに書きますが)
Q: scanf('A`)イラネ
A: (#゚д゚)バカジャネーノ

Q: goto君は解雇シル!
A: ( ´_ゝ`)フーン
>>424
そんな光るわけな・・・・!!
>>437
gotouと書いてください
まだダディクール(光)を知らない人がいたのか。
442デフォルトの名無しさん:04/07/03 23:40
そんなことより部屋が汚いのを何とかしたい。
443デフォルトの名無しさん:04/07/03 23:41
片づけラッカー
>>442
(1)引っ越す
(2)見ない振りをする
(3)女を見つける
 ヽ /ノ _/ _   ./  ̄/〃__〃   /  ̄/       /
 ̄/| ̄ //ノ /    ―/  __ _/   ./ ―― / /
ノ  し  ̄/   し    _/   /   /   _/    _/ /_/
    /\___/ヽ
   /''''''   '''''':::::::\
  . |:.、  http://http://====================================
  |::::.   ,,ノ(、_, )ヽ、,, |    
.   |:::::::.   `-=ニ=- ' | +
   \:::::.  `ニニ´  /     +
,,.....イ.ヽヽ、ニ__ ーーノ゙-、.
:   |  '; \_____ ノ.| ヽ i
    |  \/゙(__)\,|  i |
    >   ヽ. ハ  |   ||   ←このへんをトリプルクリックしたから
                    ダディの目が光ってるぞ !
それもこれもscanf()がオーバーフローさせたから
俺の部屋にゴミがあふれかえったんだ。
結論が出ました
fgets>>>>>>>>越えられない壁>>>>>>>scanf≒gets

寝よ寝よ
>>436
「規定文字数以上入れた場合の動作は保証しません」
でいいんじゃないの?
セキュリティ的に問題がありそうな場面ではもちっとまじめに処理するけど。
449デフォルトの名無しさん:04/07/03 23:49
ブランドに盲従すること以外の反論こねえのかよ
つまんねー
450デフォルトの名無しさん:04/07/03 23:51
goto だって、使い方によってはソースの短縮化に繋がるのでは?
goto は使うのは話にならないって感じの体制だが。
>>449
ホームラン級の馬鹿だな
つかgets, scanf, gotoで使い物になるのはgotoだけだろ。
>>449
ブランドってここでは何のこと指してるんだい?
454デフォルトの名無しさん:04/07/03 23:53
>>453
「CFAQの作者」
>>450
いや、gotoの話をするのは話にならないだけ。
456デフォルトの名無しさん:04/07/03 23:56
>>452
コンソールで使うもんな。大事な関数だよ。
457デフォルトの名無しさん:04/07/03 23:57
「昔から決まってる」だの「CFAQの作者が言うから」だの
お前らの価値観は「gotoは使っちゃいけないから」ってのと
何も変わらんな
で、scanfの他を圧倒する優れたサンプルコードはまだか?
何故CFAQが支持されるかって、それには論理と仕様に裏打ちされた信頼性があるからだろ。
何もかも盲信する阿呆と一緒にするな。
新人がscanf使ってたら辞めさせる。不具合の元になりやすいから。
他人がscanf使うのはべつにかまわん。それで満足なんだろうし。
461デフォルトの名無しさん:04/07/04 00:03
>>459
一緒にしてないよ、お前が本人だから。
お前は周囲の人間皆が敵に見えてるんだろうな・・・
ついに無内容な煽りonlyになったか・・・
なんだと
465デフォルトの名無しさん:04/07/04 00:06
scanf も gets もだめなの?何か不具合があるの?
466デフォルトの名無しさん:04/07/04 00:07
>>463
「裏打ち」とやらに真面目に反論しても煽るだけな
話しても不毛な奴が受ける当然のリアクションだ
オーバーフローに対し処理ができない人間からは嫌われると言うだけ
やれやれ
>376
view等のNGEXでできますよp
470デフォルトの名無しさん:04/07/04 00:10
そっか、オーバーフローするんですか。
ちなみに何文字まで大丈夫なんでしょうか?
バッファオーバーランをセキュリティーホールとはみなさずに
外部からコードを登録できるプラグインと捉えてはどうだろうか。
いいね。使い古された手だけど。
473デフォルトの名無しさん:04/07/04 00:17
よう解からんけど、ちょくちょくバッファを開放してやれば良いのかな?
使うときには。
>>473
わからんなら言うな
475デフォルトの名無しさん:04/07/04 00:18
> 開放してやれば良いのかな

漢字ぐらいちゃんと書け! ぼけ
またお前か
477デフォルトの名無しさん:04/07/04 00:20
> で、scanfの他を圧倒する優れたサンプルコードはまだか?

別に圧倒なんかしなくてもscanfなど最初から用事ない。
解放 -> C厨
開放 -> C++厨
介抱 -> ???
480デフォルトの名無しさん:04/07/04 00:30
>>477
getch を使って文字列入力とかをしてみると、どうだろう。
やっぱ、誰かに叩かれるか?
ちみたち、どうして人がキーボードから入力するのを前提にしているのですか?
scanf getsの両関数とも手軽に「呼び出すこと」はできるので
入門書のサンプルプログラムなどで利用されることもある。
なんたって見た目上「短い」ということが
入門者にとって重要ということもあるからだ。
しかしながら
scanf getsともにバッファオーバーランの可能性があり
scanfは動作自体にかなりクセがある。
よって利用場面は慎重に検討されたし。
と、いうことでいいと思うがどうか。
>>481
それを前提にしないと何がどうなるんだ?
テキストからリダイレクトしたら誤入力がなくなるとでも?
484デフォルトの名無しさん:04/07/04 00:38
>>481
だって、そのための gets scanf じゃねーの?ストリームの他の入出力は
また他にいいのがあるって。
485デフォルトの名無しさん:04/07/04 00:39
>>482
>scanfは動作自体にかなりクセがある。

関数にクセもへったくれもあるかどアフォ!
そんな詩的な戯れ言ほざいてる間に仕様を確認しろ。


>よって利用場面は慎重に検討されたし。

目的と仕様のみに左右されるべき。
>>485の詳細は選挙公報等で熟知すべし。
どアフォって言われたw
fgetsとかのほうがラクじゃんよ。なんでわざわざscanfつかわにゃならんのだ?
489デフォルトの名無しさん:04/07/04 00:43
>>489
だから、それはお前が馬鹿なだけだろ?
C FAQよりも自分の理論の方が正しいと思ってる奴となんか、話は合わんわ。
ともかくこれからも俺は、初心者にscanfをやめさせ、fgets(+atoi)を薦めることにする。
scanf 関数グループは、format に従って入力を読み込むものである。
フォーマット文の後に続く pointer 引数は、ひとつひとつが変換文字と
正しく対応しなければならない (例外:`抑止')。
読み込みは入力文字がフォーマット文字と合わなくなると中止する。
また、入力変換が成功しなかったときにも中止する
493デフォルトの名無しさん:04/07/04 00:53
>>488
簡単か?漏れはそんなやり方をした事無いが、色々とマンドクセー事を
しなきゃなんねんじゃねーの?
なんだscanfしか知らないだけか。
fgetsも勉強しとけ厨房君。
495デフォルトの名無しさん:04/07/04 00:55
>>491
論点先取してるのはあんただろ
C FAQ(>>414)が正しいと思うなら>>417の指摘を覆してみせろよ
そんなこともできない低脳とはこっちも話が合わない
正直、初心者に入力を扱うプログラムは敷居が高すぎ
実行すると勝手に何らかの処理をするプログラムが簡単
>>491
心配しなくても、初心者がscanfを使ってるわけじゃないよ。
初心者向け例題でscanfが使われているのがほとんどだから。
>>491
それはともかく、なぜatoiなんだ?
せめてstrtolにしないか?
fgets(+atoi)
なら fscanf でいいだろ
500デフォルトの名無しさん:04/07/04 01:03
>>499
確かに。
fscanf(buf, "%d", &n);
printf("value=%d\n", n);
より
printf("value=%d\n", atoi(buf));
のほうがシンプルだし変換に失敗したときの心理的ダメージが少ない。
サンプルコードによっては戻り値調べて分岐するのは冗長。
商品に使うわけじゃねぇんだから、
別になんだっていいだろ。
サンプルで、そのサンプルの本質ではない入力に手間をかけるのは、
そのサンプルをいたずらに複雑にするのでscanfとかgetsとか使ってるだけでしょうが。
>501
atoi() のbufには何がはいってんだ?
>>502がたぶんいいこといった。

自分でコーディングして、自分で保守して、ソースが納入物とか出ないんなら
何使おうが、結果的に正しく動けばいい。
そうだな。セキュリティホールのあるソフトが次々に出てくるのも、よくわかるよ。
↑お前の頭どうなってるんだ?w
508デフォルトの名無しさん:04/07/04 01:24
>>505
502は正しいが、お前はクソ


>結果的に正しく動けばいい。
こんなこと言ってる奴はVXを1リットル飲んで氏ね
509デフォルトの名無しさん:04/07/04 01:26
>>506
セキュリティ気になるのも解かるが、鉄壁のセキュリティーの製品なんて
できませんがな。
だから極力努力するんだろう?
自分で作った自分用プログラムを自分でクラッキングして面白いですか?
面白い!
513デフォルトの名無しさん:04/07/04 01:43
C FAQの著者がどうこう、なんていうのなら
ハーバートシルトのほうが遥かに上。

そのハーバートがほかに便利な方法はないと言ってるんだから
scanfは無条件にいいということ。
長い釣りだったな
もう、ここはカーニハンにメール出して結論聞くことにしよう。
↓よろ
覚えさせようというのなら、なおさらscanf()使わせて
どうなるのか、欠点は何なのか、それを回避するためにはどうするのか

それを覚えさせないとダメだろう。

それを覚えないから
「何で使っちゃいけないか俺は良く知らないけどあの人がああ言ってるから」
みたいなバカが出てくる。
scanfやgets、strcpyに限らず わざわざ使って、
一つ一つ対オーバーフロー処理をしていけば
オーバーフローに対しての対処法や考え方は強くなるだろうな
こりゃ「何でもおんぶに抱っこMFC」と通ずるものがある。

自分で考えたくないからfscanfみたいな
518デフォルトの名無しさん:04/07/04 01:56
危ないんだったら、今度からfscanf使うよ。ああ、良い事聞いた。
519デフォルトの名無しさん:04/07/04 02:07
>>517
scanfごときでどうこう言っているのに、MFCだとよ。
>>301の質問にもまともに答えられねえ癖に。
このスレはVBスレよりレベル低いな。
プログラマは皆VBを読み書きできるはずと思ってる勘違いさんがいらっしゃるようですが
>519
サイズが違う
>>519
ちゃんと301には適切なスレで相手してますが、何か?
>>519
あいたたた(w
Cが出来る人間は、みなVBが出来ると思ってるんだ。
こりゃ、真性だな。
何でも頼りっきりという考え方の事を言っているのに
MFCそのもののことを言ってると勘違い
525デフォルトの名無しさん:04/07/04 05:13
すいません。ここが発祥の地と聞いたんですが・・
ぬるぽインタ、ってなんですか?
>>525
ぬるぽinterExceptionです。
NullPointerはぬるぽじゃありません。
そしてJavaスレへどうぞ。
527デフォルトの名無しさん:04/07/04 06:36
sscanfとscanfではかなりちがう

・・・・・・・あんた達まだやってたのね・・・・・・・。

いいんじゃないの別にこのスレの誰が教えているわけでもなし。
>>529
スレタイ嫁。
結論

scanfはその仕様・挙動を完全に理解せず使ってはいけない。
ゆえに初心者は使ってはいけない。
532デフォルトの名無しさん:04/07/04 09:33
>>531
こりゃまた唐突だなw
用途、コストとかによるだろうな。
無駄に完璧なプログラム作ってもしょうがない。
534デフォルトの名無しさん:04/07/04 10:26
もう getc putc だけでいいよ。
scanfを使うのが 危ないのじゃなくて
scanfを使おうと思うことが 危ない
fscanfを使おう!
537デフォルトの名無しさん:04/07/04 12:06
>>535
関数の仕様を理解せずに使うと危ない
scanfを使うか否か検討できないことが危ない

誰かがああ言うからという先入観に支配され
科学的に検討する態度を放棄することは
危ないどころではなく廃業に値する
538デフォルトの名無しさん:04/07/04 12:49
gotoを使おう!
539デフォルトの名無しさん:04/07/04 13:59
ごっちゃんです
540デフォルトの名無しさん:04/07/04 14:05
> ハーバートシルトのほうが遥かに上。

いや、アイツの本はだめだめ
541デフォルトの名無しさん:04/07/04 14:07
scanfについて私があれこれ書いてたら、
Ritchieが答えてくれたことがある。
(もう十五年ぐらい前だが)

あのころはfjよりcompのほうが楽しかったなあ。
542デフォルトの名無しさん:04/07/04 14:08
> scanfを使うのが 危ないのじゃなくて
> scanfを使おうと思うことが 危ない

やーい > scanf依存厨
543デフォルトの名無しさん:04/07/04 14:09
> 危ないんだったら、今度からfscanf使うよ。ああ、良い事聞いた。

scanfとfscanfは同じぐらい危ない 105歩:100歩ぐらい。
sscanfなら10ぐらいだ。
544デフォルトの名無しさん:04/07/04 14:10
> ぬるぽinterExceptionです。
> NullPointerはぬるぽじゃありません。

っていうか、Nullは「ナル」だろ?
545根拠なしで語るの例:04/07/04 14:10
C FAQのほうがだめだめ

レス番が飛びまくってるが、また荒らしが来てるのか
547デフォルトの名無しさん:04/07/04 14:12
> ともかくこれからも俺は、初心者にscanfをやめさせ、fgets(+atoi)を薦めることにする。

っていうか、なんでおまえら行から読ませるんだよ。fgetsにしろscanfにしろ。

ちゃんとargvから読ませろ ぼけ
548デフォルトの名無しさん:04/07/04 14:13
>>547
つまり、彼らは、scanfかどうか以前に、
「もっと大きい数を入れてください(1〜100)」みたいな、
「kazuate.c 症候群」なのでは?

ようは、初心者のときに接した例題がそもそも間違いで、ずっとそれに
引きずられてるんだろ?
549デフォルトの名無しさん:04/07/04 14:15
> C FAQのほうがだめだめ

ようはおまえは「scanfがだめだっていうことになると立場がない」症候群なんだろ。
つまり、
「入門書を読んだがCが理解できなかった」
「scanfとprintfだけなら少しわかった気がする」
なもんだから、そのscanfを否定されると、せっかく「ちょっぴり」わかったのが
いきなり50%に減らされるからって、
そんなにあばれちゃ迷惑だよ。
550デフォルトの名無しさん:04/07/04 14:16
>>547

例題がすべてargvから読ませるものになっている入門書はありますか?
日本語の書籍でおねがいします。
551デフォルトの名無しさん:04/07/04 14:19
> いや、アイツの本はだめだめ

ようはおまえは「scanfに対する対処法を知らないから文句を言う」症候群なんだろ。
つまり、
「C FAQを読んだがCが理解できなかった」
「でも"使っちゃいけない"という文だけなら少しわかった気がする」
なもんだから、そのscanfに対して何らかのアクションが取れることを教えられると、せっかく「ちょっぴり」わかったのが
いきなり50%に減らされるからって、
そんなにあばれちゃ迷惑だよ。
>>547
複数回入力ができないじゃん。
>>548
初心者のときにはコンソール入出力なんて存在しませんでした。
554デフォルトの名無しさん:04/07/04 14:24
潜在的に危険だとか言われると、途端に怯えチまって
新しい命令なり関数なりが用意されるまでは組めなくなる

こんなバカは確実にいる。
「自分でエラー処理、チェックするのは嫌、できない」
質問がまったく来ないな。
何でこんなにいがみ合っているのですか。
557デフォルトの名無しさん:04/07/04 14:31
誰とは言わないがw

ようはおまえは「scanfがOKだっていうことになると立場がない」症候群なんだろ。
つまり、
「入門書を書いたが世評が芳しくない」
「scanfだけは使わないで格好つけてみせたが、今となっては仇になりかねない」
なもんだから、そのscanfを肯定されると、せっかく「ちょっぴり」ファンができたのが
いきなり50%に減らされるからって、
そんなにあばれちゃ迷惑だよ。
scanf もう秋田。もっと面白いネタを。
覚えるなら逆にそういう危険なものを使って
チェックしていったほうが後々の為になると思うが。

オーバーランがどうした、なんて言ったら
「それを使わなかったであろう」WindowsOS基幹部だって
オーバーランの危険は依然として残っているわけで。
使わないでも危険がある、ふさがなければならない、
そんなとき役に立つべ。
scanfなんかから受けたものへのチェックを知らなかったら
自分で考えることはできない。
scanfネタは別スレ立ててやれ
scanfとgoto専門スレ立ててやれ
562デフォルトの名無しさん:04/07/04 14:49
> 複数回入力ができないじゃん。

するなよ。
そんなことしようってのがそもそもの間違い。
そんなことするなら、マウスでボタンをクリックさせてイヴェントひろえよ ぼけ
563デフォルトの名無しさん:04/07/04 14:49
> 覚えるなら逆にそういう危険なものを使って
> チェックしていったほうが後々の為になると思うが。

なりません。
564デフォルトの名無しさん:04/07/04 14:51
そりゃ覚えられないアホは自分のものにはできないだろw
565デフォルトの名無しさん:04/07/04 14:51
「危険だからいけない」わけではない > scanf

危険だし、複雑で、よくない仕様で、かなりいろいろ把握しないと、使えない。
で、そのためにいろいろ努力した成果はscanfにしか役立たず、ほかに役立たない。
しかもそのscanfは実務でまったく使わない。

初心者向きじゃない点はこれにつきるね。

実務じゃ裏技的な手法ばかりだろ。

DXやOGLシェーダを使わずにフレームバッファ数値を
テクスチャにコピーしてアルファブレンディング、
なんてのはどこでも推奨されてないし言語仕様から外れるが
できないことをやるためには裏技は必要不可欠。
「知ってて損はない」
568デフォルトの名無しさん:04/07/04 14:58
いえ、損します。
569デフォルトの名無しさん:04/07/04 14:59
> 実務じゃ裏技的な手法ばかりだろ。

いいや、実務ではまっとうな手段ばかり。
へんなのを使うのは実務という名をかりたへぼプログラム

・・・・・・お前らそんなに楽しいのか・・・・・・。
571デフォルトの名無しさん:04/07/04 15:01
頭の硬い奴からはヘボプログラムしか出てこない。

それこそMFCだけのクソソース
>>566
初心者は「実務」とか背伸びした言葉使わないほうがいいよ。
573デフォルトの名無しさん:04/07/04 15:03
理解できない初心者が来たw
ユーザが限定されるならscanf使って作るし、
限定されないなら別の手使う。
575デフォルトの名無しさん:04/07/04 15:05
つまるところ、「裏技」というのは「考えた結果見出した道」なわけだ。

それも考えられない、「まっとうな」とかいってるバカは
お定まりのコースしか歩けずすぐ挫折。

こんなバカが組めるわけないだろ
>>566
裏技って(藁
恥ずかしい奴だな。
もう一回Cの言語仕様を勉強しなおせ。
プログラムは
真っ当にやって物を作るだけじゃなく、
イレギュラーな、しかしちゃんと動作する手法で
物を作ることもまた醍醐味。

特にゲームなんかじゃ「真っ当」にやってると
手詰まりする
578デフォルトの名無しさん:04/07/04 15:10
scanfにすら対応できない奴は
臨機応変って言葉と無縁になるんだよなw









ここ見てりゃわかるが
裏技というからには、ハードのバグを利用したコードくらいは書いて欲しいものだが。
ハードの不具合は「バグ」と言わないが
>>577
ゲームなんかは、そうだろうな。省略やインチキ誤魔化し何でもOK.
プレーヤーにばれなければOK.ガキの遊び道具に責任なし。
裏技、バグ技
583デフォルトの名無しさん:04/07/04 15:15
そらコード部分じゃないがね。

不正をやったのは「ATI」のドライバ。
よそさんのドライバとプログラマの組むコードは関係ねえしw
584デフォルトの名無しさん:04/07/04 15:16
>1
>>583
なんでATIのドライバなんかが出てくるんだ(藁
大人のコーディングって
自分でチェックしないで任せっきりにすることなの。
すげえ他力本願
587デフォルトの名無しさん:04/07/04 15:18
>>585
省略やインチキ誤魔化し何でもOK.


とか言ってるバカにいえよw
scanfでここまで広がるものか
>>587
ゲームプログラムにおける誤魔化し、インチキはATI云々とは全く関係ないわけだが。
scanf嫌いは
「受け売り」
「自分でチェックできない人」

C FAQがどれほどのもんか知らないが
それならハーバートシルトのほうが世界に名が売れている以上
はるかに上、しかしそっちだけは否定。
ダブルスタンダード。

後者は論外。
591デフォルトの名無しさん:04/07/04 15:22
>>589
プログラマはゴマカシもインチキもしないが。
ちゃんと書いたコードに沿わないのはドライバ。

592デフォルトの名無しさん:04/07/04 15:24
> scanf嫌いは
> 「自分でチェックできない人」

そうじゃなくて「チェックしてまで使うものではない」からだろ? ;-)
593デフォルトの名無しさん:04/07/04 15:24
> C FAQがどれほどのもんか知らないが
> それならハーバートシルトのほうが世界に名が売れている以上

だからシルトはだめだめだって。ウソばかりかいてて、
日本で言えばはやしはるひこをちょっとましにした程度。
http://graphics.tomshardware.com/graphic/20040603/index.html

数多くあるうちのドライバ側の不正、たとえばこれ。
プログラム側はインチキだのする余地はないから
フィルタリングに関して通常通りに書いたものをATIドライバが不正。

ATI is cheating on trilinear texture filtering
595デフォルトの名無しさん:04/07/04 15:25
>だからシルトはだめだめだって。ウソばかりかいてて、
>日本で言えばはやしはるひこをちょっとましにした程度。

だからC FAQはだめだめだって。ウソばかりかいてて、
日本で言えばはやしはるひこをちょっとましにした程度。
>>591
ドライバ云々も全く関係ない。
誤魔化しを利用したコード書いたこと無いと分かり難いかもしれないが。
それに、誤魔化すことは裏技でもなんでもなく普通の技術だしな。
597デフォルトの名無しさん:04/07/04 15:25
> C FAQがどれほどのもんか知らないが

そんなにscanfを否定されていることがつごう悪いのか ;-)
あばれすぎー
598デフォルトの名無しさん:04/07/04 15:25
チェックしてまでというより、
チェックできないから嫌うだけ。
>>591
流儀に反する裏技のコーディングをしているからでは?
600デフォルトの名無しさん:04/07/04 15:26
そんなにscanfを肯定、scanf嫌いはチェックできない無能さを看破されていることがつごう悪いのか ;-)
あばれすぎー
601デフォルトの名無しさん:04/07/04 15:27
>>599

>>594
読めないの?w
DirectX9でフレームバッファに対してαブレンドできないから
できるようにテクスチャに適用するのって
裏わざと言えば裏業、でもAPIから見れば動作しないものではない、
API仕様から見れば「できる」操作だからねえ
「直には」できないというだけで。
ユーザーにわからないように手抜き

こりゃゲームに限らずどのアプリでも有るこって・・・・
自分で考えないでMFCとか
VC使って手抜きとか
でなければチェックくらいできるわな
604デフォルトの名無しさん:04/07/04 15:35
> チェックしてまでというより、
> チェックできないから嫌うだけ。

そうじゃなくて「チェックしてまで使うものではない」からでは?
605デフォルトの名無しさん:04/07/04 15:37
チェックできないのはscanfだけじゃないね。
scanfごときでもできないというのは
全てに対してできない無能。
scanfに限らずエラーチェックもできないし
不測の事態に備えることもできない。
自分で考えることもできない。
606デフォルトの名無しさん:04/07/04 15:44
チェック「してまでつかうものではない」というのがばれると困るからといって、

チェック「できない」ということにしてしまわなければいけない悲しいひと ;-)
Cのコードは低レベルの世界だから、気になりだしたら、
あっちもかこっちもかと、パラノイアの世界だわな。
608デフォルトの名無しさん:04/07/04 15:47
scanfごときチェックできないというのがばれると困るからといって、

チェック「してまで使うものではない」ということにしてしまわなければいけない悲しいひと ;-)
609デフォルトの名無しさん:04/07/04 15:48
別に使うと死んでしまうわけじゃないのだから、
使ってもいいわけだ。

そこまでしたくないというのは、結局「できない」から。
でなければ「できる」わけだからな
「手間がかかるから」
いいんじゃね?もともとコーディング自体手間だし。

scanf()チェック程度を手間だとか言ってるのは
こいつぁどうかな って感じだけど。
「めんどいからVC任せ」

「めんどいからfscanf任せ」


めんどいんじゃなくて覚えられないだけだろ
>>611
漏れはそうだな。
「めんどりから卵産ませ」
マンドクセー
めんどいからscanfを初心者に教えない
「おしどり夫婦って言うけど おしどりって毎年相手を変えるんだぜ」
scanf(), gets(), gotoの話は↓でしろ。

ダンディ坂野が許せなかったのである
http://pc5.2ch.net/test/read.cgi/tech/1086391838/l50
>>616
メスが卵を産んで孵化するまでの間、そばにオスがいるだけ。
子供ができればメスは用無しとなり、オスは去っていく。
やりたいだけやって子供ができたらハイサヨナラ。

つまり、おしどり夫婦ってのは、
男:中出しやりたい放題、ガキができたら離婚、女は肉便器だ、金なんか払わねぇよバカ女
女:稼ぎ悪い夫など不要、あたしは子供が欲しいだけ、べつに精子バンクでも構わない、死ね短小包茎早漏
という身勝手な夫婦のことだ。
ここは20年時間がズレていますね
>>619
いいえ、04/07/04 なので、2000年ほどずれています。
>>610
チェック以前に暴走するだろ
ただデバッグ用とか使い道はいくらでもあるから
どんどん使えばいい。
622デフォルトの名無しさん:04/07/04 19:29
>>580
「デバッグ」はするけどなw
623デフォルトの名無しさん:04/07/04 20:41
> scanfごときチェックできないというのがばれると困るからといって

まだ暴れてるし...
624デフォルトの名無しさん:04/07/04 20:57
scanf厨って、ようするに、実際にはscanfさえもつかいこなせてないわけでしょ?
もうやめれ。
それとも、かまってほしくて自作自演してるのか?
626デフォルトの名無しさん:04/07/04 21:06
そんなに都合わるいのか... > もうやめれ
627デフォルトの名無しさん:04/07/04 21:07
そもそも
工夫しようが、できないぞ > scanfが勝手に次の行まで探しに行くの
あと、バッファーあふれも防止不可能。

せめてsscanfつかえ ぼけ
荒らすなら他所でやってくれ
629デフォルトの名無しさん:04/07/04 21:08
628がいちばん荒らしているな
630デフォルトの名無しさん:04/07/04 21:10
>>627
こいつは、自分が何ができて欲しいのかを定義せずに「できない」と焦っている。
かなり痛い。
age厨が去るまで放っておくか。
632デフォルトの名無しさん:04/07/04 21:12
Microsoft VC++ 6.0 を今頃ほしいわけですが、
MSDNに入るしかないですか?

できれば安い入手法を教えてください。
633デフォルトの名無しさん:04/07/04 21:13
合法的にか? 非合法にか?
http://www.2ch.net/before.html

頭のおかしな人には気をつけましょう

利用者が増えるに従って、頭のおかしな人もそれなりに出没するようになって来ています。
頭のおかしな人に関わるとなにかと面倒なことが起こる可能性があるので、注意しましょう。


頭のおかしな人の判定基準

・「みんなの意見」「他の人もそう思ってる」など、自分の意見なのに他人もそう思ってると力説する人
 他人が自分とは違うという事実が受け入れられない人です。自分の意見が通らないとコピペや荒らしなど
 無茶をし始めるので見かけたら放置してください。

・根拠もなく、他人を卑下したり、差別したりする人、自分で自分を褒める人
 他人を卑下することで自分を慰めようとする人です。実生活で他人に褒めてもらう機会がないが
 プライドだけは高いとか、匿名の掲示板しか話し相手のいない人です。可哀想なので放置してください。

・自分の感情だけ書く人
「〜〜がムカツク」とか自分の感情を掲示板に書くことに意味があると思っている人です。
何がどのようにムカツクのか論理的に書いてあれば、他人が読んでも意味のある文章になりますが、
そういった論理的思考の出来ない人です。もうちょっと賢くなるまでは放置してあげてください
635デフォルトの名無しさん:04/07/04 21:14
>>634
ある本の著者に3つともあてはまっているなw
kskb陽一か
637デフォルトの名無しさん:04/07/04 21:17
>>635
どの本?
638デフォルトの名無しさん:04/07/04 21:19
防止不可能ってバカか?

そもそもの入力字数制限自体を作れないド素人か
scanfだってfgetsみたいに使えばいいじゃん

fgets(buf, 256, stdin);
scanf("%256s", buf);

たぶん同じ。
640デフォルトの名無しさん:04/07/04 21:25
641デフォルトの名無しさん:04/07/04 21:26
>>638
>>639
おまえ頭悪すぎ。

それじゃあ整数とりたいときどうするんだよ ぼけ。
あとからatoiするのか? だったらなんのためにscanf使うんだ ぼけ
642デフォルトの名無しさん:04/07/04 21:27
字数制限しても整数取れるだろ(プ
643デフォルトの名無しさん:04/07/04 21:29
> 字数制限しても整数取れるだろ(プ

どうやってsでとるんだよ ぼけ

scanf厨ならscanfの基礎の基礎ぐらいしっとけ ぼけ
644デフォルトの名無しさん:04/07/04 21:31
白帯同士の試合か・・・
portscanf("m9(´∀`)")
646デフォルトの名無しさん:04/07/04 21:32
scanfは一番最初に使わないといけないものだったのか(w
scanfの基礎の基礎ぐらいしっとけ ぼけ
647デフォルトの名無しさん:04/07/04 21:32
> scanfは一番最初に使わないといけないものだったのか

意味不明
生姜は寒い所が苦手なんだ。
だから冷蔵庫に入れるな、分かったか ぼけ
ラインバッファは一文字だけとって開放してやりゃいいじゃん
ANSIのC規格書には
scanfは必ずしもラインバッファ方式を採用しなくてもよい

て書いてあるけどな
たまたまいろんなコンパイラがラインバッファ方式を取ったというだけで
本来はそうでなくてもかまわない、と。
cin >> buf;
int a;
char str[10];
if (scanf("%d %[9]s") != 2) {
 /* ( ゚∀゚)アヒャ */
}

こんなんでよかったっけ?
653K&R:04/07/04 22:18
>>648
みのもんた?
>>404が模範解答です。
つまりscanfの限界ということです。
655デフォルトの名無しさん:04/07/04 22:34
>>654
要求に合わない関数にしがみつく理由は全くない
scanf が向かない局面を示したところで
全ての局面で scanf を使ってはならないという命題を支えることはできない

アフォ同士の長い釣りだったな、ご苦労
656デフォルトの名無しさん:04/07/04 22:42
>>654
呆れてものも家ねー。
アフォな要求出すほうも出すほうだし、まともに答えるほうも答えるほう。
すべてはscanfの力不足ということですね。
いやここまで盛り上がられればscanfも思い残すことはないでしょう
659652:04/07/04 22:50
>652
int a;
char str[10];
if (scanf("%d %[9]s", &a, str) != 2) {
 /* ( ゚∀゚)アヒャ */
}

引数足りなかったorz
っていうか、こういうツールを適材適所に選べない事は、scanfの
オーバーフローを気にする以前の問題だと思うんだが。
661デフォルトの名無しさん:04/07/04 22:56
>>657
ということにしたいのですね ;-p
fgetsなら
fgets(buf, sizeof(buf), stdin)
ってかけるのにね。scanfは即値ばら撒きまくりで美しくないね。
scanfもとんだ役不足だな、かわいそうに。
664デフォルトの名無しさん:04/07/04 22:59
>>662
int の入力に fgets を使う場合、buf のサイズはどうやって決めている?
理想論じゃなく、おまえの実態が聞きたい。
他人がWindowsを使うのも許せない犬厨みたいだ。
#include <stdio.h>

int main()
{
 scanf("Hello, World.\n");
 return 0;
}

667デフォルトの名無しさん:04/07/04 23:01
scanfもとんだ他力本願だな、かわいそうに。
668デフォルトの名無しさん:04/07/04 23:07
scanfに固執する人間って生産性が低いね。
採用試験に採用しようっと。
fgetsとscanfぐらい使い分けろ…
scanfって習作用の関数じゃないの?
業務で使う?
671デフォルトの名無しさん:04/07/04 23:12
>>668
固執してるのは「使わない」派であって
場合により使う派は適材適所を実践しているだけ

scanf禁止そのものが目的化してることを恥じろよまったく
そのわりにscanfの適材を示すのを強固に拒んでいるのは何でだろ〜
適材適所ってどんなとこなの?
「scanfは使うべきでない」を論破するには事例を一つ挙げるだけでいいでしょ。
そもそもの話は、初心者にはscanfを、とこだわったバカの話じゃなかったか?
適材適所の話なんて、どうでもいいんだよ。
下のような場合はscanfでもいいんじゃないの?

・入力値の範囲が明らか
・エラー処理は考えなくてもよい
そうか、初心者は scanf も満足に使えないのか。
まいったな、もっと楽して講義したかったのに
初心者にはscanfを使わせろとは思わないが、
初心者向けの解説でscanfが出てくるのは別にいいんじゃ?
嫌scanf厨に荒らされてるな。これが学生じゃなくて、かつてのウニックス
老兵士だったら恐いもんがあるな。
上級者が実務アプリでscanf使う場合の適材適所ってどんなとこなの?
「scanfは使うべきでない」を論破するには事例を一つ挙げるだけでいいでしょ。
>>679
だんだん、条件が厳しくなってるぞ(藁
>>679
フォーマットが固定しているレコード入力。
みんなscanfのことが好きなんだなあ。
684デフォルトの名無しさん:04/07/04 23:41
だからC言語のプログラムはバッファオーバーランのセキュリティーホールが絶えないんだな。
CVSとかSubversionとかLinuxとかApacheとか。
>>682
そういう場合ってバイナリを構造体に読み込んだほうがよくね?
>685
それだと柔軟性がないぞ
>>685
釣りはいらないって。
        /\        このスレずっと同じことを
      ∧∧   \/\       繰り返してきたような・・
      /⌒ヽ)  /    \/\
      i三 U  \    /    \ /\
    ..〜|三 |\  | \  |\     /    \/\
    |\(/~U /  .|       \  |\    /    \ /\
   / \ \/    |            \  |\   /    \/\
 /    \ |    .|                 \ |\    /    \/\
 |\    /|     |                      \|\    /    \
 |  \ //\                             \ /        \
 |   |/    \                            /\          >
 |   \    /|                  /\  へ  /    \      / .|
 |     \ //\               /    \  \       \   /    |
 |      |/   \        /\ /       \  \      /|/    |
 |      \    /|   /\/    \        /|   /    /        |
 |        \ //\/    \     \     /|   /                |
 |         |/   \     \    / | /                    |
 |         \     \   / | /                         .|
 |           \    /| /                              .|
 |            \ /                                  |
実務に使うとかどうとかいうのは別にして、とにかく、教育機関とか
研究機関には絶対必要。
ようするにいいかげんさにおいて
gets==fscanfってこと?
691:04/07/04 23:57
>690
あんたばかぁ?
692デフォルトの名無しさん:04/07/05 00:01
これだけはいえる

業 務 で s c a n f 使 っ て る 奴 は 全 員 ク ヒ ゙
>>691
馬鹿ですが何か?
>>692
「scanfすらも使えなかったのか」と言われてクビになったからって、
scanfを目の敵にするなんて、scanfさんが可哀そうです。
>>692
業務でも簡単な確認用ツールとか作るときは使いますが?
逆に業務なんでいちいちガチでコード組むなんてことやってるやつは効率悪すぎてクビ
省略できるところは省略するよ
確認用ツール作るだけならスクリプト使うな。
Conly厨はクビw
>>692
まずは就職しよう。
>>696
関数レベルの確認ツールだと、Cでドライブしたほうが早いよ。
699デフォルトの名無しさん:04/07/05 00:28
佐藤琢磨の不安定なマシンはCで制御されてるらしいな。
>>699
ネタにマジレスだが・・・
言語よりもOSが何かが気になる・・・
NT3.5
なら安心だ。
ただし、開発中のバージョンです
と ろ ん

ですよ。松下なら。
>>704
そいつは非常に不安だ。
TNT4.0
Turbo NT4.0か。爆発しないか一抹の不安が残るがまぁ安心だ。
確かに非常に硝煙くさい...
学校で買わされた入門書にはscanfばっかりで書かれてたので
使ってたら先生が「scanf」なんて使うな!と言ってきた。

てめぇが書いた本買わせといてそれはないだろ・・・
いきなりvoid main(void)から始まってたしな。
学校名と書名を晒せ
 ヘ_へ
さすがにイヤ
ぱっと見買いたくなるような本じゃないとだけ言っておく
713デフォルトの名無しさん:04/07/05 02:44
> 初心者にはscanfを使わせろとは思わないが、
> 初心者向けの解説でscanfが出てくるのは別にいいんじゃ?

いや、説明につかうのもよくないのです。
それでもって初心者が混乱し、結局よけいなことばかりで悩み、自滅します。
714デフォルトの名無しさん:04/07/05 02:46
> 学校で買わされた入門書にはscanfばっかりで書かれてたので
> 使ってたら先生が「scanf」なんて使うな!と言ってきた。
> てめぇが書いた本買わせといてそれはないだろ・・・

その本の書名を教えてください。
715デフォルトの名無しさん:04/07/05 02:57
>>712

それ以前に、
「Cの教科書の選び方」の
(1) バックスラッシュが『円記号』に化けている本はダメ
(2) Cのことを『C言語』などと書いてある本は買わない
(3) 『ANSI対応』などと謳っている本は避ける
(4)サンプルプログラムにscanf()を使ったものはだめ
(5) gets()を使ってあるコードを載せているような入門書もだめ
の(4)に該当するからダメ本だろ。

学校名は書かなくていいが、書名を教えろよ!
すみません、フルパスからファイル名だけ取り出す方法を教えてください。

C:\hoge\hoge.txt→hoge.txt

こんな感じです。パスは固定ではありません。
PathFindFileName()
718デフォルトの名無しさん:04/07/05 03:13
> すみません、フルパスからファイル名だけ取り出す方法を教えてください。

char *fileneme(char *fullpath)
{
  char *p;

  if ((p = strrchar(fullpath, '/')) == NULL)
    return fullpath;
  else
    return p;
}
719デフォルトの名無しさん:04/07/05 03:14
あ、ごめんpじゃなくてp + 1だ。
720デフォルトの名無しさん:04/07/05 03:16
学校名かけないのはともかく、書名を書けないってことは、
ただの架空の話だったのか...。
また大学ネタですか
>>720
最初のカキコミ見てみろよ。
書名かいたら学校までバレるだろ。
723デフォルトの名無しさん:04/07/05 03:34
最終的な結論としては

「C FAQがそう書いてあるから使っちゃダメ」
「C FAQの著者は凄い人」
「ハーバートシルトはC FAQの著者より売り上げが凄いがそれはダメ」


ということですな
724デフォルトの名無しさん:04/07/05 03:36
> 最終的な結論としては

まだscanf厨があばれてたのか...
725デフォルトの名無しさん:04/07/05 03:37
> 最初のカキコミ見てみろよ。
> 書名かいたら学校までバレるだろ。

なんでバレるんだ?
たとえば、柴田の本だったとしても、柴田が教えてるのは1箇所じゃないし
726デフォルトの名無しさん:04/07/05 03:38
> また大学ネタですか

大学でいまどきCなんかおしえねーだろ
727デフォルトの名無しさん:04/07/05 03:38
なんで「あばれ」って毎度平仮名なんだろうか


scanfも知らなけりゃ漢字も知らんということか
728デフォルトの名無しさん:04/07/05 03:38
> scanfも知らなけりゃ漢字も知らんということか

あばれすぎー
729デフォルトの名無しさん:04/07/05 03:39
どんないちゃもんつけてでもscanfを正当化したい、っていうあたりに
哀れみを感じる。
730デフォルトの名無しさん:04/07/05 03:39
>まだscanf厨があばれてたのか...

あばれすぎー
731デフォルトの名無しさん:04/07/05 03:39
で、書名は?
732デフォルトの名無しさん:04/07/05 03:40
606 名前: デフォルトの名無しさん 投稿日: 04/07/04 15:44
チェック「してまでつかうものではない」というのがばれると困るからといって、

チェック「できない」ということにしてしまわなければいけない悲しいひと ;-)

608 名前: デフォルトの名無しさん 投稿日: 04/07/04 15:47
scanfごときチェックできないというのがばれると困るからといって、

チェック「してまで使うものではない」ということにしてしまわなければいけない悲しいひと ;-)


完全論破されてるしw
733デフォルトの名無しさん:04/07/05 03:40
> > まだscanf厨があばれてたのか...
> あばれすぎー

ですね。scanfがないとそんなに困るのか ;-)
734デフォルトの名無しさん:04/07/05 03:40
>ですね。scanfがないとそんなに困るのか ;-)

あばれすぎー
735デフォルトの名無しさん:04/07/05 03:40
> 完全論破されてるし

翻訳すると「論破されているということにしたい」ですね。
736デフォルトの名無しさん:04/07/05 03:41
わかったわかった
追加すればいいんだよな?

「C FAQがそう書いてあるから使っちゃダメ」
「C FAQの著者は凄い人」
「ハーバートシルトはC FAQの著者より売り上げが凄いがそれはダメ」
「scanfも知らなけりゃ漢字も知らん」


これでいいんだね

737デフォルトの名無しさん:04/07/05 03:41
今回のscanf厨って、2、3人いるのかとおもったら
よくみたら1人だけじゃん...。

いつもの2,3倍イキがいいだけか ;-)
738デフォルトの名無しさん:04/07/05 03:42
>翻訳すると「論破されているということにしたい」ですね。


あばれすぎー
739デフォルトの名無しさん:04/07/05 03:42
>翻訳すると「論破されているということにしたい」ですね。

論破されてないと思い込まないとそんなに困るのか ;-)
740デフォルトの名無しさん:04/07/05 03:43
書名の話題のほうがおもしろそう。

おまえらいいかんげにしろ > scanf厨1人と、scanf要らん主張してる数人
741デフォルトの名無しさん:04/07/05 03:43
>今回のscanf厨って、2、3人いるのかとおもったら
>よくみたら1人だけじゃん...。

妄想しすぎー
742デフォルトの名無しさん:04/07/05 03:44
じっさいそうだろ
743デフォルトの名無しさん:04/07/05 03:44
「C FAQがそう書いてあるから使っちゃダメ」
「C FAQの著者は凄い人」
「ハーバートシルトはC FAQの著者より売り上げが凄いがそれはダメ」
「scanfも知らなけりゃ漢字も知らん」
「チェックルーチン書けないのでscanfは嫌い」
「困ると妄想に走る」

今回のscanfにチェックもできない無能って、2、3人いるのかとおもったら
よくみたら1人だけじゃん...。

いつもの2,3倍イキがいいだけか ;-)
744デフォルトの名無しさん:04/07/05 03:44
そのscanfつかってる教科書って、
書名言えないなら、出版社だけでも言ってみろよ。
つくづく漢字知らんよな
746デフォルトの名無しさん:04/07/05 03:45
> 今回のscanfにチェックもできない

っていうか、チェックしなきゃいけないような関数使い物にならんだろ。
747デフォルトの名無しさん:04/07/05 03:46
>っていうか、チェックしなきゃいけないような関数使い物にならんだろ。

あばれすぎー


っていうか、チェックしないでいい関数があるそうだw
748デフォルトの名無しさん:04/07/05 03:46
> > っていうか、チェックしなきゃいけないような関数使い物にならんだろ。
> あばれすぎー

ごまかそうとしてもだめ
749デフォルトの名無しさん:04/07/05 03:46
「C FAQがそう書いてあるから使っちゃダメ」
「C FAQの著者は凄い人」
「ハーバートシルトはC FAQの著者より売り上げが凄いがそれはダメ」
「scanfも知らなけりゃ漢字も知らん」
「チェックルーチン書けないのでscanfは嫌い」
「困ると妄想に走る」
「関数はチェックしないでいいものしか使っちゃいけない」

増える増える
大学が作ってる(基本的にその大学向けの)教科書とかあるからな。
751デフォルトの名無しさん:04/07/05 03:47
>ごまかそうとしてもだめ

あばれすぎー
752デフォルトの名無しさん:04/07/05 03:48
そんなにscanfを肯定、scanf嫌いはチェックできない無能さを看破されていることがつごう悪いのか ;-)
あばれすぎー
いやいやいやいやおかしいね
漢字知らんとかscanf()にとどまらずチェック放棄とか
754デフォルトの名無しさん:04/07/05 03:51
> 大学が作ってる(基本的にその大学向けの)教科書とかあるからな。

一般には売ってないってこと?
でも、
「Cによる算法」東京大学出版会

「パソコンCプログラミング」C研究会(訳) 東海大学出版会
なんかは
ふつうに売られたね。

「CによるPIC活用ブック」東京電機大学出版局
とかも
755デフォルトの名無しさん:04/07/05 03:52
なので「書名言えない」いいわけにはならんが > 学校用
質問です
おまえら、いつ寝てるんだ?人の事は言えないが。
757デフォルトの名無しさん:04/07/05 03:54
夜になれば寝るぞ。
758デフォルトの名無しさん:04/07/05 03:54
こんな陽の高いうちから寝るかよ ぼけ
759デフォルトの名無しさん:04/07/05 03:55
「scanf嫌いな奴は漢字を知らない」

「負けるとすぐ逃げるが悔しがってまた出てくる」
15時に論破されて逃げてAM3時に出てまた論破され。
「逃げた後は ぼけ が出てくる」


わかりやすいのはいいことだ
760デフォルトの名無しさん:04/07/05 03:56
大学とかの講師が自分で書いた本を教科書にするのは、よくあることなのですか?
761デフォルトの名無しさん:04/07/05 03:57
>>760
某void氏もそうだろ > 自分で書いた本を
>>758-759
空はくあけるな ぼけ
voidって大学で教えてるの?


・・・。教え子は不幸だな。
粘着してる香具師はvoidの弟子だと妄想してみる。
765デフォルトの名無しさん:04/07/05 04:31
>>761
でもあの本はscanf使っていないから違うだろうけど。
「師匠のように私も2ちゃんねるを荒らしています。」
「どんなことを、しているんだ」
「空白あけない ぼけを全部追払いました。」
「そうか、よくやった」
「きのうはscanf()とvoid main()をコテンパンに痛めつけてやりました。」
「お前は、ワシの教えを熱心に布教しているようだな」
「俺に聞け!Part xx スレなんか300レスは私の書込みです。」
「ワシはスクリプトで書込みしたが、お前は全部書いたのか」
「もう、私も師匠を超えましたね。」
「ということにしたいのですね ;-p」
>>754
一般で入手しやすいかどうかは本によるけどな。
よくあるパターンは大学のサーバに教科書サイトを置く教授。
・・・間違いだらけの電波サイトがほとんどだけどねw
Wikiにしたら教授辞めたくなるだろうなw
(# `ハ´) 要挿入空白. 痴呆.
>>763
春ごろに、沖縄の専門学校で英語を教えてるという話があったよ。
まだやってるかどうか知らないけど。
以前、"while" を「ファイル」と読んで
馬鹿にされてた奴が居たが、
別に間違ってないだろ?
"white" は「ファイト」と読むだろ?
むしろ"file" を「ファイル」 "fight" を「ファイト」って読んだ方が間違いだろ。
普通「ファ」って下唇噛まねーもん。
772デフォルトの名無しさん:04/07/05 12:36
lの発音がまずかったのでは。
>>771
>"white" は「ファイト」と読むだろ?
>"white" は「ファイト」と読むだろ?
>"white" は「ファイト」と読むだろ?
ほっとけよ・・・
低学歴の方ですね
>>773
違うっていうなら、何て読むんだ?
"ホワイト" か?
"ホ" って何だよ"ホ" って(プ
"white" は "ファイト" だろ(プ
ワイ
"white" や "what" を、
「ホワイト」「ホワット」と読むのがアメリカ英語、
「ワイト」「ワット」と読むのがイギリス英語。
"new" を、
「ヌー」と読むのがアメリカ英語、
「ニュー」と読むのがイギリス英語。
だれか、質問キボンヌ。
別に御前に聞かんでも他にいるし
別に御前の質問に答えるつもりないし
だれか、質問キボンヌ。
就職しろよ無職
784デフォルトの名無しさん:04/07/05 15:44
>>779>>782
1:どうして仕事もしないで家に閉じこもっているのですか?
2:親は何も言わないのですか?
3:将来どうやって生活していくつもりですか?
はやく答えろ
>>779でも>>782でもないけど
反応してる奴らも職はあるのか?
今講義中だけど?
788デフォルトの名無しさん:04/07/05 16:06
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=237
問題は「2頂点の最短距離と経路を表示させるプログラムに修正せよ」
です。助けてくれ〜


ぼるじょあがC/C++の宿題を片づけますYO! 25代目
http://pc5.2ch.net/test/read.cgi/tech/1087929711/

ようかんマンがC/C++の宿題を片付けて見せます 26棹
http://pc5.2ch.net/test/read.cgi/tech/1088860889/
>>788
死ね
丸投げに誘導か。このスレいらないじゃんw
>>791
低脳、氏ねば?
プゲラw

792自身のことじゃんw
とりあえず、793のほうが頭悪そうに見えた。
だからといって792、791および790、788の頭の悪さが否定されるわけではないのだが。
夏厨よりも救いようがありませんね…
おまえらなんでそんなに必死なんだ。120時間かけてゲーム1本P2Pで落とそうとしてる俺のほうがよっぽど大人に見えてくるじゃないか…。
大人ならちゃんと買ってあげてください。
大人ならちゃんとソースコード書いて動かしてください。
799デフォルトの名無しさん:04/07/05 16:32
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=237
問題は「2頂点の最短距離と経路を表示させるプログラムに修正せよ」
です。助けてくれ〜
ぼるじょあがC/C++の宿題を片づけますYO! 25代目
http://pc5.2ch.net/test/read.cgi/tech/1087929711/

ようかんマンがC/C++の宿題を片付けて見せます 26棹
http://pc5.2ch.net/test/read.cgi/tech/1088860889/
>>771 が早く日本語覚えて、日本人の友達が出来るといいね。
盛り上がってるね染色体変異性奇形児
C言語ならK&Rに聞け!







   終  了








 
もう次スレいらんな。
NGワードに以下を追加しました。
scanf
gets
goto
議論
論破
初心者
あほ ぼけ
これは基本中の基本
807ou:04/07/05 17:50
適当な移流拡散方程式を差分 (・∀・)ほうで解くプログラムを教えてくれー。
出来たら、差分スキームに及ぼす影響も考察してください。
scanfとgetsの優劣、gotoの使用の可否についての議論は
初心者が論破されたという形でよろしいですか?
ろんぱ以前に立論されていませんが?
はよおまんこみせろ ぼけ
811805:04/07/05 17:54
>>808
読めないです。ぼけ ;-P
812デフォルトの名無しさん:04/07/05 17:58
丸投げに誘導か。このスレいらないじゃんw
>>984

いや、ところがエロゲといえども最近はそうでもないよ。
ユーザーはべつにパンツが見たいわけではなく、
パンツが見えてしまったときのキャラの(照れるなり怒るなり)リアクションを見たいわけで、
このような意味もなくスカートの中が見えているだけのパンチラ、
色気も存在感もないまるで空気のようなパンチラを、
専門家は「空気パンチラ」と呼んで忌み嫌っている。

(萌えキャラが恥ずかしげもなくパンツを見せるのは激しく萎える行為なのだ)

最近のエロゲでも、流行に敏感な原画家は空気パンチラさせずに
ぎりぎりの見えそで見えない感を煽るだけの絵が増えてきてる。
ちんぽ先生は時代錯誤も甚だしい。
今はもう「とりあえずパンツ見せときゃ客が喜ぶ」ような簡単な時代ではないのだ。
>>813
チラリズムとか恥じらいがよいって大昔からだろ。
>>813
性癖に時代なんて関係なかろう。
非処女 = クズ
デカチチ = ゴミ
チャパツ = カス
短スカート = アホ
(・∀・)埋め
818デフォルトの名無しさん:04/07/05 20:14
>>809
まったくそのとおり

・あの人が言うから
・何となくイヤだから
・突然の「結論」
・よけい確信した
・教えてくれないから事実はないことにしたい

こんなんばっかり
激しくつまんねー
上がってるときはいつも荒れてるな
820デフォルトの名無しさん:04/07/05 20:47
お前ら、9時から始まる新ドラマ見ろよ。
AKIRAなら見る。
明日も暑そうですね。
823デフォルトの名無しさん:04/07/05 21:10
ようかんまんがきもいのでここに宿題を丸投げしたいのですが、構いませんか?
どうぞ。どうせスルーだ
>>823
後に続く連中がウザイのでご遠慮下さい。
本当の私を
見つけてくれますが?
藻前のアドレス晒すぞゴルァ
羊羹喰いたいな
Cでゲーム作れるようになるのと
C++で作れるようになるのはどちらがいいですか?
それぞれの短所・長所を教えてくれませんか
C++はCのスーパーサブセット
大は小を兼ねる
C++を使わないメリットはあまりないよ。
せいぜい覚えることが少ないってだけ。
機能が貧弱な分あとで苦労することになる。
>>831
頼む、C++云々言う前に日本語を勉強してくれ。
833デフォルトの名無しさん:04/07/05 22:18
>>829
ゲームの規模による
だいたい1000行くらいまでの
小さいプログラムならCのが楽
>>829
C で作れるようになる
長所:
短所:
C++ で作れるようになる
長所:
短所:
1000行じゃ何もできんな。
>>835
お前じゃそうだろうな。w
>>829
どっちでもいいから、作れるようになるのが先決。
ま、新規で学習するのに、あえてCを選ぶこともないと思うがね。
Cでscanfを使いこなしてからC++にステップアップするのが近道だな。
土台が腐っているとその上に何も積み上げることができない。
839829:04/07/05 22:54
一応Cは一通り勉強しました
C++に進むかCでやってみるか悩んでいたので質問しました
えー? scanfで埋めんのー? ヤダー
841デフォルトの名無しさん:04/07/05 23:02
807に答えてやってくれ
>>839
C++ に「進む」ってなんだよ?
プ
答えてやりたいとは思うが
残りのレス数を考えるとちょっと書ききれないね。
>>839
なんだそうなのか。
何のためにC++へ移行するのか考えてみた方がよいね。
必要なら学習するし、必要性を感じないならまたの機会に。
言語学習自体が目的ではないだろうから。
>>839
C# に進めよ。
マジでオススメ。
846デフォルトの名無しさん:04/07/05 23:46
>>845
MSKK氏ね
847デフォルトの名無しさん:04/07/05 23:55
sizeofやcalloc,mallocはどういった場面で使えるのでしょうか?
どなたか教えていただけないでしょうか
さまざまな場面
849デフォルトの名無しさん:04/07/06 00:06
>>847
sizeofは常に使える
calloc, malloc は、必要なヘッダファイルを #include し、
必要なライブラリをリンクしたときに使える
850デフォルトの名無しさん:04/07/06 00:12
> 必要なヘッダファイルを #include し、
>>847
無駄な議論をしたいときに使えます。
852デフォルトの名無しさん:04/07/06 00:18
すいません言い方を間違えておりました。
sizeofやcalloc,mallocといった命令はどういった時に使えばどう役に立つのでしょうか。
2バイトの処理系,4バイトの処理系でどうのこうのとかどういった場面で使えばいいのか
あまりわかりません。どなたか教えていただけますか。
一例

memset( &var,0,sizeof(var));

854デフォルトの名無しさん:04/07/06 00:18
>>850
言いたいことはわかるが
sizeof(void*)だろ?
まずひとつ。
「命令」ではない。
BASICからやり直せ
callocは使うこと無いぞ。
>calloc

mallocした後、0をmemsetする時には使う
859デフォルトの名無しさん:04/07/06 00:36
>>854
なにを言いたいのかさっぱりわからん。
>>859
>>853宛っぽくない?
>>858
そういう場面があまり無いというか、あったとしてもその場合は
malloc+memset(昔はbzeroか?)でいいじゃんと思うわけだが。
*よりもコンマが好きとか
>>859
botでは?
>>860
それにしてもわからん。
>>864
何か言いたいことがあるんだろう・・・
>>854を置き換えてみた

言いたいことはわかるが俺の環境では4だろ?
言いたいことはわかるがsizeof(char*)でも一緒だろ?
867デフォルトの名無しさん:04/07/06 00:50
もう一度自分なりにまとめてお聞きします。
普段プログラムをうっていまして、基礎ができてないので参考書を使って
1から学んでいるのですがsizeof,malloc,calloc,この3つを使った
ことがありませんでした。そこでこの3つをどういった場面で使えば効率
のいいプログラムになるのかがわからなくて聞かせて頂きました。
sizeofを使わずにまともなプログラムがかけるとはしらなんだ
>>854がレスどおり>>850宛だとする。
>>886の後者の意味だとする。
sizeof(void*)はsizeof(char*)と同じ。
sizeof(void*)は他のもので代用できる。

つまり

malloc(), calloc()を使うための#include <stdlib.h>は自分で書いたプロトタイプ宣言で代用できる。

ということか。
sizeof : 型や構造体などの大きさが知りたいとき
malloc : 必要なだけ確保したいとき
>>869
私あなた分かりません。
>>854 がもし >>853 宛てだとしたら、言いたいことはわかってないってことだな。
>>872
言いたいこと分かった上で、かまって欲しいから適当なこと書いているんじゃない?
*重要です*

・メモリ管理
・入出力
・ポインタ

これらに関する疑問は予めK&Rの該当個所を熟読して理解してから
再びその疑問を再考した上で回答者が分かり易いように文章で表現して下さい
875デフォルトの名無しさん:04/07/06 03:48
> 基礎ができてないので参考書を使って
> 1から学んでいるのですがsizeof,malloc,calloc,この3つを使った
> ことがありませんでした。

まずその本の名前を言え!
話はそれからだ
876デフォルトの名無しさん:04/07/06 03:52
>"white" は「ファイト」と読むだろ?

千葉県に「ファイト餃子」って店があります。

餃子の種類は「ホワイト餃子」と同じタイプです。
のれん分けでしょうか? ぱちもんでしょうか?
877デフォルトの名無しさん:04/07/06 04:23
windowsXP,Visual C++でプログラムを書いてるんですが、
ファイル間のリンクがうまくいきません。。。
「main.c」、「○.cpp」、「○.h」、「□.h」
後ろの3つを最終的にmain.cでインクルードして使いたいです。
どなたか書き方教えてください。
878デフォルトの名無しさん:04/07/06 04:29
しちゃだめです。
>>877
ここはC言語についてのスレです。そうは見えないかもしれませんが。
特定の環境の話は、専門のスレに書いてください。
うまくいきませんではなく、どんな風にやっているのか、どんな具合なのか、
メッセージがでるなら省略しないで書く事。
880877:04/07/06 05:06
c言語だからここでいいのかと思ってしまいました。
すみません。
専門のスレに探して分かりやすいように質問してみます。
>>880
ヘッダはソースにインクルードする。
ソースは別々にコンパイルしてリンクする。

あとは「分割コンパイル」で検索
882ゆうま ◆irDDQfcPYE :04/07/06 07:10
VodafoneをPCからキーボードエミュレートする場合
どうしたらよいんですか?
 とくにSkyメールを押したいんだけどHEX値が全くわからない。
詳しい方お願いします。
>>882
ここはC言語についてのスレです。そうは見えないかもしれませんが。
特定の環境の話は、専門のスレに書いてください。
うまくいきませんではなく、どんな風にやっているのか、どんな具合なのか、
メッセージがでるなら省略しないで書く事。
884632:04/07/06 08:11
スレ進行どっぱやい。

>>634 もちろん合法的にです。
>>868
まともでないプログラムなら書けるだろ?
867が「まともなプログラムを書いている」とは
一言も書いてないしな。
scanfとgetsはどちらがセキュアですか?
どっちもプリキュア
888デフォルトの名無しさん:04/07/06 13:02
共用体って重要ですか?
構造体は分かったんですが共用体の存在価値が分かりません。
『やさしいC第2版』P.376に共用体の例文が載ってるんですが意味なさそうです。
889デフォルトの名無しさん:04/07/06 13:04
>>888
volatileと一緒。重要で必要な人は少なからずいる。
890デフォルトの名無しさん:04/07/06 13:05
全く無意味なものはautoと単項演算子の+だけ。
質問です。
メモリ上のアドレス0x12FF88のデータを取得したい場合はどうやればできますか?
unsigned char data = *(unsigned char *)0x12FF88;
893891:04/07/06 13:34
早速試してみますね。
即レス感謝です。
894デフォルトの名無しさん:04/07/06 14:31
初歩的な質問なんですが

srand(clock());
ans = rand() % 100 + 1;

という文でansに1から100までの乱数を格納する
プログラムを作ったんですけど
LSI-C試食版でコンパイルすると毎回初期化されてうまくいくのですが
BCCでコンパイルすると乱数が初期化されていません
毎回同じ値です

BCCにはsrand関数もしくはclock関数がないんでしょうか?
time()使え
clockの戻り値チェックしてみたら?
プリプロセッターというものを使うと便利だと聞いたのですが、
どんな時に使うと便利に使えますか?
898894:04/07/06 15:00
>>895
>>896
clockの戻り値はLSI-Cでは1089125238となりましたが
BCCでは0のままでした・・
clock関数が作動してないみたいです
BCCの仕様なんですかねぇ・・?

time使ってみます
>>897
×プリプロセッター
○プリプロセッサ (preprocessor)

どんなときに使うというか、普通は必ず使用される。
>>898
これで試してみなよ、ちゃんと動作してるから。

#include <stdio.h>
#include <time.h>
int main(){
while(1)printf("%d\n", clock());
return 0;
}
>>897
君は立派に使っていると思うよ。
#include <stdio.h> として、printfなどが使えたり
#define HOGE (10) とかして、 HOGE が 10 として
使えるのは、プリプロセッサーのおかげだよ。
902894:04/07/06 15:39
>>900
現在の時刻: 15:21:00.03
新しい時刻を入力してください:

とでました。(これでいいんですよね?)
確かに動作してますね
うーん なぜだろう・・・
system("time");
を内部でやってる悪寒がする
904デフォルトの名無しさん:04/07/06 15:43
テキストファイルを読みこむにはどうすればいいですか?
>>904
formatされたいのか?
>>904
fopenとfgetsにfclose
907894:04/07/06 15:52
>>903
> system("time");
> を内部でやってる悪寒がする

たぶんやってないです・・・こんな文知らないし・・・

ところでtimeを使う場合は
int* t;

time(t);
printf("%d\n", *t); //戻り値の確認
srand(*t);
ans = rand() % 100 +1;

でいいんでしょうか?問題のあるポインタの変換とエラーがでます
でも問題なく実行できます
ramdomのほうを使ったほうが・・・
time_t t;

time(&t);
printf("%d\n", t); //戻り値の確認

だろ?
>>902
そのプログラムtime.exeの悪寒
TIMEはWindows標準のコマンドなんでtimeって打ってもWindowsのTIMEコマンドが実行されちゃう
ポカーン
912デフォルトの名無しさん:04/07/06 16:08
戻り値じゃないけどな
とりあえず、ポインターをもう一回勉強すること。それからだ。
そんなオチかよ、ってかsrand((unsigned)time(NULL));しろよ
915デフォルトの名無しさん:04/07/06 16:12
>>909
あ こっちが正解ですね
time_t こういう変数の宣言を初めてみました・・

でも
long* t;

time(t);
printf("%d\n", *t); //戻り値の確認

これでもうまくいきました 
>>907
俺も昔やったな。
だれもが通る道なのか。
>>915
それはたまたま動いてるだけ。
>>915
だからポインターをもう一回勉強しろっていわれるんだよ。
うまくいったんではなく、たまたま動いているだけなのよ。
だいたい、エラーでるんだから、そこで「うまく」という言葉は
使えないだろ?
919デフォルトの名無しさん:04/07/06 16:16
ポインターポインター
920デフォルトの名無しさん:04/07/06 16:16
>>910
げ そのとおりです・・・
921デフォルトの名無しさん:04/07/06 16:22
>>917
>>918
いやーエラーも出なかったんですけど・・たまたまだったんですね

もう一回勉強しろ というか、いま一回目の勉強中です(・∀・)
っていうか何でタマタマとか言われるのか分かんないんですけど。
まあいいかw
>>922
ポインタが初期化されてないから、どこを指してるかわからない。
そのポインタで値を取得してるから、どっかを壊してるはず。
たまたまlongだからということじゃないの?
これが、構造体だったりしたとき、同じように
やったら、動かないんじゃないの?
たとえば、 localtime() とかのとき

struct tm *t;
localtime(t); ってやると、確実に動かない。

struct tm t;
loacltime(&t); ってやると動く。

そういこといってるんじゃないのかな?
>>923
なるほど、分かったような気がします。ありがとうですた
>>923
いや、この場合、ポインターをポインターとして使わず、
その領域を long として使っているから壊していない。
927894:04/07/06 16:33
>>922>>925は僕ではないです まあいいけど
で、894さんは、理解したのかな?
>>926
嘘は良くない。
>>926
time()の引数って「時刻の格納場所へのポインタ」だから、初期化してないポインタを渡すと
どっか壊してるよ。
931894:04/07/06 16:44
話が戻りますが
time.exeじゃなくて他の名前にしてから
>>900さんのプログラムを試したところ
LSI-Cでは現在時刻がカウントされましたが
BCCでは0から数値が増えていきます

clock関数の動作がやっぱり違うみたいです
>>931
MSVCRTからclockをインポートして使えば?
なんでわざわざclock()使って喜んでるわけ?
>>931
本とかヘルプには「プロセス開始から」とかって書いてあるから、BCCの動作のほうが正しいと思う。
man clock
注意
C の標準規格ではプログラムの開始の時点ではどんな値が返って
きてもかまわない。最大限の移植性を確保するためにはプログラ
ムの開始時に clock() を呼び出してその値を差し引くこと。

乱数の種にするには明らかに不適切な値だと思うが>clock()
Windowsに/dev/randってないの?
938926:04/07/06 16:59
>>929>>930
スマソ嘘いいました。
939デフォルトの名無しさん:04/07/06 17:02
>>937
うちのLinuxにもありませんね。
/* 安全な scanf の使い方を開発したよ! */
#include <stdio.h>

int safe_scanf(char *str, int size)
{
 int i; char c;
 for (i=0; i<n&&c!='\n'; i++){
  scanf("%c", &c);
  str[i] = c;
 }
 str[i] = '\0';
 return i;
}
941デフォルトの名無しさん:04/07/06 17:04
次の質問をどうぞ。
942894:04/07/06 17:05
本みながら勉強しててその本のサンプルコード
をBCCでコンパイルしたらうまくいかず
同じコードをLSI-Cでやってみたらできたので
不思議に思って質問しました

BCCとLSI-Cって微妙に違いますよね・・
intのサイズも違うし
intなんてサイズ違って当たり前と思え。
サイズが普遍なのはcharくらい
>>942
LSI Cは16ビットのDOS用、現在のBCCは32ビットのWindows用。

それとBCCで0からカウントされるのが嫌ならWindowsの起動時間を得るGetTickCountを代わりに使うとか
#ifdef __BORLANDC__
#include <windows.h>
#define clock GetTickCount
#else
#include <time.h>
#endif
945926:04/07/06 17:20
BCC には time()はないのか?
素直に、 srand(time(NULL)); できんのかと・・・
/* >>940に追加で安全な printf の使い方を開発したよ! */
#include <stdio.h>

int safe_printf(char *str, int size)
{
 int i; char c;
 for (i=0; i<n && c!='\n'; i++) {
  c = str[i];
  printf("%c", c);
 }
 str[i] = '\0';
 return i;
}
947デフォルトの名無しさん:04/07/06 17:23
srand(rand());
これでどうだ?
948デフォルトの名無しさん:04/07/06 17:24
>>945
もちろんある。
>>947
プッ
>>947
それだとrandが初期化できないからせめて
srand(srand(time(NULL)), rand());
にしとけ
951デフォルトの名無しさん:04/07/06 17:27
srand(*(unsigned *)0x1234);
952デフォルトの名無しさん:04/07/06 17:29
>>950
こうしないとダメ。
srand((srand(time(NULL)), rand()));
953デフォルトの名無しさん:04/07/06 17:30
で 結局乱数を初期化するのに一番適切なのは?
QueryPerformanceCounter()+GetTickCount+time()
955デフォルトの名無しさん:04/07/06 17:31
>>953
ユーザー入力
どなた様か、動画ファイルから静止画を切り出すライブラリを教えて下さいませんか?
>>954
timeGetTimeも
>>956
そんな難しい質問には答えません。
GUIなどの標準Cではできない事の質問は使用している開発環境のスレへGo! (←ここ注目)
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへさようなら。
960デフォルトの名無しさん:04/07/06 17:44
動画といっても形式は様々だ。
SendKeyでPrtScnキーを押せばいいんじゃないの。
うちのMacにそんなもんは無い。
>>961
おまえ天才じゃん。
457MB中、あと10KBだけ落ちてこない状況が2時間続くと非常にイライラする
>>960
付け加えて、静止画と言うのも形式は様々だな。
動画再生中にPrtScn押してもその部分真っ黒になるのは俺だけか
>>966
MSファッキンキャプチャーのせい。
ハードウェアを使わず動画再生するように変更するとよろし。