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

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

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

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

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

各種リンク、関連スレは>>2-13あたり

C言語なら俺に聞け! Part 102
http://pc5.2ch.net/test/read.cgi/tech/1108056236/
他の過去ログはここに
http://nssearch.hp.infoseek.co.jp/clang/
2デフォルトの名無しさん:05/02/26 14:28:58
2気と
3デフォルトの名無しさん:05/02/26 14:56:48
【コンパイラ】
gcc
http://gcc.gnu.org/

【Win32用の開発環境のみ。】
gcc-cygwin
http://www.cygwin.com/
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/
Visual C++ Developer Center: Microsoft Visual C++ Toolkit 2003
http://msdn.microsoft.com/visualc/vctoolkit2003/

【ライセンスや機能などに問題あり】
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
4デフォルトの名無しさん:05/02/26 14:57:55
4様
5デフォルトの名無しさん:05/02/26 15:05:54
5
6デフォルトの名無しさん:05/02/26 15:07:35
6
7デフォルトの名無しさん:05/02/26 15:21:58
7
8デフォルトの名無しさん:05/02/26 15:36:21
arg1に文字列、arg2にint型の数値で画面に文字列を表示させる関数を
作ったんですが文字列の長さに関わらず以下のように表示させようと
思ったんですがよくわかりません。
AAAA  0
BB   0
C    0

sprintf(buf,"%-s %5d",arg1,arg2);
ではうまくいかないんだが何をどう変えればいいか教えて
9デフォルトの名無しさん:05/02/26 16:22:12
>>8
どううまくいかなかったって?
10デフォルトの名無しさん:05/02/26 17:06:37
>>8
そりゃ、sprintf()では画面には表示されないだろ。
11デフォルトの名無しさん:05/02/26 17:14:38
puts(buf)
12デフォルトの名無しさん:05/02/26 20:22:44
c:\AVI.exe

char name[]="[映]君と僕[15].AVI"
このファイルをコマンドラインから読み取り

c:\AVI Fopen=[c:\[映]君と僕[15].AVI] Fout=[d:\[[映]君と僕[15].AVI]]

このようにオプションを指定して
ファイルを読み取りたいんですが
どうやってファイル名を読み取ればいいのでしょうか?
13デフォルトの名無しさん:05/02/26 20:34:06
>>12
日本語で説明汁
14デフォルトの名無しさん:05/02/26 20:47:02
>>12
ファイル名を [, ] で囲まなければならないのか?
ファイル名自体に [, ] が含まれてるからめんどいぞ。
とりあえず,日本語で説明し直せ
1512:05/02/26 21:41:27
すいません、間違いました
char name[]; ← これは保存用変数でした

そうなんです、ファイル名はすべて読み込みにしたいんです
だから、あえてファイル名に[、]を付けました

この場合のコマンドラインから
ファイル名を読み取るにはどうすれば良いのでしょうか?

ファイル名 [映]君と僕[15].AVI
ファイル読み込みオプション -Fopen=[c:\[映]君と僕[15].AVI]
(その他のオプション は アルファベット+= にスペースで区切り)

実行ファイル AVI.exe
AVI -Fopen=[c:\[映]君と僕[15].AVI]

void main (int argc, char *argv[]))

 char *p,*p2;
 char name[_MAX_PATH];

   int num = 0;
   while (num < argc) {
      if ((p = strstr(strupr(argv[num]),"-Fopen"))
      {
           ファイル名取得処理
      }
     num++;
  }

これで良いでしょうか?
ファイル名取得処理のところはどうすれば良いのでしょうか?
1615:05/02/26 21:52:02
すいません 上のは忘れてください

[、]のあるファイル名を -Fopen=[デレクトリ+ファイル名]
を読み込みたいんです
文字取得処理が知りたんです

char name[]="-PP -OP -MM -Fopen=[c:\[映]君と僕[15].AVI] -Fout=[d:\[[映]君と僕[15].AVI]"

この文字列の中から
-Fopen=[  (ここにある文字列を取得) ]

どうすればいいのでしょうか?
17デフォルトの名無しさん:05/02/26 23:05:01
ビット演算で値を1/10にできますでしょうか
18デフォルトの名無しさん:05/02/26 23:18:13
if(int i;i<n;i++)
みたいに if の()の中で宣言できる処理系ってあります? GCCだとできなかったんですけど。
19デフォルトの名無しさん:05/02/26 23:23:40
たぶんC++使えるコンパイラなら普通できんじゃないの
違うのかな
20デフォルトの名無しさん:05/02/26 23:30:21
C99でも出来ることにはなっている。
C99対応のコンパイラはどこにも存在しないが。
21デフォルトの名無しさん:05/02/26 23:37:16
>>12,15,16
なんでわざわざ [] で囲む仕様にするの?囲まないほうがかなり簡単な
コードになるよ?

22デフォルトの名無しさん:05/02/26 23:37:22
>>20の話題はスルーで
23デフォルトの名無しさん:05/02/26 23:37:58
1/10
=(1/8)(1/(1+1/4))
1/(1+1/4)
=1-1/4+(1/4)^2-(1/4)^3+…
無理っぽい。
シフトと加算だけだがビット演算じゃないし
24デフォルトの名無しさん:05/02/26 23:38:48
>>18
とりあえず…その比較はやばそうだな…
if(int i=0;i<n;i++)
にしる
25デフォルトの名無しさん:05/02/26 23:40:55
>>8
もし「文字列は4文字で左詰めで、数字は5文字で右詰め」
という意味だったら、
"%-4.4s %5d" とかそんなかんじ。
26デフォルトの名無しさん:05/02/26 23:47:50
>>16
OSのシェルと、コマンドライン引数について勉強してからにした方がよさげ。
2716:05/02/26 23:48:59
カッコで囲まないとどのような
物になるのでしょうか?

一応、ファイル名がどこから始まり、どこで終わるかを
指定しているんですけど

この場合、ファイル名の先頭から
1文字づつ調べて、
次がオプションの文字かどうか調べないとダメなのかな

"-PP -OP -MM -Fopen=[[映]君 と 僕 -PP -OP -[15].AVI]  -Fout=[d:\[[映]君と僕[15].AVI]"

こんなファイル名だったら、やはり無理ってことでしょうか?
28デフォルトの名無しさん:05/02/26 23:53:40
>>27
まず、argv を1行ずつ表示するプログラムを作っていろいろ試してみな?
for (i = 1; i < argc; i++) {
printf("'%s'\n", argv[0]);
}
で、
foo.exe -PP -OP -MM -Fopen=君 と 僕.avi

foo.exe -PP -OP -MM "-Fopen=君 と 僕.avi"
の結果を見て考察せよ。
29デフォルトの名無しさん:05/02/26 23:55:20
おっと、↑のは
printf("'%s'\n", argv[i]);
の間違いね

30デフォルトの名無しさん:05/02/26 23:57:18
いえいえ、コマンドラインは忘れてください

char name="-PP -OP -MM -Fopen=[[映]君 と 僕 -PP -[15].AVI]  -Fout=[d:\[[映]君と僕[15].AVI]"

この変数からの取得したいんです
31デフォルトの名無しさん:05/02/26 23:58:39
>>30
自前でトークン分割汁。
32デフォルトの名無しさん:05/02/27 00:00:38
>>30
馬鹿かてめーは
その変数から取得するなら既にわかってるじゃねーか

char *p = "[映]君 と 僕 -PP -[15].AVI";

ほれ取得できたぞ
3323:05/02/27 00:05:06
>>17
(x-x>>2+x>>4-x>>6+x>>8-…)>>3
でx/10ができるはず。
…の部分はxのビット長で適宜延長すること。
+を使わない方法が知りたい。
34デフォルトの名無しさん:05/02/27 00:05:35
>>31
そんなぁ〜

初めのトークン取得までは良いんですが、最後の判定が分からないんです
そのファイル名をC言語で取得する方法を教えてください

-Fopen=[ (もちろんこの部分はいろいろ変わります) ]
3523:05/02/27 00:08:05
シフトがアンカーになってしまった
(x-x>> 2+x>> 4-x>> 6+x>> 8-…)>>3
36デフォルトの名無しさん:05/02/27 00:09:49
>>34
文字列操作の基礎
3723:05/02/27 00:14:12
さらに訂正。
(x-x>> 2+x>> 4-x>> 6+x>> 8-…)>> 3
サイナラ
38デフォルトの名無しさん:05/02/27 00:14:45
>>23
おお、ありがdございまする
+があっても無問題ですー
これは余談ですが
他にもこれはよさげってなビット演算ワザありませんでしょうか?
39デフォルトの名無しさん:05/02/27 00:24:10
>>34
まず、ルールを紙か何かに書いて生理汁。
そうすれば、どういう処理をすべきか見えてくる。

標準関数一発で出きるようなモノじゃない。
甘ったれるな!
40デフォルトの名無しさん:05/02/27 00:25:58
>>30
その文字列になる前に何とかしないと、かなり難しい。

char name="-Fopen=[[映]君 と 僕 -Fopen=[ほげー] -PP -[15].AVI] -Fout=...";

ってあったら、どうすればいいと思う?
41デフォルトの名無しさん:05/02/27 00:30:44
>>34
まずEBNFで文法を定義しる。
42デフォルトの名無しさん:05/02/27 00:34:20
そんなことをする前に、引数の渡し方を変更しろ。
こういうレベルの奴の言うことは、目先の問題ではなく、根本の問題を解決して
やる方が100倍簡単。
43デフォルトの名無しさん:05/02/27 00:36:46
プログラミング初めた時から正規表現使ってた若い奴って
こういう簡単な解析処理が書けないんだよな
4423:05/02/27 00:40:42
>>38
>他にもこれはよさげってなビット演算ワザありませんでしょうか?
すぐは思いつかないです。
御免なさい。
代わりにビット演算とループで加算を実現するという無意味なワザなら…
x+=y
は確かこんなん↓
{
 z=x^y; ビット毎の+
 y=(x&y)<<1; 繰り上がり
 x=z;
}while(y);
45デフォルトの名無しさん:05/02/27 00:48:57
>>23
do ですか?
4623:05/02/27 00:53:41
>>45
do です。抜けてました。ご指摘m(__)m

do{
 z=x^y;
 y=(x&y)<<1;
 x=z;
}while(y);
47デフォルトの名無しさん:05/02/27 01:08:03
>>23
すごい!できました
うーんビット演算ていろいろできますね〜
サンクスでした!
48デフォルトの名無しさん:05/02/27 03:53:07
48
49デフォルトの名無しさん:05/02/27 03:55:58
>>47
BCDにして4ビット右シフトしる
50デフォルトの名無しさん:05/02/27 03:57:12
50
51デフォルトの名無しさん:05/02/27 11:41:15
>>17
何故ビット演算にこだわるのか?と小一時間(ry
5223:05/02/27 12:03:18
>>51
解決したんだからいいんじゃないのか?と小一時間(ry
53デフォルトの名無しさん:05/02/27 12:53:33
> C99対応のコンパイラはどこにも存在しないが。

VC厨でたー
54デフォルトの名無しさん:05/02/27 12:54:27
> みたいに if の()の中で宣言できる処理系ってあります?

ありません。

> GCCだとできなかったんですけど。

当然。

C++でもできません。
55デフォルトの名無しさん:05/02/27 13:07:50
c:を出てからe:に入るコード教えてください
56デフォルトの名無しさん:05/02/27 13:14:30
CでCoroutineを実現するライブラリありますか?
標準Cじゃなくてもいいです
57デフォルトの名無しさん:05/02/27 13:18:41
>>55
chdrv("E:");
58デフォルトの名無しさん:05/02/27 13:27:57
>>56
setjmp(),longjmp()使って自分で書け。
59デフォルトの名無しさん:05/02/27 13:35:22
command promptでd:からc:に入るにはどう書けばいいですか?
60デフォルトの名無しさん:05/02/27 13:36:43
c:
61デフォルトの名無しさん:05/02/27 13:37:38
C言語すらない世界に突入。
62デフォルトの名無しさん:05/02/27 13:40:46
>>56
pthread
63デフォルトの名無しさん:05/02/27 13:44:15
インラインアセンブラを書くオフィシャルな構文ってあるの?
64デフォルトの名無しさん:05/02/27 13:50:25
昨日まではなかった。
65デフォルトの名無しさん:05/02/27 13:50:25
構文が無ければ書けないのだが。国際規格の構文を言っているのか?
66デフォルトの名無しさん:05/02/27 13:50:48
>>63
「オフィシャルな」って意味がよく分からないが、「規格にあるか」
って意味なら無いんじゃない。コンパイラ依存。
67デフォルトの名無しさん:05/02/27 13:51:57
なんで6分間の空白の後に一気に3レスもつくのさ。
68デフォルトの名無しさん:05/02/27 13:52:38
しるか!
69デフォルトの名無しさん:05/02/27 13:57:08
>>63
C++にはそういうのがあるはず。asmも予約語になっているし。
あくまでもC++での話、参考までに。
70デフォルトの名無しさん:05/02/27 15:43:00
3:41:31 PM: void_No2: PageFaultって
3:41:41 PM: void_No2: SegmantationFaultみたいな、エラーの一種だと
3:42:00 PM: void_No2: おもってたらしい > 21歳女性眼鏡使用
71デフォルトの名無しさん:05/02/27 15:46:05
慶応工学部です。何か質問ありますか?
72デフォルトの名無しさん:05/02/27 15:46:41
それはにせものですね。本物は
慶應です
73デフォルトの名無しさん:05/02/27 15:47:44
KO-SFC
ノックアウト-スーパーファミコン
74デフォルトの名無しさん:05/02/27 15:57:02
湘南工科大工学部です。何か仕事ありますか?
75デフォルトの名無しさん:05/02/27 16:00:00
私は京大です。
76デフォルトの名無しさん:05/02/27 16:02:16
京大ってあふぉなやつばっかだよな
77デフォルトの名無しさん:05/02/27 16:25:05
東大・京大の人に会ったことも喋ったこともない
自分も周りもみんな低学歴なので
78デフォルトの名無しさん:05/02/27 16:28:14
初心者です。
visual windows for BC++というのをゲットして
"hello world"コードをコンパイルしたんですが、hello worldが
ディスプレイにプリントされません。学校でやった時はDOSみたいな
画面にプリントされたんですが、なぜでしょうか?
79デフォルトの名無しさん:05/02/27 16:28:51
77は正直すぎ。
76はおまえよりもっと低学歴だぞ。まわりにそういうひとがいるわけもない
80デフォルトの名無しさん:05/02/27 16:33:44
>>79 は正直すぎ
本当は >>77 は東大
81デフォルトの名無しさん:05/02/27 16:43:39
>>78
なぜでしょうか?って言われてわかるわけないだろ
どういう状況なのか少しは説明しろ
82デフォルトの名無しさん:05/02/27 17:25:12
本当は>>78が東大
83デフォルトの名無しさん:05/02/27 17:28:33
本当の初心者は「初心者です」とは書かない
84デフォルトの名無しさん:05/02/27 17:29:13
とりあえず >>120 辺りが東大
85デフォルトの名無しさん:05/02/27 17:47:44
俺は現役京大生だけど>>76の言うとおり馬鹿ばっかりだよ
他大生と比べても酷いものがある
86デフォルトの名無しさん:05/02/27 18:40:41
>>85
世間的には「京大」って、
「馬鹿」というよりは「基地外」の
イメージのほうが強いけど、
そこらへん、実際のところどうよ?
87デフォルトの名無しさん:05/02/27 18:47:35
天才と基地外は紙一重
だからノーベル賞受賞者が出る
10人中5人が京大出身だったかな?
8818:05/02/27 19:50:50
>54
ないんですか。なるほど。
いや、他で見掛けたちょっとしたプログラムなんですけど、そこだけがコンパイル通らなくて。
他の人は普通に使えてたみたい?だったから、処理系の問題なのかなと思ったんです。なんか不思議。
89デフォルトの名無しさん:05/02/27 20:43:18
>>86
りとーきとかいるしな>キチガイ
90デフォルトの名無しさん:05/02/27 20:52:22
>>88
for文の間違いじゃないのか?と小一時間(ry
91デフォルトの名無しさん:05/02/27 21:09:22
あるルーチンがどれくらいCPUを消費するか測定するのに
clock()を使うのは適切ですか?
92デフォルトの名無しさん:05/02/27 21:14:25
void printtree( struct record *tree ){
if( tree == NULL){
return;
}
else{
printtree( tree->left );
printf("%16s:%2d\n",tree->name,tree->score);
printtree( tree->right );
}
}

void printtree( struct record *tree ){
if(tree){
printtree( tree->left );
printf("%16s:%2d\n",tree->name,tree->score);
printtree( tree->right );
}
return;
}
参考書にあった二分木のデータ構造のリスト内容を表示する例で、再起処理を用いた物です。
上が参考書に書いてあったコードで、下がそれを元に僕が書き換えてみたものです。
プロの意見としては、どちらがよりすぐれたコードでしょうか?評価をお願いします。
93デフォルトの名無しさん:05/02/27 21:16:59
このスレにプロなんていません
94デフォルトの名無しさん:05/02/27 21:19:04
>>92
まあ何というか、どっちでもいい。

それより、再帰が深くなりすぎないように
カウンタ引数つけるとか、
繰り返しに書き換えてみるとかする方が有意義。
挑戦してみれ。
95デフォルトの名無しさん:05/02/27 21:19:42
プロでなくても皆さんの方が絶対にスキルが上なので、誰でも答えてもらえれば幸いです。
96デフォルトの名無しさん:05/02/27 21:20:54
>>91
実装による、としか言えない点では、適当ではない。
実装によらない選択肢が他には無いという点では、まず適当。

どの程度深く調べるか次第ですな。
97デフォルトの名無しさん:05/02/27 21:22:00
>>94
カウンタ引数用意しなくていいのが、再帰の最大の利点だと考えていましたが、
やはり深くなりすぎるのはいけないんですね。
じゃあちょっとやってみます。ありがとう^^
98デフォルトの名無しさん:05/02/27 21:23:37
>>96
ありがとうございます。
標準Cから外れますが、time()やgettimeofday()や
getrusage()を使うよりは適当ですよねえ?
そんなこともないのかな・・・
99デフォルトの名無しさん:05/02/27 21:24:59
>>97
一般的なC言語の実装的には、線形スピードで再帰が深くなって
いくアルゴリズムは良くない。スタックは無限ではないから。
100デフォルトの名無しさん:05/02/27 21:26:41
>>97
一番いけないのは、>>94 のような奴の意見を
真に受けることだと思うのだが・・・
101デフォルトの名無しさん:05/02/27 21:31:10
>>100
実際どうなんですか?最近nasmかじったばかりなので>>94さん
の意見も一理あるように感じるんですが・・・・
102デフォルトの名無しさん:05/02/27 21:31:14
文字のアニメーションをさせようと思っています
次の文字の表示を待たせたいです
長い計算をさせる、
clock関数である時間になったら表示させる
等とやってみましたが
CPU使用量が100パーセントになってしまう
嫌なので何か良い方法は無いですか?
103デフォルトの名無しさん:05/02/27 21:32:55
>>91
プロファイルでググレ
104デフォルトの名無しさん:05/02/27 21:34:54
>>102
スレ違い
105デフォルトの名無しさん:05/02/27 21:39:09
>90
for(int i=0;i<=7;i++){〜}
gcc -std=c99 ...
で警告は出たものの通りました
10694:05/02/27 22:04:27
>>101
言葉が足りず、すまんかった。

とりあえず92の例はどっちでも機能は変わりません。
あとはポリシーの問題です。

>>94 で俺が言いたかったのは、再帰処理ってのは
スタックオーバーフローを起こす危険性があるから、
よく気をつけて使って下さいってことです。
例に挙げられてるツリーをトラバースする処理なんかは
特にね。
107デフォルトの名無しさん:05/02/27 22:06:30
0からはじめるくせに<=にするなよ ぼけ



...という警告はでませんでしたか?
108デフォルトの名無しさん:05/02/27 22:07:43
forだったらCでもC++でも通るのはあたりまえじゃないか
109デフォルトの名無しさん:05/02/27 22:09:03
> for(int i=0;i<=7;i++){〜}
> で警告は出たものの通りました

それで警告出るって...その部分そのものは違ってないわけだから、
どこか他にバグあるんだろ? 全部かけよ ぼけ
実際にでた警告もな!
110デフォルトの名無しさん:05/02/27 22:15:22
.cpp なら通るけど .c なら通らない(BCC5.5)
111デフォルトの名無しさん:05/02/27 22:15:44
まずforの後ろに空白あけろ。セミコロンの後ろにもだ!
で、
for (int i = 0; i < 8; i++) {
...
}
これが正しい。
112デフォルトの名無しさん:05/02/27 22:16:43
> .cpp なら通るけど .c なら通らない(BCC5.5)

そんなのはCコンパイラーとは呼べない。捨てろよぼけ
11394:05/02/27 22:18:28
>>111
ワロタw
114デフォルトの名無しさん:05/02/27 22:18:44
んなもん、文中で宣言できるようになったのはC++からなんだからしょーがないじゃん(´・ω・`)ショボーン
11594:05/02/27 22:19:28
>>113
ぐは、名前残ってるし。
今日はいろいろ恥かいたから、もう寝る!
116デフォルトの名無しさん:05/02/27 22:19:51
> んなもん、文中で宣言できるようになったのはC++から

デマです。Cもできますね。C++はその真似でしょう(先にやっただけで)
117デフォルトの名無しさん:05/02/27 22:20:25
>>114
C99でもできる訳だが
118デフォルトの名無しさん:05/02/27 22:20:36
113はなぜそこでわらう?
119デフォルトの名無しさん:05/02/27 22:21:38
そんなものはありません > C99でも
Cです。別に特別なCがあるわけじゃあない。C89はもうないです。
120デフォルトの名無しさん:05/02/27 22:22:19
すみません、どなたか以下のプログラムをCygwin以外の
POSIX環境で動かしてどのくらいの値になるか試して
いただけないでしょうか。
入力は20Mbytesくらい(私が使ったのはJREのrt.jar
です)、出力は/dev/nullにリダイレクトでお願いします。

Cygwinでは「10324 - 10 = 10314」と出たんですが
こんなに遅いのはCygwinレイヤのせいなのか気になって・・・

#include <time.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
 int c;
 clock_t c1, c2;
 c1 = clock();
 while ((c = fgetc(stdin)) != EOF) {
  fputc(c, stdout);
 }
 fflush(stdout);
 c2 = clock();
 fprintf(stderr, "%u - %u = %d\n", c2, c1, c2 - c1);
 return 0;
}
121デフォルトの名無しさん:05/02/27 22:23:06
そんな言い方するからVC厨がばかのひとつおぼえみたいに言うわけだ。
ちゃんと「ふつうのC」ならできる、といえばいい > 現在の規格に乗っ取った文法
122デフォルトの名無しさん:05/02/27 22:29:13
0 - 0 = 0 としか出んぞ
123デフォルトの名無しさん:05/02/27 22:31:36
>>92
どうでもいいけど、
if (...) {
return;
} else {
...;
...;
}
ってのは気持ち悪いな。
return使うなら
if (...) {
return;
}
...;
...;
でいいし、そうでないなら
if (...) {
} else {
...;
...;
}
でいいよ。
124デフォルトの名無しさん:05/02/27 22:31:48
正しく書き直してみた。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char **argv)  
{
  clock_t c1, c2;
  int c;

  c1 = clock();
  while ((c = fgetc(stdin)) != EOF)
    fputc(c, stdout);
  fflush(stdout);
  c2 = clock();
  fprintf(stderr, "%lu - %lu = %ld\n", c2, c1, c2 - c1);
  return EXIT_SUCCESS;
}
125デフォルトの名無しさん:05/02/27 22:33:41
> ってのは気持ち悪いな。

こいつはぼけ。ちゃんとその2つは使い分ける必要がある。
実際に出るコードは同じでも、たとえばパラメーターエラーなどの
異常系なら、if-returnだけ切り離すが、そうでない場合はむしろif-elseがよい。
returnは後ろにつければいいし
126デフォルトの名無しさん:05/02/27 22:34:32
>>122
ええっ、マジですか
超はいすぺっくマシンですか?
127デフォルトの名無しさん:05/02/27 22:35:59
ポインタ、構造体などは分かるレベルです。
分かるというだけで使えません・・・。
そこで演習問題をたくさんときながら最初っから復習したいのですが、
演習が豊富な本はありませんか?
128デフォルトの名無しさん:05/02/27 22:36:57
> 超はいすぺっくマシンですか

いえ、ふつうの5万8000円程度のUnixマシンです。
129デフォルトの名無しさん:05/02/27 22:37:25
>>128
貸して。
130デフォルトの名無しさん:05/02/27 22:38:48
> 演習が豊富な本はありませんか?

http://www.amazon.co.jp/exec/obidos/ASIN/477411328X/
この本の演習全部やればかなりできるようになってるとみていいね。
131デフォルトの名無しさん:05/02/27 22:40:19
>>129
それぐらい買え。
http://www.apple.com/jp/macmini/
これ。
132127:05/02/27 22:42:41
>>130
解答は豊富でしょうか?
133デフォルトの名無しさん:05/02/27 22:44:04
>>120
55MBくらいのファイルを開いて、12760000 - 0 = 12760000 だった。
134デフォルトの名無しさん:05/02/27 22:44:11
当然解答は出てませんよ!
135デフォルトの名無しさん:05/02/27 22:45:41
>>134
そりゃそうだろうなあ。
答え載ってたら意味ねーじゃん
136デフォルトの名無しさん:05/02/27 22:46:18
>>123の後半を無視してぼけとか言っちゃってる>>125がいるのはこのスレですか?
137127:05/02/27 22:47:02
>>134
やっぱり・・・。
なにか解答のあるものありませんか?
138デフォルトの名無しさん:05/02/27 22:47:32
>>133
ありがとうございます
やっぱり激しく環境依存の数値になるんですね
139デフォルトの名無しさん:05/02/27 22:47:50
宿題スレに丸投げすれば誰か解いてくれるよ。
140デフォルトの名無しさん:05/02/27 22:48:42
> 後半を無視してぼけとか言っちゃ

なんて言っているうちは、いくらぼけって言われてもしかたねーだろうなこのぼけは

要点は最初の3行以内に書けって学校でならわなかったか?
ふつう、そのあとは読み飛ばすんだよ。
141デフォルトの名無しさん:05/02/27 22:51:20
clock()の話とはあんまり関係ありませんが、fgetc(), fputc()を
getc(), putc()に変えてもほとんど数値は変わりませんでした。
まあマクロと関数の差なんてそんなもんですよね。
142デフォルトの名無しさん:05/02/27 22:55:37
128==131のやつよりは、うちのは1ランク遅いが(前者はG5、うちのはG4)
9.5Mのファイルで
128 - 1 = 127
と出た。
143デフォルトの名無しさん:05/02/27 23:11:31
136==140?
必死だな。
144デフォルトの名無しさん:05/02/28 00:12:17
#include <stdio.h>
#include <stddef.h>

int main(){
wchar_t wstr[] = L"漢字";
char str[] = "漢字";
printf("%s\n",wstr);
printf("%s\n",str);
return 0;}

2バイト文字を使いたいのですが、wstrの方はなにも表示されません。
strはちゃんと表示されます。どこがいけないのでしょうか?
お願いします。
もひとつ char でできるのに wchar_t は何のためにあるのですか?
145デフォルトの名無しさん:05/02/28 00:13:21
質問なのですが、
ttp://park2.wakwak.com/~yokohama/bb/adsl/adsl_bgnr1.htm
のサイトにあるStep4、MTUの求め方をCのプログラムでやるにはどうした方がよいでしょうか?
宿題スレと質問どちらにするか迷いましたが、こちらにカキコしました。
146デフォルトの名無しさん:05/02/28 00:19:13
>>145
Cの質問じゃねえじゃん
147デフォルトの名無しさん:05/02/28 00:20:37
>>144
unicode
148デフォルトの名無しさん:05/02/28 00:22:15
>>144
wchar_tは鬼畜米英が作成した国際化機能なので役に立ちません

149144:05/02/28 00:41:55
>>147,148
回答ありがとうございます。
wchar_t の使う例をあげたりはできますか?
150デフォルトの名無しさん:05/02/28 01:08:05
>>149
いくら頑張ってもlocaleの実装がきちんとしてない環境では
うまく動きませんよ。そしてそういう環境の方が多い。

#include <stdio.h>
#include <wchar.h>
#include <locale.h>

int i, len;
/* 環境のnative文字コードで保存すること */
char buf[] = "あいうえお";
char cbuf[100];
wchar_t wbuf[100];
/* エラーチェック省略 */
setlocale(LC_ALL, "");
mbstowcs(wbuf, buf, 100);
for (i = 0; wbuf[i]; i++) {
len = wctomb(cbuf, wbuf[i]);
printf("%.*s\n", len, cbuf);
}
151デフォルトの名無しさん:05/02/28 01:22:28
>>150
勉強になりました。
ありがとうございました。
152デフォルトの名無しさん:05/02/28 01:34:43
>109
警告: return type defaults to `int'
警告が出たのは for が記述してある行だけです。for の中身は別の行。
レスの盛り上がりを見てまぁ規格が色々と倒錯してるってのは分かりましたw
153デフォルトの名無しさん:05/02/28 05:23:14
#include <stdio.h> #include <time.h> #include <conio.h>
#define LCD_CMD 160 #define LCD_CMD1 40 #define LCD_CMD2 6 #define CLR_HOME 1
#define input
#define end
void main(void)
{FILE *lcd; /*stream for lcd data*/
unsigned char LCD_POS1=0xC3;
unsigned char LCD_POS2=0xCB;
unsigned int value=0;
setbuf(lcd,NULL);
fprintf(lcd,"%c%c",LCD_CMD,LCD_CMD1);
fprintf(lcd,"%c%c",LCD_CMD,40);
fprintf(lcd,"%c%c",LCD_CMD,0xC);
fprintf(lcd,"%c%c",LCD_CMD,LCD_CMD2);
fprintf(lcd,"%c%c",LCD_CMD,CLR_HOME);
fprintf(lcd,"%c%c",LCD_CMD,LCD_POS1);
fprintf(lcd,"%c%c",LCD_CMD,LCD_POS2);
if input == 1 value++;
if input == 2 value++;
   value++;
if input == x return;
end if
fprint(lcd,"%c%c",LCD_CMD,LCD_pos);
while (!kbhit()){}
getch();
return; }
これをコンパイルしたら以下の様なエラーが出ました。なぜでしょうか?
Error E2376 ..\projc2.c 34: If statement missing ( in function main
154デフォルトの名無しさん:05/02/28 05:39:23
超初心者なのでこういう書き方は始めて見た
どんなコンパイラ使ってるんだろう・・・
155デフォルトの名無しさん:05/02/28 06:32:41
エラーメッセージも読めないのか。あほ。
main()の戻り値はintじゃ。ぼけ。
156デフォルトの名無しさん:05/02/28 06:47:24
masm32って何やねん?
コンパイラー?
157デフォルトの名無しさん:05/02/28 07:40:33
>>156: 05/02/28 06:47:24
masm32はアセンブラ
158デフォルトの名無しさん:05/02/28 07:59:15
>>153
エラーメッセージにかかれているとおり、ifに括弧がない。
159デフォルトの名無しさん:05/02/28 08:07:31
> 警告: return type defaults to `int'
> 警告が出たのは for が記述してある行だけです。

ぼけ、その行で呼んでいる関数のプロトタイプが抜けてるんだろ!
それぐらいつけとけ! ぼけ
160デフォルトの名無しさん:05/02/28 08:09:08
154と155と156は同じレヴェルにだめすぎ。
161デフォルトの名無しさん:05/02/28 08:13:50
どんなにまともな回答でも「ぼけ」の一言で、こいつにだけはお礼の一言でさえ言いたくなくなる
162デフォルトの名無しさん:05/02/28 08:19:02
ふふふ ぼけ!
163デフォルトの名無しさん:05/02/28 08:20:08
155はかなり英語だめなぼけだとみた。
すごいよなあ「mainがint」だって、どう関係あるんだ? ;-)
164デフォルトの名無しさん:05/02/28 08:25:09
反応を楽しんでいる「ぼけ」荒らしにレス不要。
165デフォルトの名無しさん:05/02/28 08:48:09
この板はAA禁止ですか?
このスレはage推奨ですか?
166デフォルトの名無しさん:05/02/28 08:51:52
>>158
ifにこの括弧{ }を入れるんすか?
167デフォルトの名無しさん:05/02/28 08:55:14
あほばっか。
168166:05/02/28 08:58:51
わかったからいいや。三きゅ
169167:05/02/28 09:01:52
ここはレベルの低いたこの集まりですか?
170デフォルトの名無しさん:05/02/28 09:12:09
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
..\3.c:
Error E2141 ..\3.c 11: Declaration syntax error
Error E2040 ..\3.c 16: Declaration terminated incorrectly
*** 2 errors in Compile ***
なんでこれがエラーなんでしょうか???

unsigned char array[8];
unsigned char ch ;
unsigned char number;
unsigned short int count, first =0;

{
printf("\ Type in a number value\n");
scanf("%f" &array[8]);
171デフォルトの名無しさん:05/02/28 09:12:46
>159
文句いいながらも朝からレスthxですぼけ。
でもその行は for(int i = 9; i >= 0; --i) しかないんですよぼけ。よくわかんないですぼけ。
172デフォルトの名無しさん:05/02/28 09:13:16
>>167
つまんねーこと言ってんじゃねー、ぼけ。
173デフォルトの名無しさん:05/02/28 10:49:32
ぼけてた。ごめん。
174デフォルトの名無しさん:05/02/28 11:15:34
unsigned short int count, first =0;
              ↑このカンマは何?

scanf("%f" &array[8]);
         ↑???
175デフォルトの名無しさん:05/02/28 11:43:22
単純なコンパイルエラーも自力で直せない奴は、
プログラミングを諦めて欲しい。
176デフォルトの名無しさん:05/02/28 11:46:29
ここは素人を罵倒しかしない奴らの集まりか?
ネット以外の世界では大したことのない奴らっぽいな。
インターネット恐るべし。
177デフォルトの名無しさん:05/02/28 11:49:55
>unsigned short int count, first =0;
>              ↑このカンマは何?

あと、こんな事を書く奴も人に教えようとするのは止めて欲しい。
178デフォルトの名無しさん:05/02/28 11:50:14
>>176
お前が懇切丁寧に答えてやれば終わる事だ
179デフォルトの名無しさん:05/02/28 12:06:20
C言語なら俺に聞け! Part 103
↑↑↑
スレタイトル・
誰も教えません。分かりません。
ネット上でいきがってる人間の集まりです。
180デフォルトの名無しさん:05/02/28 12:12:55
ここで質問するやつは負け組み。
181デフォルトの名無しさん:05/02/28 12:17:24

ネット上で負けとか勝ちとか言ってる真の負け組み
182デフォルトの名無しさん:05/02/28 13:16:51
早稲田大学医学部の俺がなんでも教えてやろう
183デフォルトの名無しさん:05/02/28 13:39:08
>>182
俺は薬学部だが、大学は同じだ。
184デフォルトの名無しさん:05/02/28 14:04:58
広島県立宮島工業高等学校卒の俺が何でも教わってやろう。
185デフォルトの名無しさん:05/02/28 14:28:54
ねえ、おぢさんたち、そんなにひまなの?
186デフォルトの名無しさん:05/02/28 14:39:57
はっきり言って、ヒマです。
187デフォルトの名無しさん:05/02/28 14:49:38
おぢさんじゃないよ
188デフォルトの名無しさん:05/02/28 15:07:34
ごめんね、おばちゃんたち
189デフォルトの名無しさん:05/02/28 15:44:11
結局 >>120 は東大なの
190デフォルトの名無しさん:05/02/28 16:24:37
「ポインタ」についてなんだが
/*--- 文字列sをdにコピーする(参考書より) ---*/
char *str_copy(char *d, const char *s)
{
  char *t = d;

  while (*d++ = *s++) ・・・(1)
    ;
  return (t);
}
(1)の "*d++ = *s++" で文字列をコピーする方法は
勧められるものじゃないのでは、と直観でおもたのだが
この使い方に問題はあるか、もしダメだったら普通どう表すか
の二点を教えてくれ。レベル低くてスマソ
191デフォルトの名無しさん:05/02/28 16:28:30
>>190
>while (*d++ = *s++)
*s を *d にコピーし
s 及び d をインクリメントし
*d が 0 になるまで繰り返す。
ごく普通ですね。
192デフォルトの名無しさん:05/02/28 16:31:50
>>191 すばやい回答どうも
マジですかwこれからもっと修行を積みますわ
193デフォルトの名無しさん:05/02/28 16:32:05
お舞いら、早く気づいてくれ…早稲田に医学部も薬学部も無いことに…
194デフォルトの名無しさん:05/02/28 16:38:27
無粋な奴だ
195デフォルトの名無しさん:05/02/28 17:05:59
じゃあ漏れは、ぬるぽ学部という事で。
196デフォルトの名無しさん:05/02/28 17:08:05
>>195はガッ学科専攻
197デフォルトの名無しさん:05/02/28 17:23:08
Cってコツとかあるんですか?
Cがすごく苦手で困っています。コツとかあれば教えてください。
お願いします。

198デフォルトの名無しさん:05/02/28 17:24:23
コツ:慣れ
199デフォルトの名無しさん:05/02/28 17:25:06
コツというかコシを使ってやるといいよ
200デフォルトの名無しさん:05/02/28 17:27:58
人をいかにうまく利用するか
わからんところは人に聞いて丸写しするか、あるいはやらせるかすればいい
201デフォルトの名無しさん:05/02/28 17:28:17
コシ?
202デフォルトの名無しさん:05/02/28 17:30:42
コシの無いうどんはマズい。気をつけろ!
203デフォルトの名無しさん:05/02/28 17:33:58
わかりました。もう慣れですね!!では、頑張ってみます。
ありがとうございました。
204デフォルトの名無しさん:05/02/28 18:52:39
>>197
Cに限らずいいコードをたくさん読むことが上達の早道。
逆に糞コードばっかり見てると段々とほんとのぼけになる。
205デフォルトの名無しさん:05/02/28 19:24:10
>>197
Cに限らずいいコードをたくさん読むことが上達の早道。
逆に糞コードばっかり見てると段々とほんとのぼけになる。
206デフォルトの名無しさん:05/02/28 19:25:29
初心者のうちは糞コードか良いコードかの区別が出来ないのが問題なんだよなぁ〜
207デフォルトの名無しさん:05/02/28 19:28:33
大人になってからでも区別出来てない人もいるけどね
208デフォルトの名無しさん:05/02/28 19:36:14
>>206
漏れは習い始めMSのコードを「あの有名なMSが書いてるんだから間違いない」
と思ってスタイルやその他もろもろを盗みまくった。
マジで失敗だったよ。
マクロ使いまくり、汚いハンガリー記法、不要なdynamic_cast、
new(nothrowでない) の戻り値の NULL チェック等、典型的な
糞コードだった。
209デフォルトの名無しさん:05/02/28 19:37:37
教えてください。通常インクリメント演算子で前置でも後置でも
同じなら前置(++i)にしたほうが効率がいいのですよね?
たしかそんなこと本に書いてあったと思ったのですが。
後置だと一時変数が必要になるとかで・・・。
ただ、解説書の中には堂々と後置形をつかってるのもあるんですよね。
210デフォルトの名無しさん:05/02/28 19:41:32
>前置でも後置でも同じなら
同じじゃないんだろ
211209:05/02/28 19:43:56
あ、失礼、同じ処理になるなら・・・ということです。
212デフォルトの名無しさん:05/02/28 19:44:13
Cだとあんま気にしなくていいよ。組み込み系だと
後置を前置に最適化できるから。
C++だとオーバーロードやらiteratorの関係で
前置を使うから、統一目的で前置でも後置問題
ないときは前置を使う。
213デフォルトの名無しさん:05/02/28 19:44:58
s/組み込み系/組み込み型
214209:05/02/28 19:47:29
そうなんですか、どうも・・・じゃまぁ前置を使いましょうかね
215デフォルトの名無しさん:05/02/28 19:51:36
forなんかはたいてい後置
意味もなく前置使うのはアホ
216209:05/02/28 19:52:48
というからには後置にも意味があるんですか?
forだとなぜ後置がいいのでしょうか?
217デフォルトの名無しさん:05/02/28 19:55:01
標準関数のソースとかそういう風だし
218デフォルトの名無しさん:05/02/28 19:57:52
というか、意味もわからず使い分けてる方がアホだと思うのだが
219デフォルトの名無しさん:05/02/28 19:59:05
値を参照しないのであれば、どっちでもいい。
220デフォルトの名無しさん:05/02/28 20:03:17

; a++
mov eax, DWORD PTR _a$[ebp]
add eax, 1
mov DWORD PTR _a$[ebp], eax

; ++b
mov ecx, DWORD PTR _b$[ebp]
add ecx, 1
mov DWORD PTR _b$[ebp], ecx


最適化無しで、コンパイル結果一緒
221209:05/02/28 20:06:33
ふむふむ、というと後置で一時変数を使うと本で読んだ気がするのは
なんだろう・・C++?いずれにせよ、昔の話なんですかね。
222デフォルトの名無しさん:05/02/28 20:08:59
自分のコンパイラで調べてみたら?
223デフォルトの名無しさん:05/02/28 20:14:54
>>220
アドレス加算→メモリアクセスを一命令でできる環境もあるよ。
224デフォルトの名無しさん:05/02/28 20:22:35
>>223
そういう命令があったとして、
結果の参照が無い場合には
まともなコンパイラなら、
どっちの場合もその命令を使うでしょう。
225デフォルトの名無しさん:05/02/28 20:24:20
参照しないのにインクリメントするの?
226デフォルトの名無しさん:05/02/28 20:25:13
結果の参照じゃなくて、値の参照ですね;
227デフォルトの名無しさん:05/02/28 20:28:09
(++i)の値を、参照してなければ、
前演算でも後演算でも、差は無いって事。
あたりまえ。
228デフォルトの名無しさん:05/02/28 20:32:08
C++だとコンパイラは後置を前置に最適化出来ないから、
普通は前置で統一するが、Cだと好きな方使えばいいんじゃ
ないか?
229デフォルトの名無しさん:05/02/28 20:34:08
そんなマニアックな速度を気にする前に、
もっと分かりやすいソースコードを書いてくれ、
おまえら・・・
230デフォルトの名無しさん:05/02/28 20:35:40
マニアックな速度とというより、
普通に避けられる無駄を避けるか避けないかの話。
231デフォルトの名無しさん:05/02/28 20:36:37
>>229
Hacker's Delightでも読んどけ。
232デフォルトの名無しさん:05/02/28 21:41:13
>>229
性能面に限らず機能面の問題に対しても同じようなことしか言わん(言えない)アフォに
わかりやすいコードじゃ勝負に勝ち目ねえんだよ
上っ面なめただけでいい気になってるハエに用はない、とっとと失せろ
233デフォルトの名無しさん:05/02/28 21:48:26
標準関数のソースを見てみたけど普通に後置つかってます。
聞きかじった知識だけ多くて経験が浅いのも考え物だね。
234デフォルトの名無しさん:05/02/28 22:09:12
特定の環境や分野の経験だけでものを言うのも考え物だね
235デフォルトの名無しさん:05/02/28 22:13:55
標準関数のソースがどうとか、理論のかけらもないな。
聞きかじった知識の方がまだマシだ。
自分が後置派だから前置の考えを全否定したいだけだろ
236デフォルトの名無しさん:05/02/28 22:21:42
結果の確認もロクにしていない単なる思いこみが「理論」とかほざく机上の96500クーロンいらねー
237デフォルトの名無しさん:05/02/28 22:24:51
>>236
組込型なら最適化できるからどっちでも変わりないって書かれてるだろ
アホかお前
238デフォルトの名無しさん:05/02/28 22:24:57
そんなこと気にしていたら高級言語の意味無いな。ワロス
あっCは低級言語だったな。スマンカッタ
239デフォルトの名無しさん:05/02/28 22:26:38
>>237
どこに?
最適化つーた瞬間からツール依存だぜ
アフォかをそのまま返す
240デフォルトの名無しさん:05/02/28 22:27:51
>>238
>>230

>>236
お前は標準関数のソースだけが全てなのか?
241デフォルトの名無しさん:05/02/28 22:29:26
別に前置に統一しとけばいいじゃん。C++使う人とか統一しとけば
間違いないでしょ?後置使う意味は前置使う意味よりうすいと思うぞ。
単に○○のソースがそうしてるからとか、慣習からきてるだけだから。
242デフォルトの名無しさん:05/02/28 22:30:58
>>240
他のソース見てやってもいいけど
あいにく暇じゃないんで
探しといてくれる?
243デフォルトの名無しさん:05/02/28 22:31:27
最近の若造は汗かかねえもんなあ・・・
244デフォルトの名無しさん:05/02/28 22:33:17
最適化とか嬉しそうにほざきながら変数はメモリとか思いこんでたり同時並列を知らなかったり・・・痛杉
245デフォルトの名無しさん:05/02/28 22:33:19
>>239
後置を前置に最適化できないコンパイラしか使ったこと無いのか?
アホはお前だろ
246デフォルトの名無しさん:05/02/28 22:34:38
とりあえず一人必死にageてる香具師がいることは分かった
247デフォルトの名無しさん:05/02/28 22:34:53
プ
248デフォルトの名無しさん:05/02/28 22:36:29
結局どっちがいいんですか?
249デフォルトの名無しさん:05/02/28 22:38:01
250デフォルトの名無しさん:05/02/28 22:39:04
特に意味がなければ後置が一般的
251デフォルトの名無しさん:05/02/28 22:40:26
C言語のスレなので結局どっちでもいい。
252デフォルトの名無しさん:05/02/28 22:43:37
移植性を隠れ蓑にしてるアフォはいつでも区別がつく
利害がない限り見逃してやるのは構わんがテリトリーが当たったら容赦しない
253デフォルトの名無しさん:05/02/28 22:51:05
必死すぎ
254デフォルトの名無しさん:05/02/28 22:52:31
明日のメシがかかってんだよ
必死がおかしけりゃ笑え
255デフォルトの名無しさん:05/02/28 22:58:28
後置が一般的て、後置の意味はまったくねぇじゃん。
前置に最適化するとかしないとかの問題や、C++使うときとか、
すべてをひっくるめて前置で統一することになんらデメリットはないでしょ。
256デフォルトの名無しさん:05/02/28 22:58:52
結論
主にCだけ使う香具師→好きな方使え。ただしどっちも使える場面では統一しろ。
C++とかDとか使う香具師→前置使え。
257デフォルトの名無しさん:05/02/28 22:58:58
(∩゚д゚)アーアーきこえなーい
258デフォルトの名無しさん:05/02/28 23:02:35
>後置の意味はまったくねぇじゃん。

おまえがプログラム書くことと同じくらいなw
259デフォルトの名無しさん:05/02/28 23:05:19
>>256
MFCのソース見てみたんですが、ほとんど後置でした。
260デフォルトの名無しさん:05/02/28 23:06:49
>>258
またお前かよ
お前はお前で好きな方つかってりゃいいだけだろがよ
無意味な煽りしか出来ないんだったらすっこんでろ
261デフォルトの名無しさん:05/02/28 23:13:51
>>260
意味通じてねえやつが無意味とか言うな・・・いや、それは仕方ないな
262デフォルトの名無しさん:05/02/28 23:14:15
++i; なんとなく収まりが悪い。
i++; やっぱりこの方がかっこいい。
263デフォルトの名無しさん:05/02/28 23:16:22
>>262
氏ね
264デフォルトの名無しさん:05/02/28 23:18:08
>>261
意味って何?
265デフォルトの名無しさん:05/02/28 23:21:52
教えてあげないよ じゃん
266デフォルトの名無しさん:05/02/28 23:22:47
C++であって++Cではないところに本質的な意味が隠されていると思う。
267デフォルトの名無しさん:05/02/28 23:25:05
>>259
intとかの組み込み方に対しては前置後置は結果を使わなければ全く同じ。
クラスのオペレーターオーバーロード時に初めて効率の違いが出てくる。
268デフォルトの名無しさん:05/02/28 23:25:24
68000系のCPUでは、
c = *p++
c = *--p

の方が、

c = *++p
c = *p--

よりも効率が良い。
269デフォルトの名無しさん:05/02/28 23:27:15
2へぇ〜
270デフォルトの名無しさん:05/02/28 23:28:10
>>265
ハァ?
271デフォルトの名無しさん:05/02/28 23:32:44
HPでBBS立てたい時、C言語使う?
272デフォルトの名無しさん:05/02/28 23:34:14
Perl使う
273デフォルトの名無しさん:05/02/28 23:35:34
じゃ!このスレと関係無いか・・・;
サンクスoソースとったけど作り方がわからなかった
274デフォルトの名無しさん:05/02/28 23:36:35
BBS立てたいときは既に完成したものを拾ってきます
275デフォルトの名無しさん:05/02/28 23:37:23
拾って、メモ帳で開いたら化けて出た;
276デフォルトの名無しさん:05/02/28 23:42:29
関係ねーだろ
WebProgかWeb製作行け
それからMKEditorでも使え(Windows)
http://www.mk-square.com/home/software/mkeditor/home.html
277デフォルトの名無しさん:05/02/28 23:45:09
わざわざ・・・サンクスw
逝ってくる〜
278デフォルトの名無しさん:05/02/28 23:52:28
うちの大学の教授は++iで記述してた
279デフォルトの名無しさん:05/02/28 23:56:50
俺、矢フーでHP作っててんo
HTMLとjavaはヒットするけど、こういうの探すのが大変だった
280デフォルトの名無しさん:05/03/01 01:17:09
>>271
PHPに決まっているじゃん!
281デフォルトの名無しさん:05/03/01 01:38:29
a = b = c = d = e = 0 ;

この書き方ってまずいですか?
282デフォルトの名無しさん:05/03/01 01:40:26
別に
283デフォルトの名無しさん:05/03/01 01:40:49
>>190
おまえ、378ページを読め!
284デフォルトの名無しさん:05/03/01 01:41:26
> C++だとコンパイラは後置を前置に最適化出来ないから

これウソ
285デフォルトの名無しさん:05/03/01 02:22:58
>>284
inline Hoge& Hoge::operator++()
{
    ++n_;
    return *this;
}

inline const Hoge Hoge::operator++(int)
{
    std::cout << "ぬるぽ" << std::endl;
}

こんなんも最適化できるってこと?
286デフォルトの名無しさん:05/03/01 02:33:41
>>284
せめて禿本なり、Effective C++ なり、Exceptional C++
くらいは読んでおきましょうね^^;
287デフォルトの名無しさん:05/03/01 02:38:23
アホが懲りずにまた来たようだな
288デフォルトの名無しさん:05/03/01 02:51:13
        ゴガギーン
             ドッカン
         m    ドッカン
  =====) ))         ☆
      ∧_∧ | |         /          / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     (   )| |_____    ∧_∧   <  おらっ!出てこい>>284
     「 ⌒ ̄ |   |    ||   (´Д` )    \___________
     |   /  ̄   |    |/    「    \
     |   | |    |    ||    ||   /\\
     |    | |    |    |  へ//|  |  | |
     |    | |    ロ|ロ   |/,へ \|  |  | |
     | ∧ | |    |    |/  \  / ( )
     | | | |〈    |    |     | |
     / / / / |  /  |    〈|     | |
    / /  / / |    |    ||      | |
   / / / / =-----=--------     | |
289デフォルトの名無しさん:05/03/01 05:49:29
int main( int argc, char* argv[] )

argv[0] が "C:\Documents and Settings\hoge.exe"
argv[1] が "C:\Documents and Settings\foo.txt"

そして、
sprintf( buf, "%s %s", argv[0], argv[1] ) ; で結合。

それを
system( buf ) ; の形で、引数付きで、実行させようとしているのですが、

『'C:\Documents' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。』

と出ます。考えられる、エラーの原因として、何があるでしょうか?
290デフォルトの名無しさん:05/03/01 06:02:45
>>289 よくわからんがくっつけるだけなら
#include <stdio.h>
#include <string.h>

int main(int argc, char *argv[])
{
char buf[200] = { "0" };

if (argc == 3){
strcpy(buf, argv[1]);
strcat(buf, argv[2]);
puts(buf);
}

return 0;
}
291290:05/03/01 06:03:39
ああ、勘違いした
290は無かったことに
292デフォルトの名無しさん:05/03/01 06:46:12
>>289 
空白文字のせいで正しいパスがみつからなんでは。

sprintf( buf, "\"%s\" \"%s\"", argv[0], argv[1] ) ; 
にしてみたらいかがでしょう。
293デフォルトの名無しさん:05/03/01 07:42:04
タイピングの速さに自信がある諸君
ここの247点という快記録を越えることができるかな
ttp://freegame.sytes.net/~take/cgi-bin/typecreate/index.html
294デフォルトの名無しさん:05/03/01 08:02:17
>>293
C言語で?
295デフォルトの名無しさん:05/03/01 08:53:03
290だったぞ
296デフォルトの名無しさん:05/03/01 11:57:29
stdinて入力の最後は必ず'\0'になってると保証されてましたっけ?
というか、出力してみるとどうやらそのようですが。
stdinもファイルと考えるとEOFでもよさそうですが、やはりそうなると
int型で受けなければいけないからですかね?
297デフォルトの名無しさん:05/03/01 12:10:52
>>296
stdinて入力の最後は必ず'\0'になってると保証されていないと思います。
298デフォルトの名無しさん:05/03/01 12:49:19
ねえ、おぢさんたち、そんなにひまなの?
299デフォルトの名無しさん:05/03/01 12:50:59
ああ。昼休みだからな。
300デフォルトの名無しさん:05/03/01 12:51:05
>>298
藻前ほどじゃないよ
301デフォルトの名無しさん:05/03/01 12:52:22
まぢですか?
となるとシステムは標準入力の終端をどうやって検出しているのでしょうか?
それと、そもそもEOFとはファイルの終端に書かれている値そのもの?
それともシステムがファイル終端を検出して返すための値?
302デフォルトの名無しさん:05/03/01 12:55:36
>>301
入力を終了したら終端。
303デフォルトの名無しさん:05/03/01 12:56:41
>>301
EOFのキャラクタコードの後にデータが存在していてもおかしくは無い
\0の後にも同じ
304デフォルトの名無しさん:05/03/01 12:57:38
>>296
stdin が '\0' を送出しているわけではありません。
stdin から入力することのできる関数が '\0' を
付加しているのです。
305デフォルトの名無しさん:05/03/01 13:03:36
そうですか。じゃあ標準入力に限らず、普通のテキストファイルとかでも
ファイルの終端には決められた特定の値が書き込まれているというわけでは
ないのですか?OSはどうやって最後を知るのでしょうか・・・。
306デフォルトの名無しさん:05/03/01 13:05:55
(-=・=- ∀ -=・=-)ニヤニヤ
307デフォルトの名無しさん:05/03/01 13:08:07
たしかに昔は終端にEOFのキャラクタコードを付け、それによって管理
しているOSもあった
308デフォルトの名無しさん:05/03/01 13:16:39
#include <dos.h>
#include <stdlib.h>

int main()
unsigned char array[8];
unsigned char ch ;
unsigned char number;
unsigned short int count, first =0;

{
printf("\ Type in a number value\n");
scanf("%f" &array[8]);

first = 0;
for(count =1; next < strlen(array); ++count
if (array[count] >= '0' && array[count] <= '9')
{
strcpy(number, &array[first], count - first);
number[count - first] = '\0';

printf("%f\n",number);
first = count

}

printf("%d\n", strcpy(number, &array[first]));

return(0);

}
これどう思う?
309デフォルトの名無しさん:05/03/01 13:18:45
>>308
氏ねばいいのに
310デフォルトの名無しさん:05/03/01 14:04:51
>>305
大抵のファイルシステムでは、ファイルサイズくらい情報として持ってるでしょ。
311デフォルトの名無しさん:05/03/01 14:05:27
リンクリストとかをCで書くことが結構あるんですが、
C++にあるSTLやboostみたいに
C言語にもそういう広く使われてるライブラリって
ないんでしょうか?
312デフォルトの名無しさん:05/03/01 14:09:07
C++が好きならC++使えばいい
313デフォルトの名無しさん:05/03/01 14:13:39
wind XP&visual windows c++で以下のコードを書きました。2つのエラーが出ました。
#include <dos.h>
#include <stdlib.h>
int main()
unsigned char array[8];←ここにはSyntax errorがでました。
unsigned char ch ;
unsigned char number;
unsigned short int count, first =0;

{                  ;←この行にDeclaration
                  ; terminated incorrectly
printf("\ Type in a number value\n"); がでました。
scanf("%f" &array[8]);

first = 0;
for(count =1; next < strlen(array); ++count
if (array[count] >= '0' && array[count] <= '9')
{
strcpy(number, &array[first], count - first);
number[count - first] = '\0';
printf("%f\n",number);
first = count
}
printf("%d\n", strcpy(number, &array[first]));
return(0);
}
Syntaxエラーのほうは何がいけないのか、まったく理解できません。
2つ目の方は括弧をずらしてみたり消してみたり色々駆使したのですが
エラーが消えません。どなたか助けを・・・・。お願いします。
314デフォルトの名無しさん:05/03/01 14:15:22
315デフォルトの名無しさん:05/03/01 14:19:24
>>313
変数宣言の場所が間違ってる。

int main()
{
変数の宣言

printf("Type in a number value\n");
...

ですよ。ちゃんとした入門でも読んだほうがいいと思うよ。


316デフォルトの名無しさん:05/03/01 14:21:45
void mainとint mainって何が違うの?
317デフォルトの名無しさん:05/03/01 14:27:56
>>316
戻り値の有無
318デフォルトの名無しさん:05/03/01 14:29:43
>>316
>1のFAQを読む事をすすめる
319デフォルトの名無しさん:05/03/01 14:34:04
mainの戻り値はint型と決まっているのだよ
320デフォルトの名無しさん:05/03/01 14:41:29
( ´,_ゝ`)プッ
321デフォルトの名無しさん:05/03/01 14:44:27
C言語使えそうだなと零細IT企業の人間に思わせる資格を教えてください。
名称と、級があれば何級かも。
322デフォルトの名無しさん:05/03/01 14:47:49
>>321
この業界、資格なんてケツ拭く紙にすらなりません
今までにどんな物を作りましたか?といわれたら答えられるくらいの物を作ってなさい
323デフォルトの名無しさん:05/03/01 14:48:35
>>320
無知ですか?(プッ
324デフォルトの名無しさん:05/03/01 14:50:03
IT企業なら資格じゃごまかせないな
325デフォルトの名無しさん:05/03/01 14:58:55
>>308
>>313

しかし、ここまで間違いだらけのソース書ける奴もすごいな。

デバッグの問題に使えそうだよw
326デフォルトの名無しさん:05/03/01 15:09:38
>>325 名前:デフォルトの名無しさん :05/03/01 14:58:55

直してみろよ。ハッタリ小僧。
327デフォルトの名無しさん:05/03/01 15:13:40
C, C++(gcc)で任意の文字コードをEUCやUTF-8に変換したいのですが,
良いライブラリがあったらお教えください。

ちょっと探してみたんですがシンプルで使いやすそうなのが見つかりませんでした。
328デフォルトの名無しさん:05/03/01 15:15:51
>>327
スレ違い
329デフォルトの名無しさん:05/03/01 15:18:58
>328

どこにいけばよいですか?
330デフォルトの名無しさん:05/03/01 15:20:00
>>329
最寄りの交番へどうぞw
331デフォルトの名無しさん:05/03/01 15:20:09
332デフォルトの名無しさん:05/03/01 15:20:50
いいかた間違えた。
基本を知ってそうな感じに見える資格は何ですか?

で、どう?
333デフォルトの名無しさん:05/03/01 15:20:51
仮想VRAMて何ですか?
334デフォルトの名無しさん:05/03/01 15:21:28
335デフォルトの名無しさん:05/03/01 15:21:59
>>333

Virtual Video Random Access Memory (w
336デフォルトの名無しさん:05/03/01 15:22:09
>>330
はぁ?
もうちょっとましな事いえないのかな。
つまんない。

>>331
へぇー。
337デフォルトの名無しさん:05/03/01 15:23:55
ommaera minnna hima dana〜〜〜
338デフォルトの名無しさん:05/03/01 15:24:50
omaemona〜
339デフォルトの名無しさん:05/03/01 15:25:40
>>336 omaigotokinyakoredejuubun (w


340デフォルトの名無しさん:05/03/01 15:29:50
fuck you, omaera〜〜〜
341デフォルトの名無しさん:05/03/01 15:41:25
>>340 go to hell!!!!!!!!!!!!!!!!!!!!!!
damn you! sun of a bitch!
342デフォルトの名無しさん:05/03/01 15:42:54
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<io.h>
#include<FCNTL.H>
void main( int argc, char* argv[] )
{
FILE *fp, *w_fp ;
char buf[255] ,name[255] ,a[300] ;
int fh ;
long size ;
char drive[_MAX_DRIVE], dir[_MAX_DIR] ;
char*b = " \"C:\\naho.txt\"" ;

_splitpath( argv[0], drive, dir, NULL, NULL ) ;
_makepath( name, drive, dir, "dada", "txt" ) ;

strcpy( a, "\"C:\\hoge.txt\"" ) ;

w_fp=fopen( name, "w+b" ) ;
fprintf( w_fp, "\"C:\\hoge.txt\"" ) ;
fprintf( w_fp, " \"C:\\foo.txt\"" ) ;/* dada というファイルにデータをまとめる。*/
fclose( w_fp ) ;

fp=fopen( "dada.txt" ,"r" ) ;
fh=open( "dada.txt" ,_O_RDONLY ) ;
size=_filelength( fh ) ;

fread( buf, size, 1, fp ) ;
fclose( fp ), _close( fh ) ;
system( buf ) ;
}
343デフォルトの名無しさん:05/03/01 15:43:32
what the fuck is your problem, you motherfuckin' nigger.
344デフォルトの名無しさん:05/03/01 15:43:48
>>332
kihonjoho
345デフォルトの名無しさん:05/03/01 15:44:09
you damn ass motherfucker.
346デフォルトの名無しさん:05/03/01 15:44:53
292さんのやり方で、できるのに、これでは望むように動作しません。
何故なのでしょう。
もうお手上げです、誰か助けて下さい。
347デフォルトの名無しさん:05/03/01 15:46:06
>>292ってやれよ、たこ・。
348デフォルトの名無しさん:05/03/01 15:47:37
>>342 訂正
char*b = " \"C:\\naho.txt\"" ;
char*b = " \"C:\\foo.txt\"" ;
名前の付け方は適当で、読みにくいかもしれないですがお許しください、
349デフォルトの名無しさん:05/03/01 16:01:00
scanfとかのフォーマットの仕様ってどこかに詳しくのってませんか?
350デフォルトの名無しさん:05/03/01 16:09:25
351デフォルトの名無しさん:05/03/01 16:11:07
352デフォルトの名無しさん:05/03/01 16:14:02
>>350
ありがとう
353デフォルトの名無しさん:05/03/01 16:18:11
KISS MY FUCKIN' ASS!!!!!!!!!!!!!!!!!!
354デフォルトの名無しさん:05/03/01 16:19:04
Are You Deaf? shithead!
355デフォルトの名無しさん:05/03/01 16:20:31
You! Motherfucker!
Fuck Off!!
356初心者 ◆tm1pVTQmqw :05/03/01 16:27:32
ゲームを作っててわからなくなっちゃいました。
ググってみたり本見てもさっぱりわかりません。
最近はC言語なのかすらわかりませんorz

先輩、質問です!
「at sta pa egne ben」ってなんのことなんでしょう?
わかるかたいらっしゃいませんか・・・?
357デフォルトの名無しさん:05/03/01 16:32:23
初心者って文字を見るだけで教える気が萎える
いや、今回は何のことかわからないから関係ないが
358デフォルトの名無しさん:05/03/01 16:32:33
>>356
「スパゲッティ食べたい」
359デフォルトの名無しさん:05/03/01 16:39:01
I wanna suck your oyster!bitch!HAHAHA.
360デフォルトの名無しさん:05/03/01 16:40:36
>>357 I don't wanna be teached by ya!!!!!!!!!!!!
fuck off!!!!!!!!!!sucker!!!!!!!!!!!!!!!
361デフォルトの名無しさん:05/03/01 16:41:35
>>358 SUCK MY FUCK'N DICK!

362327:05/03/01 16:47:55
他をあたります。
ありがとうございますた。
363デフォルトの名無しさん:05/03/01 16:57:56
C++にはbool型というのがありますが、C言語の場合たいてい標準で
TRUEやFALSEというのがint型で定義されてるかと思いますが、
例えばa==0という式が真だったときの式の値と、TRUEの値は必ず一致する
ものなのでしょうか?
364デフォルトの名無しさん:05/03/01 17:13:50
コールツリー作成ソフトで最強なのはなんですか
対象ソースはC++

教えてエロイ人
365デフォルトの名無しさん:05/03/01 17:16:22
>>363
>C言語の場合たいてい標準でTRUEやFALSEというのがint型で定義されてるかと思いますが

されてない。
366デフォルトの名無しさん:05/03/01 17:16:30
>>363
そんな事は決まっていない。
367363:05/03/01 17:19:21
にゃははは
368デフォルトの名無しさん:05/03/01 17:25:23
#include <stdbool.h>
369デフォルトの名無しさん:05/03/01 17:53:39
370デフォルトの名無しさん:05/03/01 18:00:18
バブルソートについてだけど
/*--- 配列dataの先頭n個の要素を昇順にソート ---*/
void sort(int data[], int n)
{
  int k = n - 1;
  while (k >= 0) { ・・・☆
    int i, j;
    for (i = 1, j = -1; i <= k; i++)
      if (data[i - 1] > data[i]) {
        j = i - 1;
        swap(&data[i], &data[j]); /* ポインタが指す整数の値を交換 */
    }
      k = j;
  }
}
☆の (k >= 0)は「>=」ではなく「>」で十分だと思うんだが、
「>=」の必要性を教えてくだされ
371デフォルトの名無しさん:05/03/01 18:14:10
>>370 cunt!!!!!!!!!!

372デフォルトの名無しさん:05/03/01 18:21:41
>>370 dick!!!!!!!!!
373デフォルトの名無しさん:05/03/01 18:22:34
>>370 You make my penis enlarge!!!!!!!!!!!!!!!!
374デフォルトの名無しさん:05/03/01 21:19:55
質問がヘタクソで罵倒された初心者が荒らしてますねw
375デフォルトの名無しさん:05/03/01 21:25:47
#include <kusosure.h>
376デフォルトの名無しさん:05/03/01 21:31:06
>>374
きっとHSPスレの連中ですぜ。なにせ、やつらはム板のゴミだめですからねぇ。
377デフォルトの名無しさん:05/03/01 22:04:18
>>370
そう思うなら勝手に「>」にすればいい。
378デフォルトの名無しさん:05/03/01 22:08:11
>>342はスルーなのでしょうか・・・
379370:05/03/01 22:11:24
>>377 回答THX
そういわれると身も蓋もないが・・・(´・ω・`)
できれば、>= にしている意味をキボンヌ
380デフォルトの名無しさん:05/03/01 22:14:23
>>379
何故、「>」に変更して試してみない?
色々なケースで試してみてどう変わるか、
自分の目で確かめろ。
381デフォルトの名無しさん:05/03/01 22:18:20
>>380 Hey sucker!!!!!!!
suck my dick soooooooooooooooooooon!!!!!!!!!!!
382デフォルトの名無しさん:05/03/01 22:19:26
> C++にはbool型というのがありますが、C言語の場合たいてい標準で

ぼけ。Cでもふつう bool / true / false だ。常識!
383デフォルトの名無しさん:05/03/01 22:21:30
> a==0という式が真だったときの式の値と、TRUEの値は必ず一致する ものなのでしょうか?

それと一致するのはCではtrue。
TRUEなんてのはどこでも定義されていない。

Cでは、
0だったら偽
0以外だったら真
偽だったら0
真だったら1
つまり、true == 1 は常に成り立つ。
384デフォルトの名無しさん:05/03/01 22:23:52
なんでやねん
385デフォルトの名無しさん:05/03/01 22:24:41
偉そうにしてるヤシ程関数一つまともに作れないものだwwwwww
ここのスレなど零細ITのキモヲタ系が集まってるんだろうなw
386デフォルトの名無しさん:05/03/01 22:25:14
>>385
自己紹介乙。
387デフォルトの名無しさん:05/03/01 22:25:57
>>342はスルーなのですか?
388デフォルトの名無しさん:05/03/01 22:26:56
c言語でオーバーフローの検出ってどうやればいいですか?
389デフォルトの名無しさん:05/03/01 22:27:56
>>387
何がしたいのか、何が問題なのか、
書かれていないわけだが…。
390デフォルトの名無しさん:05/03/01 22:31:32
>>388
何のオーバーフローだ?
391388:05/03/01 22:33:36
int型とかdouble型です。
392デフォルトの名無しさん:05/03/01 22:34:31
>>388
検出できない
393370:05/03/01 22:35:03
>>380 了解!追求してみる
394デフォルトの名無しさん:05/03/01 22:35:17
>>342のやつです。
#include<stdio.h>
#include<stdlib.h>

#defineDEF_EXE"C:\\text_check.exe"
#defineGOKUU_TXT" \"C:\\Documents and Settings\\012345\\desktop\\test.txt\""

int main( int argc, char* argv[] )
{
char name[255] ;

sprintf( name, "%s%s" ,DEF_EXE, GOKUU_TXT ) ;
printf("%s",name) ;
system( name ) ;
return 0 ;
}

これはうごくのに、DEF_EXE を "\""C:\\text_check.exe"\""
にすると、動かないのは何故なのでしょうか?
395デフォルトの名無しさん:05/03/01 22:37:57
>>383
C言語ではないという意味だろうが、「どこでも定義されていない」ってのが気になった
windef.h
396デフォルトの名無しさん:05/03/01 22:38:44
>>394
これは何?
   ↓            ↓
"\" " C:\\text_check.exe " \""
397デフォルトの名無しさん:05/03/01 22:41:16
書き間違えました。
#define DEF_EXE "\"C:\\text_check.exe\""
としたら、動かないのは、なぜなのでしょうか。
398デフォルトの名無しさん:05/03/01 22:42:25
>>391
int x,y;
x=100
y=100;
if(x+y>INT_MAX){
puts("検出");
}
else{
}
399デフォルトの名無しさん:05/03/01 22:42:55
上がってたので質問

intの配列って作ったとき
int array[10]
全て0で初期化されるんですか
400デフォルトの名無しさん:05/03/01 22:44:05
>>399
いいえ、そうとは限りません。
グローバル変数として宣言した場合は0に初期化されることは保証されていますが、
それ以外は不定です。
401デフォルトの名無しさん:05/03/01 22:44:36
#include<stdio.h>
#include<stdlib.h>

#define DEF_EXE "\"C:\\text_check.exe\""
//#define DEF_EXE "C:\\text_check.exe"
#define GOKUU_TXT " \"C:\\Documents and Settings\\012345\\desktop\\test.txt\""

int main( int argc, char* argv[] ){
  char name[255] ;

  sprintf( name, "%s%s" ,DEF_EXE, GOKUU_TXT ) ;
  printf("%s",name) ;
  system( name ) ;
  return 0 ;
}

プログラムは動きますよ。
(意図どおりかどうかは別にして)
402デフォルトの名無しさん:05/03/01 22:44:58
いや、ローカルでもstaticをつければ0に初期化される。
403デフォルトの名無しさん:05/03/01 22:47:16
自分のは
ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。
と、出て動きません。どうすれば直りますか?
404デフォルトの名無しさん:05/03/01 22:53:50
>>400
そういえばグローバル変数でした
ローカル変数は無理なのね

ありがとうございました
405デフォルトの名無しさん:05/03/01 22:56:28
>>403
まず、コマンドラインの使い方を覚えろ。
406デフォルトの名無しさん:05/03/01 22:56:43
僕はからかわれたのですか?
407デフォルトの名無しさん:05/03/01 22:59:04
>>404
ちなみにint a[10] = {1, 2, 3};とすると残りのメンバは0で初期化されることが保証されている。
408デフォルトの名無しさん:05/03/01 23:01:44
コマンドラインで、
"C:\text_check.exe" "C:\Documents and Settings\012345\desktop\test.txt"
このようにすると、ちゃんと、test.txt を引数として、実行してくれるのですが、
409デフォルトの名無しさん:05/03/01 23:24:58
>>407
それってローカルの話?
そうだっけ?
C++じゃなくて?
まじで?C?
昔と仕様変わった?
410デフォルトの名無しさん:05/03/01 23:33:01
>>409
昔ってどんくらい?
411デフォルトの名無しさん:05/03/01 23:46:18
>>409
いわゆるC89からそうなっているが。もちろんローカル変数も。
412デフォルトの名無しさん:05/03/01 23:47:30
FUCK!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
413デフォルトの名無しさん:05/03/02 00:03:38
WOW!!!!!!!!COOOOOOOOOOOOOOOOOOOOOOL!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
414デフォルトの名無しさん:05/03/02 00:07:17
>>409
昔からだ
415デフォルトの名無しさん:05/03/02 00:13:45
かなり古いCの本には、ゴミが入るとあるな。
416デフォルトの名無しさん:05/03/02 00:15:51
ポインタでちょっとわからなくなったのでちょっと質問です

float *array[4]; と
float (*array)[4];

はどう違うんですか
417370:05/03/02 00:15:59
>>370
/*--- 配列dataの先頭n個の要素を昇順にソート ---*/
void sort(int data[], int n)
{
  int k = n - 1;
  while (k >= 0) { ・・・☆
    int i, j;
    for (i = 1, j = -1; i <= k; i++)
      if (data[i - 1] > data[i]) {
        j = i - 1;
        swap(&data[i], &data[j]); /* 交換 */
    }
  k = j;
  }
}
☆を「>」にせず「>=」にしている理由を尋ねたものだが・・・わからねぇorz
俺的は、終了時k = -1になるようにするため、という結論に至った
申し訳ないが、先輩諸氏の意見をおねがいいたします
418デフォルトの名無しさん:05/03/02 00:29:43
>>417
そもそもそれは誰が書いたの?
419370:05/03/02 00:37:00
>>418
えー出典は「明解C言語入門編」柴田望洋著
warnigを「ワーニング」と読んで(ryの望洋先生でつね
420デフォルトの名無しさん:05/03/02 00:37:42
k=j;

for (i = 1, j = -1; i <= k; i++)
  if (data[i - 1] > data[i]) {

最後にdata[0]とdata[1]を比較してる
421デフォルトの名無しさん:05/03/02 00:40:20
間違ったーー
k>=0か
意味ないねk>0で十分
422デフォルトの名無しさん:05/03/02 01:01:03
for (i=0; i<n-2; i++){
  for (j=i+1; j<n-1; j++){
     if (data[i] > data[j]){
       swap(&data[i], &data[j]);
     }
  }
}

バブルソートってこうゆうのかと思ってた。泡だからわざわざ下からやるもんなんだっけ?
423デフォルトの名無しさん:05/03/02 01:21:33
floatがdoubleの2倍早かったなんてしらなかったよーーーーー!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
424デフォルトの名無しさん:05/03/02 01:59:05
すいません。
ヘッダファイルに構造体でキャラクターのパラメータを持たせて
戦闘プログラムを作りたいのですがどうしたらよいのでしょう?
425デフォルトの名無しさん:05/03/02 02:06:55
>>422
そのバカ正直なソートプログラムは、
一般にバカソートと言われています。
426デフォルトの名無しさん:05/03/02 02:22:08
>>424
まず、ヘッダファイルに構造体でキャラクターのパラメータを持たせる。
427デフォルトの名無しさん:05/03/02 02:23:32
そのかわり、かすうぶのせいどが、52びっとから、23びっとに
428デフォルトの名無しさん:05/03/02 02:29:07
>>422
たまに、これをバブルソートだとして説明してるとこがあるけど、
これは遅い癖に安定ソートじゃないんだよな・・・
429デフォルトの名無しさん:05/03/02 02:32:50
>>426
その後にソースフォルダ main.cにヘッダファイルを呼び出すところまでは
できるのですが計算のやりかたがわからないのです
430デフォルトの名無しさん:05/03/02 03:01:47
431デフォルトの名無しさん:05/03/02 04:31:33
>>430
ソース良く見ろマヌケ
432デフォルトの名無しさん:05/03/02 05:08:31
>>395
そんなものはCではない。
VC厨め!
433デフォルトの名無しさん:05/03/02 05:10:50
実際にはdoubleのほうが速いことが多い
434デフォルトの名無しさん:05/03/02 06:34:29
結局取り出すときはdoubleになるからな
435デフォルトの名無しさん:05/03/02 06:53:12
>>388
「ハッカーのたのしみ」
という本を読んでみな。
436デフォルトの名無しさん:05/03/02 07:40:49
リアルタイムにネットワークの転送量を表示したいのですが、
式はどうなるのでしょうか?
dwInOctets
dwInUcastPkts
dwInNUcastPkts
は表示できるのですが、Octetsは通信してない時も値が入ってますし・・
どうかよろしくお願いします。
437デフォルトの名無しさん:05/03/02 08:23:57
行方不明になった担当者の後を引き継いで
ソースのメンテナンスをしている俺だが、
↓このコードに悩まされている。

#ifdef __ASSEMBLY__

これは一体どういう意味なんだ。
お前ら、教えてください。
438デフォルトの名無しさん:05/03/02 09:02:54
「もしプリプロセッサシンボル__ASSEMBLY__が定義されていれば」
439デフォルトの名無しさん:05/03/02 09:12:07
いや、そういうことじゃなくて、
440デフォルトの名無しさん:05/03/02 09:14:25
> C++だとコンパイラは後置を前置に最適化出来ないから

これウソ
441デフォルトの名無しさん:05/03/02 09:35:33
>>416
>float *array[4]; と
>float (*array)[4];

上のarrayはfloat *型を要素とする配列
下のarrayはfloat型を要素とする配列へのポインタ

配列へのポインタ型があるのだよ
*演算子より[]演算子の方が強いから、カッコがないと
まずarrayは配列ってことになって何の配列かってことで
float *型の配列になっちゃうけど、カッコをつけると
まずarrayはポインタってことになってそれは要素数4の配列への
ポインタとなる。型はfloat (*)[4]だ。
442デフォルトの名無しさん:05/03/02 10:05:07
441はウソ

後者は下のarrayはfloat型を要素とする配列[4]へのポインターだろう。
そうじゃないと++したときにfloat4つ分増えない
443デフォルトの名無しさん:05/03/02 10:07:03
float型の4つの要素をもつ配列へのポインターだな。
444デフォルトの名無しさん:05/03/02 10:16:53
sizeof(array)としたとき、それぞれどんな値が得られますか?
445デフォルトの名無しさん:05/03/02 10:29:51
>>442
いやウソってことはないだろ。
あえて最初の説明では簡単にするために要素数には言及してないけど
要素数の概念のない配列へのポインタなんてもともとないんだから。
その後で詳しく説明してんじゃん。float型を要素とする配列への
ポインタであることは間違いない。配列の要素数は?って言ったら
4てだけだろ。
446デフォルトの名無しさん:05/03/02 11:39:16
言葉で説明するからわかりにくいのだ。
(*array)[4] == *( *array + 4 ) なのら。
447デフォルトの名無しさん:05/03/02 11:53:29
すみません教えてください。
1992年頃にC言語を使ってプログラムを作りました。
使っていたパソコンはPC-9801かFM-Vのどちらかだったと思います
このプログラムを現在のDOS-Vマシンでコンパイルして実行型ファイルに
して使用できるでしょうか?
又コンパイルするソフトは現在売られているC言語のソフトで変換できるでしょうか?
448デフォルトの名無しさん:05/03/02 11:55:26
>>447
プログラムのソースが残っているのなら、その内容を見て判断するほか無い
449Cとアセンブリの混合:05/03/02 11:56:58
charデータをストリーミングファイルから読み16ビットunsigned numberのodd parity
を計算して、8ビット(7ビット+parity bit)をアウトプット書き出す作業をして
ボーランドプロジェクトとしてコンパイルするという
cコード書けという問題です。

"Odd parity" forces the number of "1s" to be odd including the parity bit.
Some examples are:
x1001110 -> 11001110
x0011001 -> 00011001
どなたかヒントください。
450デフォルトの名無しさん:05/03/02 11:57:45
>>449
宿題は宿題スレへ
451デフォルトの名無しさん:05/03/02 12:24:43
>>448
ありがとうございます。ソースファイルは残っています。C言語もコマンド
の変更とかあって、今では対応していない部分もあるんでしょうかね?
452デフォルトの名無しさん:05/03/02 12:27:11
>>451
Cを始めから勉強し直せ。
Cにコマンドはない。
453デフォルトの名無しさん:05/03/02 12:32:44
>>447
結構古いソフトですね。
非ANSIのコードで書かれていたら、書き換えが必要になるかも知れませんね。
おそらくコマンドラインで起動するソフトでしょうから、ファイル操作などのプログラム
でしたら実行できるかも知れませんが、システムを直接扱っているようなものでした
ら判断できません。

http://www.borland.co.jp/cppbuilder/freecompiler/

上記Borlandで無償のコンパイラをダウンロードして試してみたら?
454デフォルトの名無しさん:05/03/02 12:34:23
>>451
これ以上ここで聞いても何もならない
ソフト会社に問い合わせて見積もりを出してもらえ
455デフォルトの名無しさん:05/03/02 13:00:39
>>447
> PC-9801かFM-V
両者ともに癖がある機種だな、処理系依存の部分が無ければうまくいくかもしれない
あと、多分ファイル名は8.3形式しか認識できないような気がする。
456デフォルトの名無しさん:05/03/02 13:42:59
>>447 baka?


457デフォルトの名無しさん:05/03/02 13:57:44
>>432
WIN32APIではBOOL/TRUE/FALSEだよ。
VCしか知らんの?

>>453
の、bccでも普通に使うし
458デフォルトの名無しさん:05/03/02 13:58:39
関数のオーバーロードで、戻り値が違うものを定義できるんでしたっけ?
459デフォルトの名無しさん:05/03/02 14:03:19
C++ような気がする
460デフォルトの名無しさん:05/03/02 14:08:22
やはりそうですか・・・どうもCとC++両方使うと
ごっちゃになりますね。
461デフォルトの名無しさん:05/03/02 14:16:43
>>460
ならねぇよ
462デフォルトの名無しさん:05/03/02 14:17:12
ならねぇな
463デフォルトの名無しさん:05/03/02 14:33:45
なるわけないし
464デフォルトの名無しさん:05/03/02 14:34:42
ときどきなるよ。
struct宣言のtypedefとかね。
465デフォルトの名無しさん:05/03/02 14:37:19
>>460=>>464か?
レベル低すぎだろ
466464:05/03/02 14:55:13
ちがうよ
467デフォルトの名無しさん:05/03/02 15:17:23
>>457
そーゆー問題じゃない。場亀。
468デフォルトの名無しさん:05/03/02 16:42:31
c言語で画像処理について勉強したいんだけど
なんかいい参考書があれば紹介してください
ちなみに私が使ってるソフトはvc++.net standardです
469デフォルトの名無しさん:05/03/02 16:44:04
>>468
画像処理のスレへ行けよ
470デフォルトの名無しさん:05/03/02 16:46:13
了解
471デフォルトの名無しさん:05/03/02 17:20:38
>>468 .netで画像処理かよっ!

472デフォルトの名無しさん:05/03/02 19:41:04
おれのコンパイラじゃ430のCのバブルより422の馬鹿ソートのが早いのだけど
馬鹿ソートが安定しないってどうゆうこと?
473デフォルトの名無しさん:05/03/02 19:56:13
>>472
Googleで ソート 安定
474デフォルトの名無しさん:05/03/02 20:29:00
Ruby
!!!!!!!!!!111111
475370:05/03/02 20:37:28
>>421 回答THX
そうでつか。望洋先生はなんで「>=」したんだろw
わざわざありがと
476デフォルトの名無しさん:05/03/02 21:43:59
422のは、洗濯ソートというやつでは、ないかなー?

nが配列のindexとすると、
最後の要素がぬけるような気がするけど、
たぶん気のせいだ。
477デフォルトの名無しさん:05/03/02 21:46:42
floatとdoubleの計算機イプシロンっていくつでしょう?
2^-nの形で教えていただけるとたすかります。
478デフォルトの名無しさん:05/03/02 21:51:42
選択ソートは最小(最大)のをみつけて、先頭とひっくりかえすやつ!
479デフォルトの名無しさん:05/03/02 21:55:02
実験せずに実測値を聞きにきたり
規格票を参照せずに保証値を聞きにきたり
・・・アフォか!! 筋悪い奴は帰れ
480デフォルトの名無しさん:05/03/02 21:56:58
>>479
ごめんなさい、実験はしてみましたよう
floatが2^-25
doubleが2^-53
でした
481デフォルトの名無しさん:05/03/02 21:59:32
>>478
基準であるところの自分よりも、小さいのをみつけると、
とりあえずひっくりかえしておく、
ということを、そのパスで、もれなくやると、
結果的に、そうなる、ような。
482デフォルトの名無しさん:05/03/02 22:00:47
L"aaa" みたいな感じで、文字列を const にするのありませんか?
483デフォルトの名無しさん:05/03/02 22:05:11
>>482
const char * const s = "aaa";
484デフォルトの名無しさん:05/03/02 22:08:17
>>480
float.hに書いてないか?
485477:05/03/02 22:11:04
>>484
そんなヘッダファイル知らなかったよ
ありがとう
486デフォルトの名無しさん:05/03/02 22:16:16
>>482
意味不明
487デフォルトの名無しさん:05/03/02 22:27:18
実行ファイルのreadonlyページに配置されるのを保証したいって
ことではないかな
488デフォルトの名無しさん:05/03/02 22:40:02
質問の意味がわかんないわりに聞いてる内容は深いね
489デフォルトの名無しさん:05/03/03 00:37:14
>>468
ほかに逝け
C++.NETはC++.NETであってC言語でもC++でもあらず。
490デフォルトの名無しさん:05/03/03 00:53:17
良く知らんが、ソフトがVC++.netでも、C言語も使えると思うんだが
少なくとも、VisualStudio.netでは出来る
というか、既にほかに行ってるけどね→画像処理スレ
(GUIプログラミングの事を画像処理と勘違いしてる可能性あるが)
491デフォルトの名無しさん:05/03/03 02:29:38
> 実験せずに実測値を聞きにきたり
> 規格票を参照せずに保証値を聞きにきたり

おまえはアホか? 参照したら聞きに来るわけねーだろ。
参照しないからききにくるにきまってるじゃねーか ぼけ
492デフォルトの名無しさん:05/03/03 02:30:14
> いやウソってことはないだろ。

いいえウソです。
493デフォルトの名無しさん:05/03/03 02:30:56
> (*array)[4] == *( *array + 4 ) なのら。

ちがいます。
494これ解ける?:05/03/03 02:32:12
[1] 授業単元:C言語
[2] 問題文:スキュターレ暗号文を以下に示すように自動解読するプログラム
Level1B.Cを作成しなさい。

[3] 環境
 [3.1] OS: unix
 [3.2] コンパイラ
 [3.3] 言語:C
[4] 期限:今日の朝まで・・

例:
原文
あすミケーネでアテネぐんをむかえうつ

暗号文
あでをすアむミテかケネえーぐうネんつ

暗号文
さいれがいてるんしんよばはをうろよとにう

実行結果
何文字ごとに読みますか?3
さがるんはろにいいんよをようれてしばうと
何文字ごとに読みますか?4
さいしはよいてんがとれるようにがんばろう
495デフォルトの名無しさん:05/03/03 02:44:55
さいし?妻子?祭祀?
496デフォルトの名無しさん:05/03/03 03:27:53
#include <stdio.h>

int main(void)
{
char array[] = "さいれがいてるんしんよばはをうろよとにう";
int skew, len, i, j, k;

printf("%s\n", array);
printf("何文字ごとに読みますか?");
scanf("%d", &skew);
len = sizeof(array) / 2;
for(j = 0; j < skew; j++)
for(i = j; i < len; i += skew)
k = i % len * 2, printf("%c%c", array[k], array[k + 1]);
printf("\n");
return 0;
}
497デフォルトの名無しさん:05/03/03 03:31:19
あー、iはlen超えないからkいらんわ。
printf("%c%c", array[i * 2], array[i * 2 + 1]);
でいいかな。
498デフォルトの名無しさん:05/03/03 04:00:28
>>496
#include <stdio.h>

int main(void)
{
char array[] = "さいれがいてるんしんよばはをうろよとにう";
int skew, len, i, j, k;

printf("%s\n", array);
printf("何文字ごとに読みますか?");
scanf("%d", &skew);
len = sizeof(array) / 2;
for(j = 0; j < skew; j++) {
for(i = 0, k=j; i < len; i ++, k=(k+skew) % len)
printf("%c%c", array[2*k], array[2*k+1]);
printf("\n");
}
return 0;
}

の方がいいと思う。
499これ解ける?:05/03/03 04:01:07
496氏ありがとうございます!感激です
C言語の宿題やりますスレで聞いたけど人いなくて・・
出来たら残りの2問も知恵をお貸りしたいけど・・迷惑ですよね。
でも、本当にこんな夜遅くからありがとうございました!神

>>495
再試なんですよー。この問題が出るから必死><
500デフォルトの名無しさん:05/03/03 04:07:30
>>499
人が居ないとか決め付けてマルチしてんじゃねぇよ。
宿題スレを見て2と3をやってたんだが、
そんなことされたら公開する気が失せるってもんだ。
501デフォルトの名無しさん:05/03/03 04:20:24
>>500
すみませんでした
ここのルールとか知らないで、あきらめかけてた時に
2ちゃんでこの板見つけて、ココロオドってコピペしちゃいました、、
自分勝手で必死になってしまい夜中に気分を害しちゃってごめんなさい。
502デフォルトの名無しさん:05/03/03 04:26:25
一応2問目も出来たし
503デフォルトの名無しさん:05/03/03 04:31:24
もう一人いるみたいだし、眠いし、あとは任せた。
504デフォルトの名無しさん:05/03/03 04:35:29
うわーヤヴァイ!
本当にイイ人、いや温かい人っているんですね。
涙でそう・・ありがとうございます

>>503
眠いのに、アホな俺のために本当にすみません><
おやすみなさい。テスト頑張ってきます!!!
505デフォルトの名無しさん:05/03/03 04:37:51
たぶん2より3の方が簡単だと思う
506デフォルトの名無しさん:05/03/03 05:22:16
>>505
2より3の方が簡単なんですかー?2をみながら3を解いてみます
1と2の復習もしないといけないけど、間に合いそうで嬉しいなー
507500:05/03/03 05:31:02
>>501
次からは気をつけてね。
まだ起きてるみたいだし、2と3が出来たから宿題スレに貼っておくよ。
少しでも参考になれば幸いかな。

再試ガン(・∀・)ガレ!!
508デフォルトの名無しさん:05/03/03 05:44:41
>>500
はい、気をつけます。何か何から何までお世話になって・・
ありがとうございます!何か皆さんのおかげで元気出ましたー
再試ガンバリます!
509デフォルトの名無しさん:05/03/03 05:48:03
あ、>>500氏の間違えです。俺,落ち着け!!
510デフォルトの名無しさん:05/03/03 07:56:39
>>493
多分コンパイルしてみたんだろうが
int (* array)[4];
int ar[4];
array = (int(*)[4])ar;
ar[4] = 4;
printf("%d",*(*array+4));
こうやってみ。
511デフォルトの名無しさん:05/03/03 09:23:59
>>510
こうだろう
int (* array)[4];
int ar[4];
array = (int(*)[4])ar;
ar[3] = 3;
printf("%d",*(*array+3));
printf("%d",(*array)[3]);
それと
>>441
のいってることは正しい。
int (* array)[4];
はint型の4個の要素を持つポインターを定義している。
従って、4番目の要素にアクセスするには、
*(*array+3)とするのら。
512デフォルトの名無しさん:05/03/03 10:48:55
array = (int(*)[4])ar;
じゃなくて
array = &ar;
でええんちゃうの?
普通はこうでっしゃろ?
513デフォルトの名無しさん:05/03/03 10:58:43
あと4番目の要素にarray使ってアクセスしたいなら
(*array)[3]の方が自然やぞ。
あくまで配列や。
514デフォルトの名無しさん:05/03/03 13:10:35
質問なのですが、
#include <stdio.h>
int main(){
printf("2Pは必ず負けてください。\n");
int a=0,b=0,i;
do {
printf("1:グー 2:チョキ 3:パー\n");
printf("1P:");
scanf("%d",&a);
printf("2P:");
scanf("%d",&b);
i = ((b+3)-a)%3;
}while(i==0);

printf("%dP の勝ちです!!\n",i);
return 0;
}
のプログラムで1Pが選択してから2Pが2秒で選択しないと負けとしたいのですが、どうすればよいでしょうか?
C++でいうタイマーコントロールなどを使えばいいと思うのですが、Cのタイマー関係がググっても出ないので、どなたか教えていただけますか?
515デフォルトの名無しさん:05/03/03 13:21:55
2秒たったら自動的に終了でしょ?
それってAPI使うほか無いのでは?
516デフォルトの名無しさん:05/03/03 13:25:54
>>514
時刻を見て、2秒経ったら負けにすればいい。
517デフォルトの名無しさん:05/03/03 13:27:11
回答ありがとうございます。
2秒経って自動的に終了ではなくて、2秒たったら2Pの負けです。と表示させたいのです。
518デフォルトの名無しさん:05/03/03 13:34:12
そうか。
519デフォルトの名無しさん:05/03/03 13:35:50
あ、終了というかさ、入力を受け付けるじゃん?
で、ユーザがなにも触らずに2秒たったら、自動的に入力受付終了して
メッセージを出したいってことじゃないの?
時刻調べるにも、何か入力した後にはじめてチェックするのでは
だめなんでしょ?
520デフォルトの名無しさん:05/03/03 13:49:57
>>519
それは、環境依存のAPIかC言語以外(WIN32とか)じゃ無いとダメでしょ。
521デフォルトの名無しさん:05/03/03 14:03:26
それをオイラは>>515で言ったw
522デフォルトの名無しさん:05/03/03 14:26:55
@2pのscanfの前に時間取得

A2pのscanf後にも時間取得

ソレを比較して2秒以上経過してたら”後出しでおまいは負けました。”って表示してやれば

ユーザーに警告を与える意味においては充分なのでは?
523デフォルトの名無しさん:05/03/03 14:57:59
考えてくださってありがとうございます。
後だしじゃんけんを作りたいのですが、時間比較の仕方、2秒以上経過した後のPrintfの仕方がわからないのです。
524デフォルトの名無しさん:05/03/03 14:59:03
>>520
んなことない。
525デフォルトの名無しさん:05/03/03 15:06:50
だな、
マルチスレッドでやればできる
526デフォルトの名無しさん:05/03/03 15:19:48
>>525
マルチスレッドを使用してどのようにすればよいですか?
527デフォルトの名無しさん:05/03/03 15:37:39
入力するときにタイマースレッドをスポーンする、
タイマースレッドが満期になったらメインスレッドに
イベントを知らせる。
528デフォルトの名無しさん:05/03/03 15:39:02
>>523 difftimeつかやいいじゃんよ。
マルチスレッドなんか使うような高級なプログラムじゃないでしょw
529デフォルトの名無しさん:05/03/03 15:41:53
どうやってマルチスレッドにするんだ
530デフォルトの名無しさん:05/03/03 15:45:58
531デフォルトの名無しさん:05/03/03 15:49:01
@2pのscanfの前に時間取得

A2pのscanf後にも時間取得

ソレをdifftimeで時間比較して2秒以上経過してたら”後出しでおまいは負けました。”って表示してやれば

ユーザーに警告を与える意味においては充分なのでは?
532デフォルトの名無しさん:05/03/03 15:51:16
>>528
喧嘩売るつもりはありません。
意外と、タスク、プロセス、スレッド、使うと簡単になるよ。
533デフォルトの名無しさん:05/03/03 15:54:29
select使っとけ。
534514:05/03/03 15:57:48
#include <stdio.h>
#include<time.h>
int main(){
time_t time1, time2;
int a=0,b=0,i;
printf("2Pは必ず負けてください。\n");

do {
printf("1:グー 2:チョキ 3:パー\n");
printf("1P:");
scanf("%d",&a);
time(&time1);
printf("2P:");
scanf("%d",&b);
time(&time2);
i = ((b+3)-a)%3;
}while(i==0);

printf("%dP の勝ちです!!\n",i);
return 0;
}
ここまでは自分で考えたのですが、2秒以上経過した場合の表示が分かりません。
比較はIFでやればよろしいでしょうか?
535デフォルトの名無しさん:05/03/03 16:06:23
536デフォルトの名無しさん:05/03/03 16:09:36
ローカル変数のUSHORT型変数3つをDWORD型変数3つに変えたら、
Run-Time Check Failure #2 - Stack around the variable 'data' was corrupted.
というメッセージが表示されなくなった。

メモリ配置の事だと思うんですが、アセンブラでプログラム組んだことが無いから
よく分からない...。スタックがどうなってるんでしょう。
pop,pushとか、ほんの障りしか知りません。
537514:05/03/03 16:27:28
>>535
ありがとうございました。
少し変えましたが、おかげで今日中になんとか間に合いそうです。
本当にありがとうございました。
538デフォルトの名無しさん:05/03/03 16:35:04
なんだ。解決したのかw
539デフォルトの名無しさん:05/03/03 18:11:51
>>536
USHORTは2バイト変数でDWORDは4バイト変数だし、
そこらへんの関係じゃないの?
まあ、まず元に戻して、1個づつ修正&確認をしていったら?
540デフォルトの名無しさん:05/03/03 20:36:44
標準Cではできない事の質問は使用している開発環境のスレへGo!

または死ね。
541デフォルトの名無しさん:05/03/03 20:48:51
>>540 いやおまいが死ねゲラ

542デフォルトの名無しさん:05/03/03 20:51:55
標準Cでできる/できないは聞いていいのか?
543542:05/03/03 20:53:12
関数に多次元配列を引数として渡すにはどうすればいいですか?
544デフォルトの名無しさん:05/03/03 20:57:14
先頭アドレスを渡せばいい
545デフォルトの名無しさん:05/03/03 20:59:16
>>543
おい偽物、関数名(型 仮引数名[][列幅]) で受け取れるが、とりあえず騙り野郎は氏ね
546542(偽):05/03/03 21:01:08
ありがとうございました
547デフォルトの名無しさん:05/03/03 21:02:08
ちょっと上に出てたdifftime(time1, time2)って何のためにあるんですか?
time2 - time1 じゃダメなんですか?
548デフォルトの名無しさん:05/03/03 21:36:19
RUBY!!!!!!!!!!!!>>>>>>>>>>>>>>>>>>>>>>>>C
549デフォルトの名無しさん:05/03/03 21:39:58
糞具合だな
550デフォルトの名無しさん:05/03/03 22:01:06
>>547
time_tが秒単位で時刻を格納しているとは限らない。ミリ秒・マイクロ秒単位のこともある。
551デフォルトの名無しさん:05/03/03 22:12:40
>>547 ヴァカ杉w

552デフォルトの名無しさん:05/03/03 22:40:27
do-whileループの代わりに、 for(;;) の中に if 入れて break かけてたのですが、
会社の仲間に、そういう素人っぽいことはヤメてくれ、と注意されてしまいました。
特に反論する理由も無かったので全部やりなおしましたが、これってそんなにマズいのでしょうか?

無限forループを使うことで可読性が著しく低下するとは思えません。
もしかしてdo-whileループのほうが効率のいいマシンコードが生成されるのですか?
553デフォルトの名無しさん:05/03/03 22:41:53
>>552
do-whileを知らない素人が書いたものに見えるから。
554デフォルトの名無しさん:05/03/03 22:46:51
もっと別な事に気を使ったほうが...。
555デフォルトの名無しさん:05/03/03 22:52:52
>>552
コードにはパターンがあるからな。
do-whileで書くべきパターンにはdo-whileを使え。
556デフォルトの名無しさん:05/03/03 22:59:22
do-while使うべきなのは確かだが、わざわざ全部書き直すのはアホ
557デフォルトの名無しさん:05/03/03 23:06:05
>>552
for(;;)
if(foo) break;

#define A
for(;;)
A;
558デフォルトの名無しさん:05/03/03 23:06:20
ソースは会社の財産だから、書き直せとは言わないけど、次からはこうしてくれとは言うかもな
559デフォルトの名無しさん:05/03/03 23:24:13
でもdo whileにしたいがために条件を無理やり最後に持って
きて結果可読性を損なってたら馬鹿だよな
560デフォルトの名無しさん:05/03/03 23:26:18
それは使うべき場所じゃないわけだろ?なんでそんな事をもちだすかな
561デフォルトの名無しさん:05/03/03 23:42:17
>全部やりなおしましたが、

このへんが気になるんじゃない?
562デフォルトの名無しさん:05/03/04 09:36:57
当然です > 全部やり直す。

一部しかやりなおさなかったらバグのもと
563デフォルトの名無しさん:05/03/04 09:49:13
全部やり直すなんていう単純作業こそバグのもと
564デフォルトの名無しさん:05/03/04 09:53:35
どうせ3つくらいでしよ。
565デフォルトの名無しさん:05/03/04 10:42:46
>>552
for(;;)とif() break;の組合せが素人くさいというやつこそ素人。
566デフォルトの名無しさん:05/03/04 11:19:29
>>552
そんなコード普通気が付かないから、他の人が読んだとき、
暫く何が起こってるか、判るまで時間がかかるから。
567デフォルトの名無しさん:05/03/04 11:24:18
>>550
>time_tが秒単位で時刻を格納しているとは限らない。ミリ秒・マイクロ秒単位のこともある。

time() は紀元 (1970年1月1日00:00:00 UTC) からの経過時間を秒単位で返す。
568デフォルトの名無しさん:05/03/04 11:31:47
>>567
ANSI Cでもそうだっけ?
569デフォルトの名無しさん:05/03/04 11:37:08
>>567
ISO/IEC 9899:1999 7.23.2.4 The time function
2 … The encoding of the value is unspecified.

内容はunspecifiedだそうな。残念でした。
570デフォルトの名無しさん:05/03/04 12:07:35
>>550
time_tがミリ秒、マイクロ秒単位の処理系なんて本当にあるの?
ちなみにPOSIXでは>>567の通り定義されている。
571デフォルトの名無しさん:05/03/04 12:08:25
int *(*func(char))(float);

こう宣言すれば、funcの型は
「引数がchar型で、戻り値が、float型を引数にしint*型を返す関数への
ポインタ」ということになってますかね?
572デフォルトの名無しさん:05/03/04 12:26:16
ttp://www.linux.or.jp/JM/html/LDP_man-pages/man3/difftime.3.html
>この関数は ANSI C では必須である。 POSIX システムでは time_t は数値型であるので(略
573デフォルトの名無しさん:05/03/04 12:28:54
だから、実際がどうであろうと規格では秒とは限らないと(ry
574デフォルトの名無しさん:05/03/04 12:29:59
ほんの少し行儀良く書けばいい事を、何故拒むのかねぇ
575デフォルトの名無しさん:05/03/04 13:33:46
CでPSの「パネキット」のようなものは作れますかね?物理法則等が難しそうなんですが…
576デフォルトの名無しさん:05/03/04 13:47:33
配列へのポインタpにおける
*p++と(*p)++の違いを簡潔に述べよ
577デフォルトの名無しさん:05/03/04 13:52:20
素直に教えてくださいと言ったらどうだね
578デフォルトの名無しさん:05/03/04 14:13:41
どうせわからないんだろおおおーーーーーーーwwww
579デフォルトの名無しさん:05/03/04 14:26:03
そうやって必死に答えを導き出そうとするなやw
580デフォルトの名無しさん:05/03/04 14:30:38
くだらねぇ質問にくだらねぇレス

カス共マンセー
581デフォルトの名無しさん:05/03/04 15:36:14
>>576
*p++
*p を評価した後 p をインクリメントする

(*p)++
*p を評価した後 *p をインクリメントする
582デフォルトの名無しさん:05/03/04 15:55:15
おお、すげぇ。目から鱗だぜ。
583デフォルトの名無しさん:05/03/04 16:05:07
そんなルアーで俺が
584デフォルトの名無しさん:05/03/04 16:34:30
#include <stdio.h>
int main(void)
{
char a;
char *ap;
a="abcdefg";
ap="abcdefg";
printf("%s\n",a);
printf(ap);
printf("\n%s\n",ap);
return 0;
}

ポインタの勉強のためにこんなプログラムを書いたのですが、コンパイラに
"01.c 6: 警告: ポインタの型が合わない (=)"
と言われてしまいます。
なぜでしょうか?
使用しているコンパイラは"LSI C-86 v3.30c"です。
585デフォルトの名無しさん:05/03/04 16:45:29
cont:
    if (expression)
        goto out;
    goto cont;
out:
586デフォルトの名無しさん:05/03/04 16:58:49
>>584
型が違うから

はい次
587最凶VB厨房:05/03/04 17:01:34
"abcdefg"
はchar型へのポインタ型で
値は
abcdefgのaが入っているアドレスを返す。

a="abcdefg";
char型=char型へのポインタ型となっており
型が一致してない。
588デフォルトの名無しさん:05/03/04 17:02:51
>>587
バカはすっこんでろ
589最凶VB厨房:05/03/04 17:09:58
答えたくて仕方がない年頃なの
590584:05/03/04 17:20:11
>>587
&a="abcdefg";
としてみましたが今度は"左辺値が必要"と言われたので"a"をポインタ変数にしてみたらいけました。
「&aは"a"のアドレスを"示す"もので、*aは何かのアドレスを"格納するため"の変数」という解釈でいいのですか?

また、char型変数で文字列を扱うにはどうすればいいのでしょうか?
配列変数にするしかないのですか?
591デフォルトの名無しさん:05/03/04 17:26:47
そもそも、
>"abcdefg"
>はchar型へのポインタ型で

これが間違い
ってかム板も随分レベル下がったな
592デフォルトの名無しさん:05/03/04 17:28:20
>「&aは"a"のアドレスを"示す"もので、*aは何かのアドレスを"格納するため"の変数」という解釈でいいのですか?

いけません。
593デフォルトの名無しさん:05/03/04 17:32:55
&aは"a"のアドレスを"示す"もの>正解
*aは何かのアドレスを"格納するため"の変数>不正解

こう理解してると、*a = &b; とかやって収集つかなくなるぞ。

>また、char型変数で文字列を扱うにはどうすればいいのでしょうか?
配列変数にするしかないのですか?
yes

*aは変数ではなく、あくまでaが変数。
宣言の char *a は、a というポインタ変数の宣言です。
594デフォルトの名無しさん:05/03/04 17:35:04
つーか、LSI-Cなんて捨てろって。
595最凶VB厨房:05/03/04 17:38:39
普通になんで間違ってるかわからんわw
596デフォルトの名無しさん:05/03/04 17:44:34
わからん奴が答えようとするなぼけ
597デフォルトの名無しさん:05/03/04 17:47:28
俺もわかんね
レベルの高い>>591
なにがおかしいのか解説しる
598デフォルトの名無しさん:05/03/04 17:47:29
バカでも答えられる、これが2ch
599584:05/03/04 17:50:40
>>593
>*aは変数ではなく、あくまでaが変数。
>宣言の char *a は、a というポインタ変数の宣言です。
試しに
char a;
char *a;
としてみたら重複エラーが出たので理解できました。
ありがとうございました。

>>594
Borland C++ 5.5にしてみました。
600デフォルトの名無しさん:05/03/04 17:52:37
>>599
分からんうちは、
char *a;
じゃなくて
char* a;
だと思っておけ
601デフォルトの名無しさん:05/03/04 17:52:47
>>597
規格の6.1.4
602584:05/03/04 17:57:13
>>600
1.char *a;
2.char* a;
3.char * a;
どれでもいけるんですね。。知りませんでした。
確かに2の書き方だと解釈が楽ですね。
助言ありがとうございます。
603デフォルトの名無しさん:05/03/04 18:04:29
アホすぎる。
basicでもやっとけとw
604デフォルトの名無しさん:05/03/04 18:09:42
規格ソースキボンヌ
手元にはARMしかない...orz
605584:05/03/04 18:12:57
>>603
すいません。
もうすぐ高2なのですが、バイトの給料をほとんどPC自作につぎ込んでいるのでCの教本を買う余裕が無いんです。
昨年11月からはじめたのですがなかなか上達しません。
606デフォルトの名無しさん:05/03/04 18:13:44
>>602
char* a,b;
とやってもbはchar型だということを忘れずに
607584:05/03/04 18:15:09
>>606
はい
了解しました。
608デフォルトの名無しさん:05/03/04 18:18:52
>>605
ガンガレ、俺は応援する。

俺はプログラミング始めた瞬間からポインタが完全に
理解できた、といっているような輩の言う事は気にすんな。
609デフォルトの名無しさん:05/03/04 18:34:47
>>605
そんな状態なら尚更ネットのありがたみを知るべきだろ
ググればしょぼい教本以上のサイトもあんだろしな

がんばれ
610最凶VB厨房:05/03/04 18:44:55
で、規格ってウェブで見られるのけ?
611デフォルトの名無しさん:05/03/04 18:53:51
>>610
買えよ馬鹿
612デフォルトの名無しさん:05/03/04 18:59:17
ここで見れる。
http://www.jisc.go.jp/
613デフォルトの名無しさん:05/03/04 19:02:28
614デフォルトの名無しさん:05/03/04 19:15:34
>>610
ググれもしねぇのか。
もう来なくていいよ
615最凶VB厨房:05/03/04 19:30:11
馬鹿ばか馬鹿ばか、口の悪いブタどもでつね!
616デフォルトの名無しさん:05/03/04 19:31:54
>>615
そのブタ以下の存在のクセにwww
617最凶VB厨房:05/03/04 19:34:17
>>615-616
俺が規格見るまではおまえらおちつけ。
618デフォルトの名無しさん:05/03/04 19:34:50
char型配列と理解したが、合ってんのか
619デフォルトの名無しさん:05/03/04 19:38:03
>>618
何の話だ?
620618:05/03/04 19:41:07
621デフォルトの名無しさん:05/03/04 19:42:34
Ruby!!!!!!!!!!!111
622デフォルトの名無しさん:05/03/04 19:50:52
>>620
今度は名無しで登場か?
623デフォルトの名無しさん:05/03/04 19:54:59
"abcdefg"のみならば文字列リテラルという存在でしか無いようだが。
624デフォルトの名無しさん:05/03/04 19:57:03
>>623
話についてこれない馬鹿は出てこなくていいから
625618:05/03/04 19:59:53
すみません、意味が分からないのですが・・・
最凶VB厨房さんと同一人物か?と言うことなら、違います。
単に、通りすがりで気になったもので・・・
雰囲気を乱してしまったならば謝ります。
626デフォルトの名無しさん:05/03/04 20:04:01
>>624
バカだなお前。
627デフォルトの名無しさん:05/03/04 20:17:28
>>616
以下とは<=の事
未満は<の事
まぁ、未満の意味で以下って普通に使われてるけどね
628デフォルトの名無しさん:05/03/04 20:42:02
文字列リテラルの型をどうのこうの
言っているんだから>>623の発言は
どう考えてもおかしいだろボケ
629デフォルトの名無しさん:05/03/04 20:44:56
>>628
文字列リテラルってchar型配列なの?
630デフォルトの名無しさん:05/03/04 20:46:06
>>629
ググればズバリと出てくるよ
631デフォルトの名無しさん:05/03/04 20:47:37
>>626
何が馬鹿なのか説明してくれるかな?
632デフォルトの名無しさん:05/03/04 20:48:58
>584
"0123" と記述すると連続した4バイトのメモリが確保されて、その中に 0x30,0x31,0x32,0x33,\0 というデータが格納されます。
\0 は NULL 文字と言って文字列がここで終りである事の目印となるデータです。
それでその先頭の(0x30が入っている)メモリのアドレスが返されます。
これは char 型のデータのアドレス(住所)なので代入するのは char 型のポインタでなければいけません。
よろし?もっと丁寧にわかりやすく解説してるサイト沢山あるから探してみるといいよ。
633デフォルトの名無しさん:05/03/04 20:50:56
>>630
ぐぐるキーワード教えてください
文字列リテラル char型配列 ではわからなかった
634デフォルトの名無しさん:05/03/04 20:52:57
5バイトだろ
635デフォルトの名無しさん:05/03/04 20:53:16
>>633
>>628にそのまま書いてあるよ
636デフォルトの名無しさん:05/03/04 20:57:50
>>623=>>626はもう遁走かw
637デフォルトの名無しさん:05/03/04 21:00:31
>>635
あぁ見つかった
"文字列リテラルの型"ね。tx
638デフォルトの名無しさん:05/03/04 21:02:19
ポインタに増分(減分)演算子を使う場合について、
++*p;は++(*p);と同じことでpの指す値を増分することはわかったのですが、
*p++;のようにpの次の値を指す意味で++(--)を前置するとはできますか?
639デフォルトの名無しさん:05/03/04 21:02:41
>>626
口と逃げ足だけは一人前だなw
640最凶VB厨房:05/03/04 21:03:45
規格見てもわからんぞw
6.1.4ってないしよ。ANSIの方なのか?
まっそれはいいとして。
>>632と言ってることが同じのような気がするのだが、
>>632も間違っているということか?
(>>634の指摘を除く)

馬鹿にもわかるようにずばっと言ってくれぇ
641デフォルトの名無しさん:05/03/04 21:05:00
>>640
お前はもう出てこなくていいから
642最凶VB厨房:05/03/04 21:07:51
まぁそういうな。
>>632は間違ってるのか間違ってないのか(634の指摘事項を除く)
どっちなんだ?間違っていないと言うのなら納得いかんからな。
643デフォルトの名無しさん:05/03/04 21:09:52
C言語初心者つかまったくわからんのだが、有料のソフトを買わなくちゃいけないんですか?
調べたんだが書いてあることが(話が飛びすぎて)良くわからなかった
簡単に手順を教えてほしいんですが・・・・

644デフォルトの名無しさん:05/03/04 21:10:18
*(++p)
645デフォルトの名無しさん:05/03/04 21:11:48
>>643
図書館や本屋行って入門書なり何なり調べてきましょう
646デフォルトの名無しさん:05/03/04 21:17:02
>>645
わざわざレスありがとう。明日いってきますわ
なんせ何をしたらいいかわからないもんで・・・
647デフォルトの名無しさん:05/03/04 21:19:03
>643
まず文体を統一しようね。誰にも相手にしてもらえなくなるよ。
それと何がしたいのか分からない。 C のコンパイラが欲しいのか C 言語を学びたいのか?
有料のソフトとは?コンパイラのこと?
648デフォルトの名無しさん:05/03/04 21:20:01
>>643
買わなくても良いから
テンプレのリンク先全部見るぐらいはしようよ
649デフォルトの名無しさん:05/03/04 21:20:20
>>643
とりあえず不安を一つ解消してあげると、
勉強するための本以外は全部無料で
かなりのものが揃えられるよ
650デフォルトの名無しさん:05/03/04 21:20:24
651↑訂正:05/03/04 21:21:10
652デフォルトの名無しさん:05/03/04 21:22:44
>>632
>0x30,0x31,0x32,0x33,\0 というデータが格納されます。
"0x30,0x31,0x32,0x33"はアドレスですか?
だとしたらなぜ"\0"も一緒に格納できるのですか?
"0,1,2,3"という値なら"0x01,0x02,0x03,0x04"だと思うのですが
653デフォルトの名無しさん:05/03/04 21:25:19
そんなえさで
654最凶VB厨房:05/03/04 21:27:14
もしかして単なる揚げ足取りだったのけ?
くだらん。

>>612には感謝する。
655デフォルトの名無しさん:05/03/04 21:28:50
0x30 -> 0 という文字を表すASCIIコード
\0 == 0x00

"0123"はメモリ上に
0x3031323300
と配置されます。(ビッグエンディアンの場合)
char *p = "0123";
と書いた場合は、pに0x3031323300の存在するアドレスが格納される
656652:05/03/04 21:33:53
>>655
すいません。
charだからASCIIコードなんですね。
吊ってきます
657デフォルトの名無しさん:05/03/04 21:49:45
>>655
おいおい……
658最凶VB厨房:05/03/04 21:51:27
ビッグエンディアンじゃなくてもそうだろって?
揚げ足取りの糞はだまっとけ
659デフォルトの名無しさん:05/03/04 21:54:53
ASCIIなんだっけ。
660デフォルトの名無しさん:05/03/04 21:54:56
はぁ…
661655:05/03/04 21:58:06
そか、バイトだから同じですね。失礼。
で、>>658
>>655のどこが揚げ足取りなのか説明してくれ
あと
>>657もナニが変か分からないので、マジレス頼む
662最凶VB厨房:05/03/04 22:00:58
>>657に言っているだけ。
>>655に対してのものじゃない。
663デフォルトの名無しさん:05/03/04 22:08:35
>>662
あんたも>655も滅茶苦茶。人に説明できるほど理解できないならおとなしく引っ込んでろ。
664デフォルトの名無しさん:05/03/04 22:10:53
何か書店逝って、帰って来てネットで調べたら分かりそうな事ばっかりハァ
665655:05/03/04 22:11:49
あ、そゆことですか、納得。
言葉遣い悪くてスマソ。>>662

しかし、
>おいおい・・・
ってレスはどうなのかね?
一言、「バイトだからリトルでも同じだろボケ、氏ね」
ですむんじゃないかな?
これなら言われた方(俺)も納得するんだけど。
なぜわざわざ少しの間違いに対して、冷たい、突き放した
レスを付けるのか、自分が人間出来てないせいなのか
分かりません。
ここの住人はこんな人ばっかなの?
666デフォルトの名無しさん:05/03/04 22:13:06
インデアン嘘つかない。ぎゃははは
667655:05/03/04 22:17:56
>>663
だから無茶苦茶だと切り捨てる前に、ナニがどう
無茶苦茶なのか説明して下さい、と言う事なんですが。
それともあなたも私と同じで説明する事が出来ないのですか?
668デフォルトの名無しさん:05/03/04 22:18:14
(´ω`)
669デフォルトの名無しさん:05/03/04 22:33:51
>655
それじゃ、あんたは自分の説明が無難だと思う?
どこかおかしいと思わない?

エンディアン云々以前なんだよ。
一々説明する気になれないほどね。
670デフォルトの名無しさん:05/03/04 22:39:20
大文字を小文字にしてから検索にかけて、小文字にする前の文字列を表示させたいのですが。

char s[DATALONG], s2[DATALONG]; と用意しておいて、
strcpy(s2, s); とsの値をs2にコピーしておき、
s[i] = tolower(s[i]); と小文字にしました。
sに対して文字検索をさせ、ヒットしたsを小文字のままでなく
小文字にする前の状態で出力したいのですが、
printf("%s", s2);
としたところで小文字のままで表示されてしまいます。


ご教授願います。。
671デフォルトの名無しさん:05/03/04 22:43:54
各処理の前後でs2を表示させて、
s2が小文字になるところを探すところから。
672デフォルトの名無しさん:05/03/04 22:44:48
>>670
いっそアップローダにソース上げて味噌
673643:05/03/04 22:45:16
回ってみて気になったんですが
・「ソースを変換して、リンクする」
という一連の作業はコンパイル一つで済むんですか?
・ソースの拡張子が「.c」とhttp://www9.plala.or.jp/sgwr-t/c/sec01.html#s1-2
の最初に書いてあったんですが、メモ帳だと.txtになってしまいます。メモ帳では
できないんでしょうか?

もしかしたら質問が意味不明かもしれませんが、どなたか回答よろしくおねがいします
674デフォルトの名無しさん:05/03/04 22:48:22
あまりに基本的なことすぎて答える気にならん
初心者向けのサイトをもう2,3調べて来い
675デフォルトの名無しさん:05/03/04 22:50:26
>>673:643
・「ソースを変換して、リンクする」という一連の作業はコンパイル一つで済む。
・メモ帳だと「名前を付けて保存」すればよい
676デフォルトの名無しさん:05/03/04 22:52:44
> ・「ソースを変換して、リンクする」
> という一連の作業はコンパイル一つで済むんですか?
コンパイルとリンクは別物。
一回でやるかどうかは開発に用いるソフトウェア次第。

> ・ソースの拡張子が「.c」と(p)http://www9.plala.or.jp/sgwr-t/c/sec01.html#s1-2
> の最初に書いてあったんですが、メモ帳だと.txtになってしまいます。メモ帳では
できないんでしょうか?
もしWindowsを使っていて、メモ帳で作る気ならWindowsの操作方法から勉強しろ。
677デフォルトの名無しさん:05/03/04 22:55:01
>>673
メモ帳でも拡張子を自分で".c"にすればいい。
初心者スレなら、誰かもっと丁寧に教えてくれるんでない?
678670:05/03/04 22:58:14
>671
strcpy(s2, s); としてsの値をs2にコピーすると、
その後sに変化が起きたらs2も同じように変わるんですよね。

上手い具合にsの値を保存しておく方法が分かりません。

>672
ソース見せてもしょーがない問題です。。(w
679デフォルトの名無しさん:05/03/04 23:01:09
くだらねぇ。こんなことも自分で解決できねぇようなヤシに今後の発展は見込めない。
680デフォルトの名無しさん:05/03/04 23:01:27
> strcpy(s2, s); としてsの値をs2にコピー
そんなことはできない。
681デフォルトの名無しさん:05/03/04 23:01:56
>>678
それは有り得ない。
strcpyしたらコピー元とコピー先は別物。コピーなんだから。
お前のプログラムにバグが有るに違いない。

早くUpしろ。ソース見せれば解決する問題だ。
682デフォルトの名無しさん:05/03/04 23:03:17
うぜぇーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
683デフォルトの名無しさん:05/03/04 23:15:16
質問いいですか?
684デフォルトの名無しさん:05/03/04 23:16:30
WordでUNIX向けソース書いてる人が昔、職場にいた。
それが一番使い易いといってWord形式で保存するので大変だった。
書けないことはないが…
685670:05/03/04 23:17:14
本当すいません。解決しました。
小文字に変換しているwhileの中でstrcpyしていました。
申し訳なかったです。
686デフォルトの名無しさん:05/03/04 23:22:13
>670
そーやって一歩ずつ進んで行くんだよ。野次は気にすんな。
ただし何でもかんでも安易に質問してすませるなよ?自分で苦労しないと身につかないからね。
687デフォルトの名無しさん:05/03/04 23:39:28
683は670じゃないですけが、これどうしても詳しい人に聞かなきゃ分からないと思うから、
質問させていただきます。

以前ここで、ファイル構造体のメンバに直接アクセスはしないよう言われたのですが、
その危険性が未だよく理解できません。

普通に動くし、何故いけないのですか?
688デフォルトの名無しさん:05/03/04 23:40:30
>>685
ついでっちゃーついでだけど、
tolower()にchar値を直接渡すのはやめようね。
tolower((unsigned char)c)とするべし。
689デフォルトの名無しさん:05/03/04 23:44:24
>>688
なぜ?
690デフォルトの名無しさん:05/03/04 23:49:19
>>689
tolower(int)の引数は、EOFか、あるいは
0〜255の範囲になければならないから。

charは符号付きの型だから、intに直接キャストすると
まずいのです。isalpha()とかも同じね。
691デフォルトの名無しさん:05/03/04 23:54:28
(0-255以外は未定義になるだけだろうに・・・変なの)
692643:05/03/04 23:57:17
みなさん回答ありがとうございます。
今コンパイルの設定を↓にしたがって進めてるんですが
http://www9.plala.or.jp/sgwr-t/detail/lsic/compile.html
lcc sample.c と入力すると
can't open: sample.c: No such file or directory
と表示されてしまいます。でも確かにcworkのフォルダにsample.cを入れてあるんです
何か問題の可能性がありますか?
693デフォルトの名無しさん:05/03/04 23:59:05
うんこしてくる
694デフォルトの名無しさん:05/03/05 00:00:41
>>691
普通は未定義になったらまずいと思うんだが・・・
695デフォルトの名無しさん:05/03/05 00:01:57
>>692
とりあえず cd と打って結果をここに
696643:05/03/05 00:14:06
C:\Documents and Setting\Owner
と出ました
697デフォルトの名無しさん:05/03/05 00:15:23
>>692
しかし、なぜにわざわざLSI-Cを選んだのw
せめて Visual C++ Toolkit 2003 とかにしたほうがいいよ。
698643:05/03/05 00:17:42
>>697
違いがわからなかったもので・・・
Visual C++ Toolkit 2003 は使い勝手が良いのですか?
699デフォルトの名無しさん:05/03/05 00:22:40
スレがだいぶ汚れてますね
700デフォルトの名無しさん:05/03/05 00:23:09
>>698
LSI-Cって、結構古いコンパイラなのよ。
今となっては時代遅れで、使うメリット薄い。

Visual C++ .NET Toolkit 2003は、
製品版の Visual C++ からコンパイラ部分だけ
切り出したやつだから、それなりに機能も整ってる。
701デフォルトの名無しさん:05/03/05 00:24:36
Cを学習するためならLSI-Cの方がいいと思うが。
フォルダ構成がシンプルだし。
もちろん実用的なアプリはつくれないけど。
702643:05/03/05 00:25:13
なるほど。でも今からそれに変えると不具合生じたりしませんか?
703デフォルトの名無しさん:05/03/05 00:29:22
なぜググればでる質問に丁寧に答える?
704デフォルトの名無しさん:05/03/05 00:29:31
だいじょぶだよ
色々触ってみるのも良いかもね
705デフォルトの名無しさん:05/03/05 00:30:21
な ぜ >>687 は ス ル ー な の か ? !
706デフォルトの名無しさん:05/03/05 00:37:58
>>690
ふ〜ん。でも英数字って文字コードで0〜127でことたりちゃうんじゃ
なかったっけ?符号付charの範囲は-128〜127だけど、英数字はマイナスに
ならないのでは?
707デフォルトの名無しさん:05/03/05 00:38:22
                |
                |
                |
                |
     /V\        ,J
    /◎;;;,;,,,,ヽ
 _ ム::::(;;゚Д゚)::| ジー
ヽツ.(ノ::::::::::.:::::.:..|)
  ヾソ:::::::::::::::::.:ノ
   ` ー U'"U'
708デフォルトの名無しさん:05/03/05 00:39:47
そんな決まりあったっけ
709デフォルトの名無しさん:05/03/05 00:59:13
決まりというか処理系の文字コードによるけど
ASCIIは7ビットで表現してるよ。
だからシフトJISは2バイト文字の先頭バイトをみるだけで、
それが2バイト文字とわかる。1バイト文字にはありえない
値だから。
710デフォルトの名無しさん:05/03/05 01:19:35
この時代にLSI-C使ってる人ってなんなの?
711デフォルトの名無しさん:05/03/05 01:22:12
>>688
charをunsigned charにキャストしなけりゃいけない文字を
tolowerに食わせちゃなんねぇということだな
712デフォルトの名無しさん:05/03/05 01:27:36
>>701
そもそも、フォルダ構成なんて意識しなくてもいいコンパイラが多いのに?
713デフォルトの名無しさん:05/03/05 01:29:07
もしそういう文字がある環境なら
キャストして食わせるのがむしろ正解では?
そういう文字とは文字コードをchar型にぶっこんだときに
最上位ビットが1になる文字やね。
714デフォルトの名無しさん:05/03/05 01:35:45
>>687
ファイル構造体のメンバにアクセスすることを推奨してるところなんてあるのか?
715デフォルトの名無しさん:05/03/05 01:51:34
>714
推奨してるところなんてない…はずだと思いたい。
問題はどうして使っちゃいけないのか、だろ?
規格で決まっていない以上、処理系が違う場合、例えば、コンパイラを変えた場合、最悪コンパイラ
のバージョンをあげた場合ですらコンパイルできるかどうかも保証されない。
わざわざそんなことする必要あるか?
716デフォルトの名無しさん:05/03/05 06:15:42
>>711
いや、だいじょうぶだよ。マクロの中でも関数でも0xffでマスクしてるので
717デフォルトの名無しさん:05/03/05 06:16:32
> しかし、なぜにわざわざLSI-Cを選んだのw
> せめて Visual C++ Toolkit 2003 とかにしたほうがいいよ。

どっちもダメ。そんなものはCではない。
718デフォルトの名無しさん:05/03/05 06:28:08
じゃあ何がいいの?
719デフォルトの名無しさん:05/03/05 06:53:54
>>718
>>3 くらいは見てるんだろうけど、目的による
必ずしも規格合致性が高ければ良いってものでもない

そのへんがわかってないアフォが1匹煽りに来てるけどスルーしろ
720デフォルトの名無しさん:05/03/05 09:04:46
質問です。
グローバル変数は0に初期化されるって聞いたんですが、配列の場合どうなるんでしょう。
グローバルに配列を定義すると、その要素が全部0になるんでしょうか。
よろしくお願いします。
721720:05/03/05 09:05:41
すみません。上の質問は、初期化を自分でしなかった場合の話です。
722デフォルトの名無しさん:05/03/05 09:49:30
>>720
規格では、0 で初期化されることになっている
現実には、初期化されない処理系が結構ある

おまえさんは、どっちが知りたかったんだ?
規格なら、http://www.webstore.jsa.or.jp/webstore/Com/FlowControl.jsp?lang=jp&bunsyoId=JIS+X+3010%3A2003&dantaiCd=JIS&status=1&pageNo=0
現実なら、手元の処理系で実験するなりマニュアルを見るなり、何とでもできるだろう
723デフォルトの名無しさん:05/03/05 10:31:08
こんな良スレあったんですね。俺も質問させてください。

K&Rに
free((void *)p);
みたいなコードがあるんだけど、
pは
p = (char *)malloc(...);
見たいな奴です。freeで(void *)って必要でしょうか?
無駄なような気がします。でもK&Rだし。
どなたか教えてください。
724デフォルトの名無しさん:05/03/05 10:44:47
>>723
初版はポリシーがはっきりしててよくできてたのに第2版ときたらえらく中途半端になったものだな

俺はコーディング基準次第だがデフォルトはこう
void* → 非void* はキャストする
非void* → void* はキャストしない
725デフォルトの名無しさん:05/03/05 10:47:19
>>723
誤植です。
726デフォルトの名無しさん:05/03/05 10:49:36
>>717
たしかにそうだな。

どちらも、printfさえまともにうごかない。
for文もちゃんとまわらない。
そんなものCコンパイラーと呼べるか?
727デフォルトの名無しさん:05/03/05 10:54:00
> どちらも、printfさえまともにうごかない。
> for文もちゃんとまわらない。
その仮定が正しければCコンパイラと呼べないが、
その仮定は間違っているのでCコンパイラと呼べる。
728デフォルトの名無しさん:05/03/05 10:55:56
>>726
本当にそうかね。

どちらも、printfさえまともにうごかない、for文もちゃんとまわらない、そんなバグ付きのCコンパイラーだと呼べる。
729デフォルトの名無しさん:05/03/05 10:58:47
文句は使ってから言うもんだ
730デフォルトの名無しさん:05/03/05 11:04:31
for の初期化式で定義した変数のスコープの話でもしてるなら痛いアフォだな
731デフォルトの名無しさん:05/03/05 11:04:36
> その仮定が正しければCコンパイラと呼べないが

だよねー
732デフォルトの名無しさん:05/03/05 11:10:40
printfもforもマトモに動いているので
Cコンパイラと呼べると言うことでFA。
733デフォルトの名無しさん:05/03/05 11:11:51
いいえ うごいてません。
734デフォルトの名無しさん:05/03/05 11:12:17

       弘  法  は  筆  を  選  ば  ず
735デフォルトの名無しさん:05/03/05 11:12:28
>>726
このコードをこのコンパイラでコンパイルすると
こういう風にダメである
という現実に存在する証拠だせよ
仮定じゃ話にならん
736デフォルトの名無しさん:05/03/05 11:13:24
>>735
やーだよw

まともにうごいていません。
737デフォルトの名無しさん:05/03/05 11:13:32
実際ゴミだろ > VCやLSI-C
738デフォルトの名無しさん:05/03/05 11:14:53
                             |
                             |
      ∩___∩             |
      | ノ  _,  ,_ ヽ        ((  | プラプラ
     /  ●   ● |         (=)
     |    ( _●_)  ミ _ (⌒)   J  ))
    彡、   |∪|  ノ
⊂⌒ヽ /    ヽノ  ヽ /⌒つ
  \ ヽ  /         ヽ /
   \_,,ノ      |、_ノ
739デフォルトの名無しさん:05/03/05 11:15:04
ふつうのコンパイラーだったら、いや、ちょっとボケな(規格はずれの)コンパイラーでさえ
いくらなんでもprintf関数ぐらいはまともにうごく。(printf関数ぐらい初心者でも知ってるよな?)

なのにVCやLSI-Cは、そのprintf関数さえまともにうごかん。

main()
{
  double pi = 3.1415926;

  printf("%g %a\n", pi, pi);
  printf("%zx\n", sizeof(long));
}
740デフォルトの名無しさん:05/03/05 11:15:55
VCやLSI-CはまともなCコンパイラーではないので、
というか、もはやCとは呼べないぐらいだめだめなので、

for文さえちゃんとまわらない。

int main(void)
{
  for (int i = 0; i < 5; i++) {
    for (int j = 0; j < 10; j++)
      printf("hello %d:%d ", i, j);
    printf("\n");
  }
  return EXIT_SUCCESS;
}
741デフォルトの名無しさん:05/03/05 11:16:38
>>739
うわっ。お前アフォだろw
742デフォルトの名無しさん:05/03/05 11:17:04
printfさえまともにうごかせない。
for文もちゃんとまわせない。
そんなものCプログラマーと呼べるか?
743デフォルトの名無しさん:05/03/05 11:17:23
>>737
参考までに。
どの様なコンパイラはゴミじゃないのでしょうか?
744デフォルトの名無しさん:05/03/05 11:20:58
>>743
gccと答えるんじゃないかと予測
(もしくは、Intel?)
745デフォルトの名無しさん:05/03/05 11:23:11
準拠規格を確認し忘れてるアフォがいるスレはここですか?
746デフォルトの名無しさん:05/03/05 11:25:07
> どの様なコンパイラはゴミじゃないのでしょうか?

Cの文法に沿ったソースがちゃんとまともにコンパイルできるコンパイラーです > ゴミじゃない

そんなのあたりまえだろ ぼけ
747デフォルトの名無しさん:05/03/05 11:25:17
俺の使っているコンパイラがCコンパイラと信じたいばかりに
俺の使っているコンパイラが拡張で対応している物も標準規格。
拡張機能に対応していないコンパイラはCコンパイラじゃないと
思い込みたい人がいるスレはここですか?
748デフォルトの名無しさん:05/03/05 11:26:38
741は、自分のアホさ加減をさらしすぎ。

きっと739に何かケチつけようと思ったが、それだけの知識も頭もないので、
とりあえず「うわっ。お前アフォだろ」とだけ言ってみたというところ。
749デフォルトの名無しさん:05/03/05 11:27:25
> 拡張機能に対応していないコンパイラはCコンパイラじゃないと

こいつぼけ。拡張機能じゃなくて「標準規格」だというのに。

わざわざこんなところでぼけをさらさなくても ;-)
750デフォルトの名無しさん:05/03/05 11:28:15
>>746
具体的にどのコンパイラがゴミじゃないのか教えてください。
751デフォルトの名無しさん:05/03/05 11:28:17
VCやLCI-CはまともなCコンパイラーではない。
なので、
構造体のポインターをとる関数に、定数を渡せない。
#include <stdio.h>
#include <stdlib.h>

typedef struct {
    int x;
    int y;
    char *str;
} FOO;

void sub(FOO *);

int main(void)
{
    sub(&(FOO){1, 2, "xyz"});
    return EXIT_SUCCESS;
}

void sub(FOO *p)
{
    printf("%d %d %s\n", p->x, p->y, p->str);
}
752デフォルトの名無しさん:05/03/05 11:28:23
753デフォルトの名無しさん:05/03/05 11:32:11
かなりサブセットなのね > 752
やっぱりそんなのはCコンパイラーとはよべん
754デフォルトの名無しさん:05/03/05 11:33:19
世の中には完全なCコンパイラは無いよ?
755デフォルトの名無しさん:05/03/05 11:33:50
VCやLCI-CはまともなCコンパイラーではないので、
inline関数が使えない。

VCの場合は_inlineとかいうへんな方言を使うと、いちおうそれっぽいことができるが、
本物のインライン関数ではない。
756デフォルトの名無しさん:05/03/05 11:33:57
>>753
サブセットな"Cコンパイラ"ですよね。
757デフォルトの名無しさん:05/03/05 11:34:45
いつのまにか、Cコンパイラじゃないから、
「完全な」とか「まともな」とか
プリフィックスがつくようになっているなw
758デフォルトの名無しさん:05/03/05 11:36:02
>>753
K&R初版のプロトタイプ宣言すらできない古いコンパイラーもCコンパイラーとはよべんのけ?
759デフォルトの名無しさん:05/03/05 11:36:23
1.レスアンカーもまともにできない
2.sageも出来ない
760デフォルトの名無しさん:05/03/05 11:37:08
| 釣れますか?                ,
\                         ,/ヽ
   ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄         ,/   ヽ
   ∧_∧          ∧∧  ,/         ヽ
  ( ´∀`)         (゚Д゚,,),/            ヽ
  (    )      (|  つ@               ヽ
  | | |   ___ 〜|  |                ヽ
  (__)_) |――|.  ∪∪                     ヽ
   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|                 ヽ
  /⌒\/⌒\/⌒\/⌒\|彡~゚ ゜~ ~。゜ ~ ~ ~ ~~ ~ ~~ ~ ~~ ~~ ~~
761デフォルトの名無しさん:05/03/05 11:37:26
VCやLSI-CはまともなCコンパイラーではないので、
#define BAR(a, b, c, ...) 形式の「可変個数引数」のマクロを定義できない。(エラーになる)
762デフォルトの名無しさん:05/03/05 11:37:32
>>759
お前は誰にレスしているんだ?w
763デフォルトの名無しさん:05/03/05 11:38:08
> サブセットな"Cコンパイラ"ですよね。

規格ではサブセットを認めてはいないので、Cコンパイラーとは呼べない
764デフォルトの名無しさん:05/03/05 11:38:10
GCCやVCやLSI-CはまともなCコンパイラーではないので、
#define BAR(a, b, c, ...) 形式の「可変個数引数」のマクロを定義できない。(エラーになる)

765デフォルトの名無しさん:05/03/05 11:38:14
>>759
1.レスアンカーは適当にする
2.sageはしない
766デフォルトの名無しさん:05/03/05 11:38:53
GCCやVCやLCI-CはまともなCコンパイラーではないので、
inline関数が使えない。

VCの場合は_inlineとかいうへんな方言を使うと、いちおうそれっぽいことができるが、
本物のインライン関数ではない。
767デフォルトの名無しさん:05/03/05 11:39:32
VCやLSI-CはまともなCコンパイラーではないので、

drawline((struct point){.x = 1, .y = 1}, (struct point){.x = 3, .y = 4});

のような引数で関数を呼べない。
もはやこのようなものはCコンパイラーとは呼べないのは当然である。
768デフォルトの名無しさん:05/03/05 11:40:22
> GCCやVCやLCI-CはまともなCコンパイラーではないので、
> inline関数が使えない。

おい ぼけ。gccはつかえるぞ。
769デフォルトの名無しさん:05/03/05 11:41:53
「C言語はまともな言語ではない。」
これで良いよ。

まともじゃない言語のまともじゃ無いコンパイラ使ってくから。
770デフォルトの名無しさん:05/03/05 11:46:01
本物のCコンパイラーの簡単な見分け方。

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

int main(void)
{
#if defined(__STDC_ISO_10646__)
    printf("私は本物のCコンパイラーです (%d)\n", __STDC_ISO_10646__);
#else
    printf("すみませんわたしは偽物です\n");
#endif
    return EXIT_SUCCESS;
}
771デフォルトの名無しさん:05/03/05 11:47:36
うちのは、本物と出たな。

ためしに、VC++6.0 と LSI-C とgcc3.3とBorlandのbccは偽物だった。
772デフォルトの名無しさん:05/03/05 11:48:23
やーい にせもの > VC、LSI-C
773デフォルトの名無しさん:05/03/05 11:52:16
>icc test.c
>./a.out
私は本物のCコンパイラーです (200009)
>gcc test.c
>./a.out
私は本物のCコンパイラーです (200009)
774デフォルトの名無しさん:05/03/05 11:52:20
っていうか、いまどき LSI-C なんか薦めるなよ。ぼけ。

VC++はごみ
775643:05/03/05 11:52:21
>>692の質問をとりさげます
自分でいじくってたらできました。ご協力感謝します
776デフォルトの名無しさん:05/03/05 11:53:15
>>773
そのgccのヴァージョンいくつだよ?
777デフォルトの名無しさん:05/03/05 11:54:40
>>770
偽物が全く見つからんぞw
778デフォルトの名無しさん:05/03/05 11:56:26
>>773
>gcc --version
gcc (GCC) 3.3.2 20031218 (Vine Linux 3.3.2-0vl8)
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
779デフォルトの名無しさん:05/03/05 11:56:56
> 偽物が全く見つからんぞ

それはつまり、VCやLSI-Cみたいなぼけなコンパイラーモドキを「持っていない」と
自慢したいわけですか? :-)

%dより%ldにするべきだな。
780デフォルトの名無しさん:05/03/05 11:57:15
つーかよー、クレームたれる前に

 マ ニ ュ ア ル く ら い 読 め つ ー の

どこに ISO/IEC9899:1999 って書いてあったんだよ?
てめえら、やってることが DQN な客の典型だろうが
781デフォルトの名無しさん:05/03/05 11:58:08
782デフォルトの名無しさん:05/03/05 11:59:10
>>779
ぶー 外れー
ちなみに、おまえさんの言うブツはちゃんと持ってるぜ

やーい、わかんねーwwwwwwwwwwwww
783デフォルトの名無しさん:05/03/05 12:03:10
> どこに ISO/IEC9899:1999 って書いてあったんだよ

っていうかそうじゃないものは「Cコンパイラー」とは呼べん。
そんな当たり前のこともわからないのか ぼけめ。
784デフォルトの名無しさん:05/03/05 12:05:53
>>783
だからISO/IEC9899:1999準拠のコンパイラなんてどこにあるんだよ。
さっさと教えろ。
785デフォルトの名無しさん:05/03/05 12:05:58
> マ ニ ュ ア ル く ら い 読 め つ ー の
> どこに ISO/IEC9899:1999 って書いてあったんだよ?

書いてないからCコンパイラじゃないんだろ?
786デフォルトの名無しさん:05/03/05 12:06:46
> ISO/IEC9899:1999準拠のコンパイラなんてどこにあるんだよ

さっきのひとが書いてた「簡単な判定」プログラムで探せばいいじゃん。
787デフォルトの名無しさん:05/03/05 12:08:03
なるほど。
ようは、
「VCC++みたいなゴミをつかっているぼけが、自分のつかっているものをボケだと
おもいたくないがために、'まともなものなてどこにもないんだ!!' ということにしてしまいたい
症候群」なわけですね?
788デフォルトの名無しさん:05/03/05 12:08:29
こまったもんだなあVCユーザーにも。
789デフォルトの名無しさん:05/03/05 12:10:52
いつもの週末の風景ですね。
790デフォルトの名無しさん:05/03/05 12:14:40
最早どうでもいいかもしれないけれど、LSI-C86を使わないほうがいい理由。
・フリー版は実数演算ライブラリが別である。
→printf()系などで"%g"を使うには実数演算ライブラリを明示的にリンクする必要がある。
・intが2バイトである。
→ちょっとした演算ですぐオーバーフローしてしまう。
・メモリモデルが所謂ショートデータショートプログラムモデルである。
→ちょっとした容量のデータや大きめのプログラムを工夫無しに作れない。
・コンパイラが比較的小さいメモリでしか動かない。
→結構大き目の関数をコンパイルしようとすると根を上げてしまう。
・ロングファイル名に対応していない。
→長いパス名を与えるとバッファオーバランする標準関数がある。

後なんかあったかな?
791デフォルトの名無しさん:05/03/05 12:14:57
>>1 にも標準Cのことだけ書けってかいてあるから、
VCユーザー立ち入り禁止にすればいんだよ!!

週末はVC厨が多いからなあ。
792デフォルトの名無しさん:05/03/05 12:16:15
> intが2バイトである。

VCももともとがそうだからVCもやめたほうがいいね
793デフォルトの名無しさん:05/03/05 12:17:07
bcc 5.51&cl 13.10.3077
すみませんわたしは偽物です
まぁ、道具に使われるんじゃなくて使う人になれば無問題だけどな
794デフォルトの名無しさん:05/03/05 12:18:09
Cの規格は、Complexなどの一部の機能を除いてサブセットを認めていないので、
機能がサブセットなものはCコンパイラーではなく、Cコンパイラー「もどき」に
すぎないことは確かです。
795デフォルトの名無しさん:05/03/05 12:22:07
> まぁ、道具に使われるんじゃなくて使う人になれば無問題だけどな

かなりいいわけがましいですが、
実はいいわけにさえなっていませんね。
まけおしみというか
796デフォルトの名無しさん:05/03/05 12:35:15
マニュアルを確認してないことを図星で突っ込まれてもなお
それを棚に上げて往生際の悪い言い訳をたらたらと・・・

 D Q N 客 そ の も の だ な
797デフォルトの名無しさん:05/03/05 12:37:20
> D Q N 客 そ の も の だ な

などと書いてみても、おまえがVC厨であることにはかわりない ;-)
798デフォルトの名無しさん:05/03/05 12:37:50
話そらすしかねえでやんの(ププ
799デフォルトの名無しさん:05/03/05 12:38:06
マニュアルにそう「書いてない」ことが、Cコンパイラーではない証拠だという
あたりまえのことがまだわかっていないわけだからな。
800デフォルトの名無しさん:05/03/05 12:39:10
やーい > にせもの
801デフォルトの名無しさん:05/03/05 12:47:05
C Library Conformance
http://www.dinkumware.com/conform_c.html

>Needless to say, the Dinkum C Library is the only completely conforming option today.

と書いてあるけど、当然 Dinkum C Library 使ってるんだよな?
802デフォルトの名無しさん:05/03/05 12:50:34
今日は啓蟄か・・・
虫がいっぱい湧いているるのもうなづける
803デフォルトの名無しさん:05/03/05 12:56:34
>>802
おまえみたいなVCユーザーのことだな。
804デフォルトの名無しさん:05/03/05 12:58:24
801おまえぼけ

> only completely conforming option today.
これがウソなことさえわからんのか。
何年前の話だよ!
805デフォルトの名無しさん:05/03/05 13:03:00
Red HatについてもV8.0までしか書いてないような「超 おおむかし」の記述を根拠に
するような801はかなりのまぬけ。
806デフォルトの名無しさん:05/03/05 13:14:02
#include <???>と
#include "???"
って何が違うのかな
807デフォルトの名無しさん:05/03/05 13:14:51
>>806
includeの説明読めばいいでしょ
808デフォルトの名無しさん:05/03/05 13:22:24
>>807
の日本語ワカリマセン
809デフォルトの名無しさん:05/03/05 13:25:48
>>806

後者は、カレントディレクトリー(というかそのファイルがある場所)を探してから
-I指定した場所や標準の場所(/usr/include等)を探すが、
前者は、カレントディレクトリー(というかそのファイルがある場所)を探さない。
810デフォルトの名無しさん:05/03/05 14:08:44
ぼけ荒らしの傾向

1.自分を絶対正しいと考えている。
2.仲間たちを例外なく無知な大馬鹿者と考えている。
811デフォルトの名無しさん:05/03/05 14:16:10
>>810

消 臭 た ま ご っ !!!!
812デフォルトの名無しさん:05/03/05 14:32:51
今ある環境で動くものを作れということだよ。

「このコンパイラは規格にあってないので作れません」「明日から来なくていいよ」
813801:05/03/05 15:21:13
いや、古いのは分かってるよ。手抜きしちゃった。
で、もうちょっと探してみたよ。

FreeBSD の準拠プロジェクト状況(POSIX と混ざってるけど)
ttp://www.freebsd.org/projects/c99/

GCC の C99 対応状況
ttp://gcc.gnu.org/c99status.html

HP-UX 11iv2
>また、C99は部分的にサポートされます。
ttp://docs.hp.com/ja/5990-8154/ch10s03.html
ttp://docs.hp.com/ja/5991-0700/index.html

>Sun Studio 10
>On Solaris 10, this compiler is in full compliance with the C99 standard
ttp://developers.sun.com/tools/cc/documentation/ss10_docs/mr/READMEs/c.html#limitations

Visual Studio .NET 2003
>このバージョンの Visual C++ は、C99 標準に準拠していません。
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vclib/html/_crt_c_run.2d.time_libraries.asp

ちょっと疲れた。こういう準拠状況を示した表とかないのかね。
C99 に拘る人なら準拠状況には詳しいでしょうから、資料があったら教えてください。
814デフォルトの名無しさん:05/03/05 15:31:03
>>813
ぐっじょぶ。さすがヤオイの人は違う。
815デフォルトの名無しさん:05/03/05 16:23:57
引きこもりは世間が狭いね
816デフォルトの名無しさん:05/03/05 16:31:13
引きこもってないで、スカイマークスタジアム行ってこい。
阪神とオリックスが雪の中、野球やってるぞ。
817デフォルトの名無しさん:05/03/05 17:01:14
>>816
お前は今どこにいるんだ?w
818デフォルトの名無しさん:05/03/05 17:44:31
>>812
当たり前すぎていちいち言うのも馬鹿馬鹿しいが
それすらわかってないどアフォのすくつだよなここ
819デフォルトの名無しさん:05/03/05 17:48:10
今ある環境にしがみついてしか仕事ができなくなった爺たち乙
820デフォルトの名無しさん:05/03/05 17:51:43
i = i++とかしても、動けば問題ないよね。
821デフォルトの名無しさん:05/03/05 17:55:16
>>820
保証がない特性を使わないことと
保証がある機能を使うことの区別がつかないアフォは >>812 の登場人物
822デフォルトの名無しさん:05/03/05 18:03:13
実際のコード以上の保障なんてどこにあるんだ?
規格書に書いてればそれで満足なのか?
823デフォルトの名無しさん:05/03/05 18:07:50
きちんと書けないわけじゃない時にわざわざ行儀悪く書く事は無いと思うがね
824デフォルトの名無しさん:05/03/05 18:34:26
K&Rの145ページで、

void qsort(void *lineptr[], int left, int right,
825デフォルトの名無しさん:05/03/05 18:39:43
アヘ。ミスすまそ。

K&Rの145ページで、
void qsort(void *lineptr[], int left, int right, int (*comp)(void *, void *));
とプロトタイプ宣言されているqsortを、mainの中で呼ぶときに
第四引数を
(int (*)(void *,void *))(numeric ? numcmp : strcmp)
と指定しているのがわからんです。
(int (*(numeric ? numcmp : strcmp))(void *,void *))
と書くべきだとおもうんですがなんで上のように書くんですか?
826デフォルトの名無しさん:05/03/05 18:45:37
>(int (*)(void *,void *))
この部分はキャスト。
827デフォルトの名無しさん:05/03/05 18:49:51
>(*)
この部分はアナル。
828デフォルトの名無しさん:05/03/05 18:49:51
規格マニアな人に
Test Your C
ttp://bellsouthpwp.net/v/o/voltson/index.html

あー、まず英語で挫折するかもしんね。
829デフォルトの名無しさん:05/03/05 18:51:29
>>826 ををををを!そういうことですか!サンクス!!!
830デフォルトの名無しさん:05/03/05 19:10:47
>>822
>どこにあるんだ?

それは自分で考えろ
わかんねー奴ぁ適性低すぎ
廃業を推奨する
831デフォルトの名無しさん:05/03/05 19:18:59
引きこもりは手段が目的だから
832デフォルトの名無しさん:05/03/05 19:21:49
規格もコードも信じられないのか。
結局、何を信じてるんだ?経験?
833デフォルトの名無しさん:05/03/05 19:31:06
実際にプログラム動かして検査してみるまで信用できないけど
834デフォルトの名無しさん:05/03/05 19:31:47
俺は愛を信じるね
835デフォルトの名無しさん:05/03/05 19:49:56
836デフォルトの名無しさん:05/03/05 20:11:08
>835
あ、俺も最初気づかなかったけど右上でジャンル選べるから。
今のところ、14/15+13/15。まだまだ先は長いぜ。
837デフォルトの名無しさん:05/03/05 21:30:30
>>821
じゃ、
x = (i++ > j++) ? i++ : j++;
って、どう?俺は、これはちゃんと動く保証そのものがないと思うんだが。
838デフォルトの名無しさん:05/03/05 21:43:14
ここがネタスレだったのをすっかり忘れていたよw
839デフォルトの名無しさん:05/03/05 21:59:56
>>838
マジ?ここネタスレ?
840デフォルトの名無しさん:05/03/05 22:01:37
>>837
それ書いたらクビ
841デフォルトの名無しさん:05/03/05 22:16:29
>>837
iが10、jが0とすると、xに11、iに12、jに1が入りますが何か?
842デフォルトの名無しさん:05/03/05 22:19:24
>837
規格上保証されてても実装上不安が残るって意味?
そりゃま、規格上正しくてもよろしくないコードもいくらでもあるし、どこで線を
引くかは想定する環境等程度問題じゃないすかね。
VC7.1, BCC 5.5.1, gcc 3.3.3 (cygwin) だと動いとるようですが。

とりあえず 137/150 だった。
で、↓って undefined じゃないの?
>int a = 1;
>printf("%d", ++a, a + 5);
関数呼び出しについては副作用完了点は関数呼び出し前で、引数は評価順序不定。で、
ttp://www.kouno.jp/home/c_faq/c3.html#8
>更に、変更前の値は、格納される値を決定するためだけにアクセスしなければならない。
a + 5 はそうじゃないよな?
gcc も "may be undefined" だけど警告出すし。
843デフォルトの名無しさん:05/03/05 22:23:46
クイズの中で気になったのはこれ
これって b=2 が保証されるんだっけ??

int a = 1;
{
int a = 2;
b = a;
}
844デフォルトの名無しさん:05/03/05 22:24:26
>>843
おまえ、ハード屋だな?
845デフォルトの名無しさん:05/03/05 22:25:33
>>844
かんけーねー
846デフォルトの名無しさん:05/03/05 22:25:50
>>844
どっちかというとネットワーク屋です
847デフォルトの名無しさん:05/03/05 23:37:57
>>826
もう少し詳しくお願いします。
848デフォルトの名無しさん:05/03/05 23:50:39
a->b = 0

"->"、これなんて読むの?
849デフォルトの名無しさん:05/03/05 23:55:33
aro-
850デフォルトの名無しさん:05/03/06 00:04:30
>>848
アロー(矢印)
851デフォルトの名無しさん:05/03/06 00:55:00
>>843
bのscopeがそのブロックの外なら、b==2。
852デフォルトの名無しさん:05/03/06 01:08:53
質問です。

あるファイルをバイナリ形式でfopenして
最後から6Byte目までを消したいのですが、
どうすればよいのでしょうか?

ファイルを読むときEOF!=判定を使うので
EOFを埋め込めばと思い、fseek()でFPを最後から-6に移動し
putcでEOFを埋めましたが変化ありませんでした。


853852:05/03/06 01:10:13
ちなみに、埋めたというのは
putc(EOF , fp);
のような書式で行いました。
よろしくお願いします。

854デフォルトの名無しさん:05/03/06 01:18:29
>>852
C-FAQに書いてた気がする。
855852:05/03/06 01:22:05
>>854
ありがとうございます。
探してみます。
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
これですよね?
856デフォルトの名無しさん:05/03/06 01:26:29
> EOFを埋め込めばと思い

ぼけ。ファイルにそんなものが入っているわけじゃねーよ。常識だろうが
857デフォルトの名無しさん:05/03/06 01:29:10
>>856
おまえみたいなのがレスする意味がわからん。
何の役にも立たないのに。
858デフォルトの名無しさん:05/03/06 01:31:09
EOFをちゃんと解説してる解説書ってそんなに無かった気がする
859デフォルトの名無しさん:05/03/06 01:33:15
>>852
FILE* fp;
FILE* fp_tmp;
int len, i;

/* ファイル名を binary.dat とする */
if ((fp = fopen("binary.dat", "rb")) == NULL) {
printf("File couldn't open.\n");
exit(0);
}

if ((fp_tmp = fopen("binary.tmp", "wb")) == NULL) {
printf("File couldn't write.\n");
fclose(fp);
exit(0);
}

fseek(fp, -1, SEEK_END);/* 最後から1バイト前に移動 */
len = ftell(fp) + 1;/* ファイルのサイズ */
fseek(fp, 0, SEEK_SET);

for (i=0; i<len-6; i++) {
fgetc(fp);
fputc(fp_tmp);
}

fclose(fp_tmp); fclose(fp);
860デフォルトの名無しさん:05/03/06 01:33:44
> EOFをちゃんと解説してる解説書ってそんなに無かった気がする

くさかべ先生の本を読めばだいじょぶ
861デフォルトの名無しさん:05/03/06 01:35:55
>>856
ぼけ玄人の常識=素人の非常識
862デフォルトの名無しさん:05/03/06 01:42:05
質問です。

カレントディレクトリから一つしたの階層の全ファイルそれぞれにある処理をさせたいのですが、
違う階層のファイルを全て開くにはどうすればいいのでしょうか?
863852:05/03/06 01:45:00
chsize ですね。
しかし仕様があまりHPにのってないです。
困りました。

>>859
ありがとうございます。
ですが、扱うファイルサイズもGByteオーダなので
コピーの方法は避けたいのが現状です。
たかが後ろ6Byteほど削るだけで、コピーするのは時間の無駄と思いまして。。

864デフォルトの名無しさん:05/03/06 01:45:12
>>858
今手元にないんで, はずしてるかも知れないんだが,
K&R にはちゃんと書いてあったと思うが...
865デフォルトの名無しさん:05/03/06 01:49:08
>>862
プログラムの起動オプションでファイル名を指定するのが簡単かな。
866デフォルトの名無しさん:05/03/06 02:00:52
>>863
C の使い方って言うより, 使ってる OS の仕様によると思うが...

Unix 系の OS だと truncate なるシステムコールがあって,
ファイル名と ファイルサイズを指定すれば, その長さに切り詰
めてくれる.
truncate("ファイル名", size)
ってな使い方.
867852:05/03/06 02:02:49
>>866
なるほど。ファイルの最後という概念は、EOFというより
OSレベルで管理されているという理解でいいんでしょうか。

バイナリで読むのになぜここでファイルの最後なのかが
わかるのか不思議でした。
OSはWindowsXPなんですけどこれじゃ無理ですかね・・
868デフォルトの名無しさん:05/03/06 02:16:54
>865
失礼しました、補足があります。

一つ下の階層にもディレクトリがある場合、さらにそのディレクトリ内も全ファイル処理をさせたいのです。
869852:05/03/06 02:19:29
解決しました。
int truncate(const char *path, off_t length);
int ftruncate(int fd, off_t length);

を使うか
BOOL SetEndOfFile(HANDLE hFile);

を使う必要がありそうです。
ただC言語というより、OSレベルの話でした。
870デフォルトの名無しさん:05/03/06 02:33:56
>>868
処理系によって方法や関数名が異なるけど、OSは?
871デフォルトの名無しさん:05/03/06 02:35:54
なにか初心者用のmix of C&assemblyみたいないい本ある?
872デフォルトの名無しさん:05/03/06 02:37:20
>870
そうなんですか〜。

OSはWindowsXP、Windows2000です。
873870:05/03/06 02:54:31
>>872
とりあえず試作品を作ってみるから、少し待ってくれる?
874862:05/03/06 03:03:47
>873
はい。
すみませんがよろしくお願いします。
875デフォルトの名無しさん:05/03/06 03:19:59
> カレントディレクトリから一つしたの階層の全ファイルそれぞれにある処理をさせたいのですが、

ぼけ。findつかえよ。
876870:05/03/06 04:38:34
>>872
お待たせ。
少し強引な方法だけど、作ってみた。
OS:Windows XP
コンパイラ: lcc-win32

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

/* 改行文字を削除する */
void chomp(char* str) {while(*str) {if (*str == '\r' || *str == '\n') {*str = '\0'; break;} str++;}}

/* 文字列を空白で区切る */
void split(char strs[4][1024], const char* str) {
int i=0, count; char s[1024]; char* ptr;
strcpy(s, str);
chomp(s);
if ((ptr = strtok(s, " ")) == NULL) return;
strcpy(strs[0], ptr);
for (i=1; i<3; i++) {if ((ptr = strtok(NULL, " ")) != NULL) strcpy(strs[i], ptr);}
i=0; count=0; while (count<3) {if (s[i] == '\0') count++; i++;}
while (s[i] == ' ') i++;
strcpy(strs[3], s+i);
}
877870(続き):05/03/06 04:39:47
/* ディレクトリ内のファイル全てにコマンド処理をする */
void dirs(const char* dirname, const char* comname) {
char s[1024]; char s2[1024];
char strs[4][1024];
FILE* fp;
int i;
static int flag = 0;

if (dirname[0] == '.') {if (flag == 0) flag = 1; else return;}
chdir(dirname);
system("chdir");
system("dir > temp.txt");
if ((fp = fopen("temp.txt", "rt")) == NULL) {printf("Can't open temp.txt.\n"); return;}
for (i=0; i<5; i++) fgets(s, 1024, fp);/* 最初の5行は無駄なので飛ばす */
while(1) {
fgets(s, 1024, fp); chomp(s); if (s[0] == ' ') break;
split(strs, s);
if (strs[2][0] == '<') dirs(strs[3], comname); else {sprintf(s2, "%s %s", comname, strs[3]); system(s2);}
}
fclose(fp);
system("del temp.txt");
chdir("..");
}
878870(続き):05/03/06 04:40:18
/* 第一引数にディレクトリ名、第二引数に実行したいコマンド名 */
int main(int argc, char** argv)
{
char buf[1024];
char* ptr;

if (argc != 3) {printf("Usage: %s directoryName commandName\n", argv[0]); exit(0);}
dirs(argv[1], argv[2]);
return 0;
}
879デフォルトの名無しさん:05/03/06 05:02:12
(´-`).o0(あー、漏れもC言語の練習にと似たようなの作ってみたことあったな… 恥ずかしい)

その方法で行くならもっとdirコマンドのオプションを駆使したほうがいいかと思われ
あと、リダイレクトしてるファイルの処理面倒だし tmpfile 使うとか



boostで幸せになれるけどCスレだからなぁ…
880デフォルトの名無しさん:05/03/06 05:42:40
>876
ありがとうございます!

試してみたところ、
第2引数にまずいコマンドを渡してしまっているせいか、
tempファイルが作成されたあたりで止まってしまいますが。

もう少しいろいろ試してみます。
881デフォルトの名無しさん:05/03/06 06:14:26
(ノД`)なんか恥の上乗せしちゃった
tmpfile使い所ないですね
882870:05/03/06 06:24:23
>>879
dir コマンドはあくまでもカレントディレクトリのファイル(とディレクトリ)
の一覧を得るためだけに使っていますが。
それと、tempファイルは使っているのですが・・・

>>880
第二引数に何を指定したの?そのコマンドの内部で chdir してなければ
大きな問題は発生しないと思うけど・・・
ちなみに、動作テストするときは第二引数に echo と書けば
ファイルに影響を及ぼさないで済みます。
カレントディレクトリを指定するときは . 第一引数に「.」と書きます。
それと、そのプログラムの実行速度はかなり遅いです。
ディレクトリが変わるたびにファイルの読み書きをするのが
原因かも知れません。そうでなければ、system コマンドが遅いことも
考えられます。
即興で作ったので、きめ細かな動作テストやエラー処理をちゃんと
やっていないです(スマソ)。
883870:05/03/06 06:26:30
>>881
???。temp.txtを使っていますが?
884デフォルトの名無しさん:05/03/06 06:44:56
>>882=870
たぶん、ディレクトリ取得だけなら
dir /ad /b
でいいんじゃない? ということだと思うよ。
885デフォルトの名無しさん:05/03/06 06:48:20
あ、ごめん。ファイルの取得がメインなら
dir /a-d /b
886870:05/03/06 06:53:59
>>884-885
dir コマンドのオプションを使えば、わざわざ文字列の分割とかをしないで
済みますね。それは盲点でした。
それを知らずに余計な労力を費やしていました。
ご指摘ありがとうございます。
887デフォルトの名無しさん:05/03/06 08:31:27
main()から dirz("/");、で、たぶん、うごく。貼。

#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
#include <sys/stat.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
void dirz(char *name) {
  DIR *d;
  struct dirent *dd;
  struct stat st;
  char out[256];
  if (strcmp(name, "/dev/fd") == 0 || (d = opendir(name)) == NULL )
  return;
  while ((dd = readdir(d)) != NULL) {
  strncpy(out, name, 256);
  if (strcmp(out, "/") != 0)
  strncat(out, "/", 1);
  if (dd->d_name[0] == '.')
  continue;
  puts(strncat(out, dd->d_name, 256 - strlen(out)));
  if (access(out, R_OK) == 0) {
  if ((stat(out, &st) != -1) && (st.st_mode & S_IFDIR))
  dirz(out);
  }
  }
  closedir(d);
}
888デフォルトの名無しさん:05/03/06 10:58:28
> なんか恥の上乗せしちゃった

上乗せ...
889デフォルトの名無しさん:05/03/06 11:00:02
find . -type f -exec ほげ {} \;

で一発だろ
890デフォルトの名無しさん:05/03/06 11:10:20
>>889
それは unix でしか使えない。
891デフォルトの名無しさん:05/03/06 11:15:04
ぼけ。MS-DOSの時代からあるわ! > find.exe
いまどきDOSプロンプトにそれいれてないやつはぼけ
892デフォルトの名無しさん:05/03/06 11:17:28
そう。むかしから標準コマンドのほうを殺してそっち生かすのがふつうだったね。
昔は、上書きしたり、標準のほうを消したりしてたけど、
いまのコマンドプロンプトはalias機能もあるので、そんなことしなくていいし。
893デフォルトの名無しさん:05/03/06 11:25:19
今度 FE試験を受けます。
過去問の疑問ですが、

 平成16年秋 午後 問6 C言語
 (参考 ttp://www.rs.kagu.sut.ac.jp/~infoserv/j-siken/ )
解答部は4つとも通り過ぎてますが、最後から2行目は
 「*output = '\0' ;」ではなく「*output++ = '\0' ;」
に思えます。どう考えればよいでしょうか。
894890:05/03/06 11:32:30
>>891
find.exe がドス時代からあることは知ってる。
find のオプションのことを言いたかった。
そのオプションだと unix でしか使えないと言ったつもり。
895デフォルトの名無しさん:05/03/06 11:50:03
>>889
xargs使えよ。
896デフォルトの名無しさん:05/03/06 12:24:13
> find.exe がドス時代からあることは知ってる。

またまたしったかぶりしちゃってー
897デフォルトの名無しさん:05/03/06 12:25:01
> 「*output = '\0' ;」ではなく「*output++ = '\0' ;」

++するとなにかいいことあるわけ?
898デフォルトの名無しさん:05/03/06 12:29:57
>>893
何でデクリメントした方が良いと思ったの?
899デフォルトの名無しさん:05/03/06 12:44:36
質問です。
もし#includeを1つも使わなかったら、
ライブラリにまったく依存しないプログラムができるんですか?
900デフォルトの名無しさん:05/03/06 12:44:52
> find.exe がドス時代からあることは知ってる。
イタタタ
901デフォルトの名無しさん:05/03/06 12:45:41
>899
NO
902デフォルトの名無しさん:05/03/06 12:51:44
>>899
includeディレクティブを使わなくとも、
自分で .c の中にヘッダ書けばライブラリは使えるから、回答はno
903デフォルトの名無しさん:05/03/06 12:52:33
>>896
昔はDOSプログラマーだったから、find.exe が昔からあったことくらいは知っている。
証拠を出せと言われたら、DOS 時代の(プログラミングに関係する)知識を(多少)披露して見せる。

>>899
出来ないことはないけど、全ての入出力はライブラリを使うから、
無入力無出力の、何の意味もないプログラムしか出来ない。
904≠899:05/03/06 12:54:01
>>902
.c の中に書くヘッダとは?
905デフォルトの名無しさん:05/03/06 12:55:01
>>904
わ、ヘッダの内容だ、ごめん。
関数プロトタイプとか構造体とかね。
906899:05/03/06 12:59:06
インラインアセンブラを使った場合などはどうなるんでしょう?
907デフォルトの名無しさん:05/03/06 13:01:32
>>906
は?
スレ違いでは?
908デフォルトの名無しさん:05/03/06 13:04:10
>899
答えはno
C言語では関数宣言はオプション、つまりヘッダはなくても何の問題もなくライブラリ関数を使える。
細かく言うとライブラリを使う、つまりリンクするはリンカの仕事。
includeの関数宣言を見てそれと整合性がある使い方をしてるかチェックするが、コンパイラの仕事。
んで、宣言がなければこのチェックもなくなるので、
あとはリンカがリンクさえすればよいので、includeの有無つまり関数宣言の有無は無関係。
909デフォルトの名無しさん:05/03/06 13:04:11
>>905
了解。

>>906
インラインアセンブラから外部入出力装置にアクセスすることになるので、
結局はライブラリを自分で作るのと同じくらいの労力が必要になる。

というか、ライブラリを使わないメリットなんてあるんだろうか・・・・・・
910デフォルトの名無しさん:05/03/06 13:04:36
>>903
はいはい。find.exeが昔からあるってことを知ってるのはわかったから
911899:05/03/06 13:17:00
いや、libcって、5と6と2.0と2.1と2.2の間で互換性がないんですよね?
そしてこれから新しく出てくるバージョンも互換性がないわけで、
ライブラリに依存しないプログラミングができたらいいなと思ったわけで。
どうもありがとうございました。
912903:05/03/06 13:23:37
>>910
信じてないだろ?

INT86H とか、dosshell とか、640KB の壁を EMS のページングで処理するとか、
浮動小数点計算は遅いから全部整数化するとか、
MS-DOS 5.0 以降はアセンブラなどの開発用ツールが別売りになったとか、
FM音源とか、メモリの一部がそのまま VRAM になっていたとか、
INT命令は86h以外はハードウェア制御で86hが MS-DOS のシステムコールだとか、
ストップボタンを押してから電源を切るとか、4096色中16色モードとか、
昔から DOS を扱ったことが無ければ出てこないキーワードを幾らでも挙げることが出来る。

しまった、釣られてしまったorz
913ゆう:05/03/06 13:23:56
大学でファイルをやってるんですが、
ファイルをオープン、文字を1文字づつ読み込んで表示、
クローズ、オープンの時のエラー処理あり。のプログラムを
Cでお願いします。
914デフォルトの名無しさん:05/03/06 13:30:10
>>913
int main(int argc, char** argv) {
FILE* fp;
int c;
if ((fp = fopen(ファイル名, モード)) == NULL) {printf("File can't open.\n"); exit(0);}
while ((c = fgetc(fp)) != EOF) {fputc(c, stdout);}
exit(0);
}

モードは、r が読み込み、w が書き出し、t がテキストモード、b がバイナリモード。
そのファイルがテキスト形式だったら、モードに "rt" を指定する。
915914:05/03/06 13:31:00
あ、最後の exit(0) の前に、
fclose(fp);
を忘れていた。
916デフォルトの名無しさん:05/03/06 13:35:20
まあ、exit()したらfclose()されるけどね。
917デフォルトの名無しさん:05/03/06 13:36:22
おお>>914
マルチにこたえるとはなにごとだ
918デフォルトの名無しさん:05/03/06 13:39:34
>>912
チラシの裏はいいからさ、find.exeが何をするためのコマンドなのか知ってから喋ってね。

find.exeのオプションを知ってる割に何をするのか知らないでこんだけ語っている元プログラマの人って(^^;
919ゆう:05/03/06 13:41:05
すいません
914さん。
あの‥もっと簡単で、初心者的なプログラムでお願いしたい!!
それか、これがもっとも簡単っすか??
申し訳ない‥
920デフォルトの名無しさん:05/03/06 13:43:10
>>912
うぜぇよ。
921デフォルトの名無しさん:05/03/06 13:43:38
>>919
二度とくるな
922デフォルトの名無しさん:05/03/06 13:43:54
>>919
宿題なら他所で。
923デフォルトの名無しさん:05/03/06 14:03:58
>>916
fopen には fclose が無いと気持ち悪い。単に心理的な問題だけど。

>>917
スマソ

>>918
>チラシの裏はいいからさ、find.exeが何をするためのコマンドなのか知ってから喋ってね。
多数のファイルの中から特定の文字列を含むファイルを探すコマンド?
というか、find.exe は検索の目的でしか使ったことがないから良く分からない。
何度も言うように、オプションの形式が明らかに DOS と異なっていて、
unix 形式だったから、find ≠ find.exe と考えて発言したまでのこと。

>>919
>>914以上に簡単に書くことは出来ない。
よく使うから、ファイル操作をするプログラムを5〜6個くらい作れば、
反射的に書けるようになる。

というか、マルチはやめよう。
924893:05/03/06 14:06:59
>>897自分はこう思い込んでいます。
 ↓
最後に whileから脱して outputの末尾に \0 を付け加える。
「付け加える」のだから
( if内の「 *output++ = '\%' ; 」と同様に) ++でインクリメントするべき。
925デフォルトの名無しさん:05/03/06 14:07:01
K&Rについてなんだが
この本の演習の回答例を見てみたいと思って、次のサイトを見つけたんだけど
このプログラムは模範になるレベルかな?アドバイスキボンヌ(ちなみに全文英語(゜W゜)∩

ttp://users.powernet.co.uk/eton/kandr2/index.html
(The Prgramming Language C Ansers To Exercise / Richard Heathfield)
926デフォルトの名無しさん:05/03/06 14:12:37
>>923
>>910だけどさ勝手に暴走して>>912書いて「釣られてしまった」って、何?

だから、あんたはfind.exeがあるのを知ってる程度ってことでいいじゃねーか?
漏れはそれがわかった、ってしか言ってないんだが。
927923:05/03/06 14:29:19
>>926
言い方が悪いから、その言い方に合わせて発言しただけ。

>だから、あんたはfind.exeがあるのを知ってる程度ってことでいいじゃねーか?
>漏れはそれがわかった、ってしか言ってないんだが。
それならそうと早く言ってくれれば良かったのに。
わざわざ人を馬鹿にするような言い回しをするから話がややこしくなる。
いくら2ちゃんねるでも最低限のネチケットは守れよ。釣りや煽りの意図がないんだったら。
928デフォルトの名無しさん:05/03/06 14:35:51
>>924

char *p = output;

*output++ = '%';      p[0] = '%';
*output++ = chars[ ];   p[1] = chars[ ];
*output++ = chars[ ];  p[2] = chars[ ];
*output = '\0';       p[3] = '\0';
929デフォルトの名無しさん:05/03/06 14:39:24
>>927

>>だから、あんたはfind.exeがあるのを知ってる程度ってことでいいじゃねーか?
で、これに異論があるわけなのか?

ないんだろ?
930927:05/03/06 14:49:48
>>929
>で、これに異論があるわけなのか?
無いよ。言い方に気をつけないと駄目だということしか言ってない。
内容はまともでも、言い方一つで印象が全く変わってくる。
煽りだと思われたくなければ言い方に気をつけろと言いたい。
それ以上のこともそれ以下のことも言っていない。

というか、もうこの話はやめよう。
931デフォルトの名無しさん:05/03/06 14:51:24
>>927
プ
釣られる意図がないなら釣られるなよ。
DOS時代からプログラマやってて、Unixのfindがどんなコマンドか知らないのも驚きだけど、
話の流れでfind.exeじゃ初めから目的に合わないってことも理解できない当たり終わってるがな。
932デフォルトの名無しさん:05/03/06 15:00:08
>>927
もし煽りだったとしても、スルー出来ないと自分が荒らしや煽り扱いになるよ
(上の方のレスよんだけど、find知ってても知らなくてもどうでも良いし、それをアピールする必要も無かったんだし)

仕様がどうこうで揉めたりして、もう900超えてるし……
933927:05/03/06 15:03:06
>>931
>プ
>釣られる意図がないなら釣られるなよ。
釣られる意図?面白い日本語だw

>DOS時代からプログラマやってて、Unixのfindがどんなコマンドか知らないのも驚きだけど、
DOS時代は中学高校に通っていたんだよ。そこのパソコンのOSがDOSだけだったから、
DOSの知識は身についてもUnixの知識は(当時は)皆無だった。

>話の流れでfind.exeじゃ初めから目的に合わないってことも理解できない当たり終わってるがな。
だから目的に合うプログラムを書いたんだよ。頭大丈夫?
934デフォルトの名無しさん:05/03/06 15:06:35
うわぁ…元プログラマがお手前披露したかったのかな

>>931
それを言っちゃ(ry
935927:05/03/06 15:06:49
>>932
>もし煽りだったとしても、スルー出来ないと自分が荒らしや煽り扱いになるよ
スマソ。つい頭に血がのぼってしまった。

>(上の方のレスよんだけど、find知ってても知らなくてもどうでも良いし、それをアピールする必要も無かったんだし)
文面から「find.exeを知らないんだろwバッカジャネーノ」という雰囲気が漂ってきたから、
つい無駄にアピールしてしまった。
936デフォルトの名無しさん:05/03/06 15:08:16
と、脳内で補完しますた
937デフォルトの名無しさん:05/03/06 15:11:00
>>934
>うわぁ…元プログラマがお手前披露したかったのかな
元も何も、現役で日常的にプログラムを書いているのだが。
書き方が悪かった。実務経験は無くて、高校までは趣味で、
大学に入ってからは趣味+授業の課題でプログラムを作っていたから、
プログラマーを自称した。断じてプログラミングを引退したわけではない。
938デフォルトの名無しさん:05/03/06 15:14:53
>>937
ここではなくHSPとかPerlのスレが面白いよ。きっと。
939デフォルトの名無しさん:05/03/06 15:16:06
なぜにfindでここまで熱くなれるのか…
940デフォルトの名無しさん:05/03/06 15:20:07
暇なんでしょ
941デフォルトの名無しさん:05/03/06 15:22:16
DOSおやじきもおおおおお
942デフォルトの名無しさん:05/03/06 15:32:58
>>938
何故?

>>939
大いに煽られたから。

>>940
大きなお世話だ。

>>941
ハァ? DOS知ってたらオヤジという短絡的発想しか出来ないの?
漏れはまだ20代だよ、失礼な。
943デフォルトの名無しさん:05/03/06 15:46:47
>>942
>>935の反省はどこに消えた?
944デフォルトの名無しさん:05/03/06 15:52:07
>>942
いい加減にしろ。他所逝け他所。
945デフォルトの名無しさん:05/03/06 16:13:56
とりあえず次スレいってみよ〜w
テンプレ・タイトルに希望ある人どうぞ。なければ現行のままでいきますぃ
946デフォルトの名無しさん:05/03/06 16:15:20
> 文面から「find.exeを知らないんだろwバッカジャネーノ」という雰囲気が漂ってきたから、
> つい無駄にアピールしてしまった。

というか、DOSの時代にフリーソフトで有名だったfind.exeは
「. -type f -exec {} \;」みたいなパラメーターやオプションが「そのまま」
使えるのがウリだったんだから、「あったのはしってる。だがそのようなオプションは」云々
いうやつってのは、ただの「しったかぶりオヤジ」だということだよ。
947デフォルトの名無しさん:05/03/06 16:17:16
で、昔だったらDOSについているfind.exeを「上書きする」か、
そっちを消すことによって同じ名前のfind.exeを生かしてたのだが、
いまどきのコマンドプロンプトなら「alias」がつかえるので、そんなことしなくていい、
っていうわけだ。
948デフォルトの名無しさん:05/03/06 16:19:05
> fopen には fclose が無いと気持ち悪い。単に心理的な問題だけど。

こういうまぬけなこというぼけは、じゃあfreopenだったらどう思うんだろうね ;-P
それにもfcloseつける?
949デフォルトの名無しさん:05/03/06 16:21:26
> INT86H とか、dosshell とか、640KB の壁を EMS のページングで処理するとか、

そんなの使ってたようじゃだめだね。history.comとかその手のフリーソフトがでてくる前に
ditから出てたH-SHELLを使っていてこそDOSプログラマー
950デフォルトの名無しさん:05/03/06 16:22:55
> ストップボタンを押してから電源を切るとか、4096色中16色モードとか、
> 昔から DOS を扱ったことが無ければ出てこないキーワードを幾らでも挙げることが出来る。

あのー、それはDOS云々ではなく「PC-9801独自」の仕様だが。
951デフォルトの名無しさん:05/03/06 16:27:03
> テンプレ・タイトルに希望ある人どうぞ。なければ現行のままでいきますぃ

Part 100近辺のがよかったなあ。
952デフォルトの名無しさん:05/03/06 16:28:41
> 文面から「find.exeを知らないんだろwバッカジャネーノ」という雰囲気が漂ってきたから、

これで話をされるのはまじで怖い。勘弁してくれ。
953942:05/03/06 16:35:54
>>943
一応冷静にレスしているのだが。

>>944
言われなくても、区切りのいいところで逝くよ。

>>946
フリーソフトだったとは・・・・・・てっきりDOSコマンドだとばかり思ってたorz
しつこいようだけど、漏れはオヤジじゃない。

>>948
freopen は使ったことがないから分からない。

>>949
当時はネットが使えなかったから、全然分からないorz
大学に入るまでスタンドアローンでしかパソコンを使ったことがないOTZ

>>950
間違えたorz
当時はPC98シリーズのDOS環境しか知らなかったから、PC98とDOSを混同していた・・・・・・


ああ、漏れは何て無知だったんだorzorzorz
ちょっと首吊ってくる。
954デフォルトの名無しさん:05/03/06 16:36:11
以後、次スレの話題以外禁止。
955945:05/03/06 16:38:47
>>951
Part.100近辺のってどれだ?; ドレモオナジダ・・・
ttp://nssearch.hp.infoseek.co.jp/clang/(過去ログ)
956デフォルトの名無しさん:05/03/06 16:39:03
>954
なんですと!?
957デフォルトの名無しさん:05/03/06 16:39:16
>>890
unix でも使えない
958デフォルトの名無しさん:05/03/06 16:39:44
やーい おやじ > しつこいようだけど、漏れはオヤジじゃない。
959945:05/03/06 16:39:59
>>954
荒らし軍団は、スレ埋め立て部隊ということでw
960デフォルトの名無しさん:05/03/06 16:42:59
>>903
メモリマップドI/Oは?
あの時代、いちいちドライバ書くとは限らなかったぜ
それから、無入力無出力でちゃんと意味のあるコードときどき書くぞ
961デフォルトの名無しさん:05/03/06 16:43:05
あれ? にせもののほうのPart 100が収録されてるのかな? そこには
100だったか99だったかは2つずつあったはず。
962デフォルトの名無しさん:05/03/06 16:44:25
>>917
スレ違いを看過しながらたかがマルチなんぞ指摘するおまえさんもおかしいぞ
963945:05/03/06 16:44:45
>>961 あ、マジっすか よくわからんのでw、具体的にどうぞ
964デフォルトの名無しさん:05/03/06 16:46:41
【隔離】C言語なら俺に聞け! Part 104【隔離】
965デフォルトの名無しさん:05/03/06 16:46:59
「きけ」はPart 78みたいな字がいいな
966デフォルトの名無しさん:05/03/06 16:49:00
>>965
それ言ったら、「言語」もPart 78みたいにつけないほうがいいだろ

さすがにかっこわるい > C言語
967デフォルトの名無しさん:05/03/06 16:51:57
>>948
fclose(stdin); を書かないのは stdin = fopen(); をした階層ではないモジュールを書いているときで
誤魔化しも矛盾もしていない、通常どおりポリシーに従ってやっていることだ
968デフォルトの名無しさん:05/03/06 16:54:20
だーかーらー stdinをfreopenしたらどうするの? ってきいてるの > 967
969デフォルトの名無しさん:05/03/06 17:00:54
そうね
Part 95みたいなAA貼ってくれ!
970945:05/03/06 17:03:59
>>969 ほーい。すきなAA言ってくれ
971デフォルトの名無しさん:05/03/06 17:04:17
>>968
stdin を fopen した階層で fclose が行われる予定の場所に、fopen されたオブジェクトを置いているだけだ
972デフォルトの名無しさん:05/03/06 17:04:57
95も2つあるね
973945:05/03/06 17:09:18
一応試作品ぬるぽ
------------------------
Cなら俺に訊け! Part 78

1 名前:デフォルトの名無しさん
  ヘ_ヘ     まず問題を冷静に吟味して
 ミ ・ ・ ミ   Cの話か否かをはっきりさせてから質問しましょう。
  (  ° )〜  質問する前には最低限検索を。http://www.google.co.jp(google)

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

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

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

各種リンク、関連スレは>>2-4あたり

【前スレ】C言語なら俺に聞け! Part 103
http://pc5.2ch.net/test/read.cgi/tech/1109394073/
他の過去ログはここ
http://nssearch.hp.infoseek.co.jp/clang/
974945:05/03/06 17:09:50
2 名前:デフォルトの名無しさん
■関連スレ■
【独習C】猿69【猿プログラミング研究室 part10】
http://pc5.2ch.net/test/read.cgi/tech/1100367391/
【初心者歓迎】C/C++室 Ver.14【環境依存OK】
http://pc5.2ch.net/test/read.cgi/tech/1108924728/l50
C言語の第一歩
http://pc5.2ch.net/test/read.cgi/tech/1031374980/l50

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

《開発環境》
★初心者にVisual C++を教えるスレ★ Part17
http://pc5.2ch.net/test/read.cgi/tech/1107926989/l50
Borland C++ BuilderX
http://pc5.2ch.net/test/read.cgi/tech/1065260556/l50

《C++/C#》
C++相談室 part39
http://pc5.2ch.net/test/read.cgi/tech/1106527792/2-20
C♯相談室 Part22
http://pc5.2ch.net/test/read.cgi/tech/1109630502/

■推薦図書/必読書■
推薦図書/必読書のためのスレッド PART 22
http://pc5.2ch.net/test/read.cgi/tech/1106175218/l50
プログラム技術板 推薦図書/必読書
http://tito.fc2web.com/2ch/tech/index.html
975945:05/03/06 17:10:19
3 名前:デフォルトの名無しさん
■コンパイラ■
gcc
http://gcc.gnu.org/

《Win32用の開発環境のみ。》
gcc-cygwin
http://www.cygwin.com/
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/
Visual C++ Developer Center: Microsoft Visual C++ Toolkit 2003
http://msdn.microsoft.com/visualc/vctoolkit2003/

《ライセンスや機能などに問題あり》
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
976945:05/03/06 17:11:10
えー残り少ないけど、なんか希望があったらドゾ
977デフォルトの名無しさん:05/03/06 17:13:42
スレタイはこうしてくれ!

【隔離】Cなら俺に訊け! Part 104【病棟】

こうしとけばアレな人は寄ってこなくなると思うが
978デフォルトの名無しさん:05/03/06 17:24:49
くさかべせんせいのHPリンクも
979945:05/03/06 17:28:54
スマソ連稿規制にあってた
>>977不吉だなwおk
>>978りょーかい。日下部って書いてくさかべって読むんだなwしらんかった
980デフォルトの名無しさん:05/03/06 17:31:43
日下部氏まで巻き込むな
981945:05/03/06 17:51:41
あーネタだったのか;失礼
982漏れは20代:05/03/06 17:55:27
吊る前に一言。

>>957
間違い大杉>漏れorz

>>958
漏れが幼稚園に入る前、8時だよ(ry を少しだけ見た記憶がある。
○井注は知らなくて、志○けんがドリ○ターズに入っていた。
幼稚園〜消防の頃、「まんが○本昔話」や「クイズダー○ー」を見ていた。
最後の倍率が「18、20、4、8、18」くらいだったのも覚えている。
一番左側に座っていたのは、最初は篠○教授だったが、途中から北○大教授になった。
消防の頃、「ひみつの○ッコちゃん」や「ド○ゴンクエスト(主人公○ベル)」を見ていた。
あと、「聖○士星矢(せ○んとせいや)」も見ていた。12宮の頃が一番好きだった。
覚えている技は、星矢→ペガサス流星拳、紫龍→魯山昇竜波、氷河→ダイヤモンドダスト、瞬→ネビュラチェーン、
一輝の鳳翼天翔。彼らはブロンズ聖闘士。あと、ジェミニのアナザディメンション、アフロディーテのロイヤルデモンローズ、
アーレス教皇の「げんろうまおうけん」などなど。
聖○士星矢の特徴は、何故か技を受けてから数秒〜数十秒後にダメージを受けること。
FC版DQ4が発売されたときには消防の高学年だった。発売日は2月11日。
AI戦闘機能搭載、五章に分かれたストーリー、エンドールのカジノでコイン838861枚を4Gで買える。
厨房の頃、「YAYAYA」などが流行した。
3年の頃、T-*OLAN の「マリア」などをよく聞いた。
工房の最初の頃、麻原が逮捕された。
テレビは「しあわせ○族計画」などを見ていた。
「たまごっち」が流行ったのも漏れが工房の頃。
大学に入ってから、浜○あゆみ(WHATE*ERなど)や宇多○ヒカル(Au*omaticなど)とかをよく聞いていた。

これだけ証拠を挙げても、まだ漏れをおやじ呼ばわりするつもりかと聞きたい。
テレビ番組や芸能人などから年齢を逆算すれば、馬鹿でも漏れがおやじでないことが分かるはずだ。
もちろん捏造なんかではない。小さい頃の記憶を思いついたままに書いただけ。
もし漏れがおやじだったら、上のようなことは書けないはず。さあ、誤りを認めよ。

これを書いているうちに日が暮れてしまったorz
983デフォルトの名無しさん:05/03/06 18:00:16
漏れどう考えても912の内容が分からん。どうやら色々と間違って覚えていたようだ。
86hのシステムコールとか知らんし。

int86関数も知ってるし、ファンクションコールINT 21Hも知ってたつもりだけど
最近のバージョンって違うん?

スレ違いだけど、埋め代わりってことで許して。
984(゜W゜):05/03/06 18:07:39
☆次スレ☆
【隔離】Cなら俺に訊け! Part.104【病棟】
http://pc5.2ch.net/test/read.cgi/tech/1110099763/
985デフォルトの名無しさん:05/03/06 18:25:19
>>982
馬鹿だな。若い振りするのは簡単なんだよ。
歳の離れた弟か従兄弟、或いは子供でもいればいくらでもその振りができるだろ。
そんなことも理解できないから「オヤジ」って言われているんだよ。
つまり実年齢がどうのではなく、言動が「オヤジ」なわけだね。

実際にDOSを知っている40前後の連中は頭が柔軟だから、あんたよりもよっぽど若々しいもんだよ。
986デフォルトの名無しさん:05/03/06 18:26:18
>>982
つーか、いい加減釣られるなや。
987デフォルトの名無しさん:05/03/06 18:27:58
> int86関数も知ってるし、ファンクションコールINT 21Hも知ってたつもりだけど

int86関数はLattice-Cについてたものだ。それをまねしたmscにも当然ついていたが、
最近のOSでは動かない。自己変更コードが含まれているからだ
988デフォルトの名無しさん:05/03/06 18:28:39
☆次スレ☆
VCならヨソへ逝け! Part.104
989デフォルトの名無しさん:05/03/06 18:31:07
unsigned char uchar[2];
int i;

uchar[0]=0xff;
uchar[1]=0xff;

for(i=8*2-1;i>=0;i--)
{
printf("%c",( *(uchar+1) & (1<<i) ) ? '1':'0');
}

結果を1111111111111111にしたいのですが、0000000011111111になります。
どうしてでしょうか?
990デフォルトの名無しさん:05/03/06 18:34:02
えー荒らしに巻き込まれてスルーされちまった>>925
このスレ埋め立てかねて教えてくだされ 頼みまつ
991デフォルトの名無しさん:05/03/06 18:36:32
>>990
スレ立て直したら教えてやる
992漏れは20代:05/03/06 18:39:28
>>968
freopen を使ったことがないからググらないと分からない。


他の証拠といえば、幼稚園児の頃に「にこにこぷん」を見ていた。
登場キャラクターは「じゃじゃまる」「ピッコロ」「ぽろり」
ピッコロが「ピッコ!」と言いながら地面を蹴ると残り二人が倒れる。
ぽろりは「いよいよ」と泣く

消防の頃からファミコンするようになった。最初にやったゲームがスーパーマリオ。
1−2のゴール直前の土管のところから−1面に行けた。
3−4か4−4の無限ループに苦しんだ。
斧を取ると同時にクッパに触れると、サイズは大きいままだけど1回敵に当たると死ぬ。
スーパーキノコを取ると小さくなり、ファイアーフラワーを取るとチビファイアーマリオになる。

この(消防の)頃が藤子不二雄の最盛期だったような気がする。
プロゴルファー猿、ウルトラB、忍者ハットリくん、パーマン、オバケのQ太郎、
エスパー魔美(テレポーテーション1回で移動できる距離は600m)、
怪物くん、ビリ犬(ガリ犬は100万円以上のお金を見ると気絶する)、
ドラえもん、キテレツ大百科、チンプイ(主人公エリが何故か「殿下」と結婚するように迫られる)、
21エモン(オープニングテーマを光GENJIが歌った)、などなど。

消防低学年の頃、美空ひばりが死んだ。
消防半ばの頃、昭和天皇崩御。テレビでは天皇の事しか放送しないから、
ビデオ屋はかなり儲かったらしい。
消防高学年の頃、東京の電話番号(市内局番)の頭に3がついて4桁になった。
消防の頃と言えば、千代の富士(名は貢(みつぐ))が横綱だった。
朝潮や北天佑もいた。千代の富士は、断髪式のときに涙を流していた。

あと、国鉄がJRになったのも漏れが消防の頃だ。テレビで、国鉄のことを
「国 金矢」と放送していたのも覚えている。
993デフォルトの名無しさん:05/03/06 18:40:05
http://qb5.2ch.net/test/read.cgi/operate/1094981854/

◆スレッドが1000に到達したときに表示される1001の内容の変更依頼を扱います
  すでに独自の1001表示が設定されている場合には
  板URLの後ろに「1000.txt」を入れることで、その内容を表示することができます
  [ 例 ] http://xxx.2ch.net/xxx/1000.txt

◆申請する場合は、以下の形式に添って書くようお願いします
  1 対象となる板のURL
  2 議論したスレッドのURL
  3 変更理由
  4 1000.txtの本文

  ※1000.txtの本文はタグ付きでお願いします(改行は<br>など)
    リンクは自動で貼られるのでAタグは必要ありません

ってどうよ?
994デフォルトの名無しさん:05/03/06 18:40:24
>>989
BigEndiganかLittieEndian環境かでかわってくるので、
「そんなキャストはしてはいけない」の典型だ。ぼけ
995デフォルトの名無しさん:05/03/06 18:42:01
ちがうだろ。
uchar にしようが、uchar + 1にしようがそこを「unsigned char」として1バイト分
とりだしてシフトしたものだ。隣にどんな値があるかは無関係。
996デフォルトの名無しさん:05/03/06 18:42:42
> freopen を使ったことがないからググらないと分からない。

freopenもつかったことないくせに、fcloseについてえらそうなこと言うなよ ぼけ
997デフォルトの名無しさん:05/03/06 18:44:38
このスレのNGワード

ぼけ
998989:05/03/06 18:44:47
>>995
ありがとうございます。
999デフォルトの名無しさん:05/03/06 18:45:22
隔離スレへようこそ!
1000デフォルトの名無しさん:05/03/06 18:46:15
つまんねー>>1000だな
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。