[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 10/12 17:35 / Filesize : 240 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け(入門篇) Part 12



1 名前:デフォルトの名無しさん [2007/05/08(火) 19:39:26 ]
C言語の入門者向け解説スレです。 
・C++言語はスレ違いです。 
・分からない事をなるべく詳しく書いて下さい。 
・ソースコードを晒すと答えやすくなるかもしれません。 
・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 

前スレ 
C言語なら俺に聞け(入門篇) Part 11
pc11.2ch.net/test/read.cgi/tech/1176800483/

過去スレ
Part 1 ttp://pc8.2ch.net/test/read.cgi/tech/1146700389/ Part 2 ttp://pc8.2ch.net/test/read.cgi/tech/1153818463/
Part 3 ttp://pc8.2ch.net/test/read.cgi/tech/1160682950/ Part 4 ttp://pc8.2ch.net/test/read.cgi/tech/1162999861/
Part 5 ttp://pc8.2ch.net/test/read.cgi/tech/1165022193/ Part 6 ttp://pc10.2ch.net/test/read.cgi/tech/1167325490/
Part 7 ttp://pc10.2ch.net/test/read.cgi/tech/1170064980/ Part 8 ttp://pc11.2ch.net/test/read.cgi/tech/1171946674/
Part 9 ttp://pc11.2ch.net/test/read.cgi/tech/1173284217/ Part 10 ttp://pc11.2ch.net/test/read.cgi/tech/1174290325/

関連スレ
C/C++の宿題を片付けます 86代目
pc11.2ch.net/test/read.cgi/tech/1176996941/
くだすれC言語(初心者用) Part.2
pc11.2ch.net/test/read.cgi/tech/1172099763/
スレを勃てるまでもないC/C++の質問はここで 2
pc11.2ch.net/test/read.cgi/tech/1178503366/l50
はきだめC/C++下級者の質問箱 2
pc11.2ch.net/test/read.cgi/tech/1156206091/l50

【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html

2 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 19:41:30 ]
前スレ>>996
char c;
char str[100];
もしかしてこのcとstrが同じだと思ってるとか?

3 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 19:45:33 ]
996じゃないけど

C言語の場合
char c; /* 文字型の宣言 */
char str[100]; /* 文字列型の宣言 */

Java とか C# とか
char c;
string str;

こういうことなのかな?なんか変なかんじがする…

4 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 19:47:26 ]
その本はstrがポインタというような事を言ってるはず。
さすがにcがポインタだとは言わないだろ。

5 名前:デフォルトの名無しさん [2007/05/08(火) 19:48:20 ]
>>2
違うんですか?

6 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 19:48:38 ]
str はある意味ポインタと言えなくはないが、
少なくともポインタ変数ではないし、
ポインタと説明してる紛らわしい本はあって欲しくない。

文字列をポインタを通して渡す、程度の話をしてるんでないかな。

7 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 19:50:27 ]
前スレ975は期待する動作と実際の動作を書けよ。
上手く動かないだけじゃ何を意味してるのか曖昧だぞ。

8 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 19:52:17 ]
>>3
Cには文字型も文字列型もない

9 名前:デフォルトの名無しさん [2007/05/08(火) 19:56:10 ]
>>7
期待している動作
printf ("%d\t%d\n",ran,kai);を10回実行し、11回目のループ時にEndを吐き出す

表示例は、以下の様な感じ
32  1
1   2
176 3
43  4
22  5
11  6
299 7
231 8
32  9
98  10
End

実際の動作
何も表示されない

やっぱりgotoじゃ無理なんですかね?

10 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 19:56:59 ]
前スレ>>990
授業とかはあくまで補助や学習スケジュール管理と考えたほうがいい
専門学校なんかは1年〜数年単位ですべてが学べるようになっているはずだから
教え方や進歩速度に不満があるならとりあえず教科書読んで池
ポインタもそのうちしっかりやるだろ



11 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 19:58:55 ]
全ての制御文は if と goto で書けるから
goto で無理なんてことはあり得ない。

12 名前:デフォルトの名無しさん [2007/05/08(火) 20:05:00 ]
プロンプトのコピペ

C:\KD\sk\practis\goto>bcc32 goto.c
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
goto.c:
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland

C:\KD\sk\practis\goto>goto

C:\KD\sk\practis\goto>goto

C:\KD\sk\practis\goto>

13 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 20:11:09 ]
practisだから失格

14 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 20:11:52 ]
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
 int ran;
 int kai;

 srand((unsigned)time(NULL));

 kai = 0;
LOOP:
 if(kai >= 10) { goto END; }
  ran = rand() % 300 + 1;
  printf("%d\t%d\n", ran, kai);
  ++kai;
 goto LOOP;
END:
 puts("End");

 return 0;
}

15 名前:デフォルトの名無しさん [2007/05/08(火) 20:17:03 ]
>>14
>>12と同じ状況になりますが・・・

16 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 20:18:16 ]
ちゃんとコンパイルしてるか?

17 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 20:19:16 ]
どうせどっか書き写し間違えてんじゃないの?

18 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 20:19:48 ]
>>15
っ .\goto
っ goto.exe

19 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 20:20:51 ]
訂正
goto.exe

.\goto.exe

20 名前:デフォルトの名無しさん [2007/05/08(火) 20:21:36 ]
>>16-17
してますよw
証拠
www.imgup.org/iup378065.png

因みにclでコンパイルしても結果は同じでした
これがVISTA QUALITY?



21 名前:デフォルトの名無しさん [2007/05/08(火) 20:23:51 ]
>>18-19
しまった、gotoはコマンドなのか・・・
これで解決しました

済みませんでしたあああ(ノ-`)

22 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 20:24:16 ]
>>20
プロンプトのコマンドと被るような名前をやめればおk
copy dir del mkdir などなど

23 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 20:25:54 ]
そういうオチかw
なるほど

24 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 20:26:06 ]
さすがにファイル名をgotoにしてるとは誰も予想できなかったなw

25 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 20:29:01 ]
いやいや、>>12 で気づくべきだった。
俺も失念してたぜ。

26 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 20:29:27 ]
完全に予想外だったぜ…

27 名前:デフォルトの名無しさん [2007/05/08(火) 20:30:45 ]
.exeつけたら全スレのソースでも動きました!!
感激です><

因みに、ファイル名の8割が関数名なので、こういうことは偶にあったんですが
今回はコマンドエラーが出なかったので全然気付きませんでした(ノ-`)

28 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 20:32:04 ]
なるほど べんきょうになったw
ついでにpractisも直したといたほうがいいぞw

29 名前:デフォルトの名無しさん [2007/05/08(火) 20:39:29 ]
>>27
全スレ→前すれ

>>28
>>13で言われて気付いたので直そうとしたんですが
システム系統以外、全部落としてもシステムから蹴られるので
今度再起動した時にでも直しておきます

30 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 20:53:51 ]
神代刹那?



31 名前:デフォルトの名無しさん [2007/05/08(火) 21:14:36 ]
webマトリックスにて、
セッションによるページ間のデータの転送の仕方がわからないのですが・・・

例えば、BMP(体脂肪の奴)を測定するプログラムで、
1ページ目で体重・身長を入力して
2ページ目で結果を表すという流れなんですが・・・


色々調べたり試行錯誤してみても全くわかりません。
ご教授願えませんか??

32 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 21:22:56 ]
>>31
C関係ない気がするが適当にエスパーして答えとく
・1ページ目で入力されたデータを何らかの識別子と共に保持しておく
・2ページ目にその識別子を埋め込んでおく
・2ページ目からの入力がきたら、識別子から保存してるデータと関連づける

33 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 21:25:16 ]
BMI?

34 名前:デフォルトの名無しさん [2007/05/08(火) 21:44:19 ]

       FOX★公認!!!

俺たちのクリックで日本を一位にしようぜ!!
“30年は日本に手は出せないな”という勝ち方をしたい
wwwww.2ch.net/test/read.cgi/news4vip/1178602852/

1. ポーランド  139,797,680
2. チリ     137,040,439
3. ★日本    86,475,213★
4. イスラエル  80,930,530
5. スロベニア  57,137,042
6. フィンランド  40,857,499

石を投げる戦争から人は進化・進歩を遂げ、剣や槍などの武器をもって戦うようになった
人間はさらに発展し兵器を使う戦争を始めた
そして今、指先一つを武器とした電脳戦争が勃発したのであった・・・
皇国を勝利へと導くには貴様らの参戦が不可欠である

・戦場
www.clickclickclick.com/default.asp
・まとめサイト
www33.atwiki.jp/clickvip/


35 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 23:50:42 ]
www.uploda.org/uporg802717.c.html
配列の大きさをただしく認識してくれないのですが、どこが間違っていますか?
内積を計算するプログラムです。
C言語むずい^^;

36 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 23:52:25 ]
>>35
スコープ外で宣言された配列の大きさは取得できない
関数引数で渡されるのはあくまで配列先頭へのポインタのみ

それができるならライブラリ関数でわざわざバッファサイズ指定したりしないだろ?

37 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 23:53:06 ]
>>35
ttp://www.kouno.jp/home/c_faq/c6.html#21

38 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:02:12 ]
しかしout ofの方のsizeof(v1)でいれてるv1というのもポインタのはずだ。
だったらこっちも4とでるべきなのでは?

39 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:05:53 ]
>38
>36

40 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:07:39 ]
サブルーチン限定仕様なんですね。
では、実際この関数で配列の大きさを求めるにはどうしたらいいのでしょう?
rubyでは.sizeでよかったんですが・・計算系はruby遅すぎて;;



41 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:09:49 ]
関数内で求めなければいい

42 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:11:32 ]
それじゃ関数じゃありません。

43 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:14:02 ]
ruby でもやってろw

44 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:18:10 ]
いやlinuxをしててC言語が必要なのでここは譲れません。
関数内でもいけるはずです。どうしたらいいでしょう?
もしやひとつひとつ取得していく系?

45 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:19:06 ]
>関数内でもいけるはずです
だからできんといっとろーが

46 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:20:20 ]
完全に不可能なんですか?

47 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:21:01 ]
不可能です。

48 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:23:10 ]
だから普通は配列の要素数も引数に与える

49 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:23:18 ]
count = 0

for(i=0; a[0]!=null; i++){
count++;
}

などは?

50 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:23:44 ]
null って何だよ。



51 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:24:11 ]
>>48
配列の要素数が未定なのですが?
ベクトルとベクトルを渡したら内積が得られる。
引数は2つのはずです。

52 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:25:12 ]
nilか。
nullじゃなかった・・・

53 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:27:39 ]
何言ってるか分からんが
無理なもんは無理 まじで無理

54 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:27:45 ]
疲れるなあ・・・。
政府の Ruby 計画が心配になってきたぞ。

>>51
要素数はどこかで分かってるはずだ。
inner_product 内に入ってしまうとどうやっても分からないから、
inner_product に要素数を渡すようにするしかない。

55 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:27:46 ]
nilって何だよ。

56 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:30:17 ]
(sizeof(配列)/sizeof(配列の要素))を引数に入れとけばいいんじゃ?

57 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:30:17 ]
>>51
ならその2つの要素数を渡す


58 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:31:21 ]
>>52
Cに nil はない


59 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:31:24 ]
引数が増えるのが嫌だったら、
値と要素数を持った構造体を作って管理しとけ。

60 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:34:12 ]
もうvectorクラスみたいなの自作するしか



61 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:34:51 ]
自作っつーか、ライブラリ拾ってこい。

62 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:34:53 ]
何こいつ
理解力無さ杉

63 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:40:54 ]
rubyのようにCもできると思っているんだろうね
rubyに汚染されすぎ

64 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:44:37 ]
rubyでは隠蔽されていた色々な事に全く気づいてなかったんだねぇ

65 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:55:38 ]
Cじゃそういったことはすべて自分で実装するかライブラリ使わなきゃいけないってのに
動的に確保したメモリも開放しなさそう

66 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:59:23 ]
自分で実装ってインラインアセンブラ使ったりするの?

と初心者が申しております

67 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 01:03:26 ]
そうそう、便利≒隠蔽の対価として、性能のトレードオフ
性能を求めるならば、対価の代償として、より低級言語のしがらみ、
メモリの動き、キャッシュの動き、CPUのプリフェッチぐあいを理解しないと速くはならないね

68 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 01:10:57 ]
もうおとなしくC++ & STL使うといいよ

#include <vector>
#include <iostream>

typedef std::vector<double> vec_t;
typedef unsigned int UINT;

double inner_product (const vec_t& a, const vec_t& b) {
typedef vec_t::size_type vec_sz;
vec_sz len(a.size());
std::cout << "length of a:" << (UINT)len << ", size of a[0]:" << (UINT)sizeof(a[0]) << '\n';
if (len != b.size()) {
std::cerr << "can not define inner product of these vectors" << std::endl;
return 0;
}
double ip(0);
for (vec_sz i = 0; i < len; ++i)
ip += a[i]*b[i];
return ip;
}
int main () {
// 1.3,0,1
vec_t v1;
v1.push_back(1.3); v1.push_back(0); v1.push_back(1);
vec_t v2;
v2.push_back(2); v2.push_back(3); v2.push_back(4);
std::cout << "length of a:" << (UINT)v1.size() << ", size of a[0]:" << (UINT)sizeof(v1[0]) << '\n';
std::cout << inner_product(v1,v2);
return 0;
}

69 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 01:13:11 ]
>>51
何言いたいのか意味不明だが、これで納得できないなら、そういうことが出来る他の言語使ってろ
読みづらいがJISのホームページでPDF化された奴も見れるから確認なり好きにしろ

6.5.3.4 sizeof演算子の注釈(84)
配列型又は関数型をもつと宣言された仮引数に適用する場合、sizeof演算子は、
型調整された(ポインタ)型の大きさを与える(6.9.1参照)。
                                    (JIS X 3010:2003より引用)

70 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 01:29:15 ]
>>68
要素数が欲しければtemplate使って配列の参照を引数にするだけでいいだろ。

まぁ俺ならそれ以前にstd::inner_product使うけど。



71 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 02:47:13 ]
テンプレート使ってやってみました
漏れの知識の程度じゃ読みにくくなるだけしたまる
#include <stdio.h>
#include <numeric>
#define ARRAY_SIZE(X) (sizeof(X)/(sizeof(X[0])))
#define INNER_PRODUCT(x,y) ( g( (x),(y), ( f((x),(y)) ) ) )
template <class T> size_t f(const T& a, const T& b) {
size_t len=0;
len = (ARRAY_SIZE(a));
if (len != ARRAY_SIZE(b)) {
puts("can not define inner product of these vectors");
return -1;
}
else
return len;
}
float g(const float a[], const float b[], size_t len) {
if (len == -1)
return 0;
float ip(0);
for (size_t i = 0; i <len; ++i)
ip += a[i]*b[i];
return ip;
}
int main (void){
float v1[3]={1.3f,0,1}; float v2[3]={2,3,4};
printf("out of function: %d,%d\n", sizeof(v1), sizeof(v1[0]));
printf("%f\n", INNER_PRODUCT(v1,v2) ) ;
return 0;
}


72 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 02:48:49 ]
float なんて精度悪いもの使うなよ。
double 使え、double 。

73 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 07:18:26 ]
>>71
訳の分からん自作マクロ使って可読性落とすぐらいなら
上で書かれてるように、Vector型とstd::inner_product()使えばいいだろ
なんのための標準ライブラリだと思ってるんだ

74 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 08:02:10 ]
先にJavaを試してみたら?
正直、Ruby→C はキツいだろ

75 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 08:12:31 ]
どう見てもこちらのほうが楽です、本当にありがとうございました
ってかこれってC?

#include <vector>
#include <numeric>
#include <iostream>

int main() {
using std::vector;
using std::inner_product;
using std::cout;

// float v1[3]={1.3,0,1}; float v2[3]={2,3,4};
vector<double> v1, v2;
v1.push_back(1.3); v1.push_back(0); v1.push_back(1);
v2.push_back(2); v2.push_back(3); v2.push_back(4);

double ip = inner_product(v1.begin(), v1.end(), v2.begin(), 0.0);
cout << "inner product:" << ip;

return 0;
}

76 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 08:17:36 ]
namespaceとかClassはC++の仕様ですよね?
Classがあるなら使いますよ。
でもね、C言語じゃないといけないんです。linuxのデフォだからね。
Cを勉強するのは計算が早いからとrubyのライブラリが作りたいから。
あとlinuxプログラミングがしたいから。

77 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 08:19:29 ]
CがLinuxのデフォってあんた……
それならC++でもいいでしょうが。

78 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 08:47:03 ]
確定したライブラリがない。
C++はもう終わった言語。手続き型にクラスをくっつけただけの言語でしょ。
純粋なrubyこそソフト開発に向いてるが、やはり速度がネック

79 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 09:03:56 ]
m9(^д^)プギャー!!

80 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 10:04:47 ]
勘違いや思い込みが激しいな
こんな奴rubyもたいしてできんだろ



81 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 11:35:39 ]
ディレクトリ名をジャスティスに変えるとすべてが上手くいく

82 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 13:37:48 ]
sizeof自体がどうなってるか分かりませんか?
あとC言語って自由に配列数を増やしたり減らしたり出来ない?
出来たらうれしい

83 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 13:45:54 ]
rubyじゃないんだから・・・

84 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 13:59:39 ]
>>82
sizeofは、コンパイル時にコンパイラが計算する。

配列要素数の増減はできないので、realloc()したりC++のvectorを使っ
たり。


85 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 14:11:39 ]
reallocというのは確保領域を変えるってことですか?
それなら手間が増えるだけで増減可能ですね。

sizeofはライブラリではないんですか?
sizeofはどうやって書かれているかを聞いています。

86 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 14:13:08 ]
C++は使わないことにしています。
なぜならC++はC言語の拡張とはいえないからです。
オブジェクト指向としてはrubyがもっとも純粋であることは確かですし
Cとの互換性が消えたので、linuxで使えません

87 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 14:28:35 ]
オブジェクト指向としての純粋性を追求する事に何の意味が?
Cとの互換性が不完全でもLinuxでC++は使えるが?

88 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 14:32:47 ]
>>85
sizeof はコンパイラが解釈する演算子の内のひとつです。関数ではありません。


89 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 14:33:51 ]
システムはCで書かれている。
C++では書かれていない。これは互換性が消えたことによるものである。
linuxといえばC言語
C++は窓用言語
rubyはクロスプラットフォームの純粋オブジェクト指向型言語

90 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 14:45:57 ]
つまりLinuxのシステムだけを書くためにCを勉強中って事?



91 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 14:49:08 ]
>>85
reallocはただの動的確保で配列関係ないから
配列の要素数増減は不可でFA

92 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 14:52:21 ]
rubyではどうやって配列の要素数増減ができると見せかけられたかを考えてみるといいよ。

93 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 15:44:37 ]
どうせRubyの事も大して分かってないんだろうな

94 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 16:05:07 ]
それは俺も思った

95 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 16:06:07 ]
突っ込みどころがあり過ぎるが、たぶん釣りだからガマン。
うちの会社に来ないことを祈る。


96 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 18:09:22 ]
>>91
メモリ確保した所を配列として扱うなら可能だと思うが。


97 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 18:52:22 ]
高級言語から入るとこれだからいかんな。
アセンブリ言語の洗礼を受けてくるといい。

98 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 18:59:53 ]
>>97
すいません。8080, Z80, 6502, 6800, 68000 ぐらいまでしかやってません。
この頃の x86 系についてはよく分かりません。


99 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 19:00:42 ]
釣り来た

100 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 19:26:05 ]
rubyはかなり分かってます。
linuxの為にCを勉強しています。当然です。ちなみにVine




101 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 19:27:04 ]
釣りくせー

102 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 19:29:37 ]
「かなり分かっています」 と自信を持って言う奴の 99% は、大して分かっていない。
なぜなら、言語の奥深さを知ってる者は、おいそれとそんな事は言えないからだ。
ほんの一握りのエキスパートか、Ruby 処理系の開発者か、
そうでなければ見栄っ張りの小物にしかそんな事は言えん。

103 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 19:48:15 ]
というかこういうやつほどコテつけて欲しいな
ただの騙りの可能性も否定できないし
もしすべて本人だったらかなり・・・


104 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 20:05:58 ]
Linux上で動くアプリケーションを作りたいだけなら、g++使えばいいだろうし、
Linuxのメジャーなディストリビュージョンなら、
g++がない(gccや下手したらccだけしかない)なんて状況を仮定する必要なんてないはず。

また、完全な互換性がない今のC++でも、それなりにCらしいコードも書けるし。
このスレで出てくるようなコードなら、ほとんどvoid*周りしか問題にならないと思う。

105 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 20:30:07 ]
なんか勘違いしている香具師が多いようだが、Cでも可変長配列はあるぞ。
それから、malloc()などで確保した領域を配列のように運用することはできてもそれは配列じゃないぞ。
#まぁ、可変長配列も伸び縮みできるわけじゃないがな。

106 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 20:32:41 ]
C99 なんてあってないような規格で語られてもな。

107 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 20:33:53 ]
意味わからん

108 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 20:38:23 ]
>>106
身近なところではgcc, icc, SunのccがC99準拠なんだが。
後二者はデフォルトだし。

109 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 20:39:02 ]
しかし、ほとんど使われていないのもまた事実。

110 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 20:40:00 ]
自分が使えないからといって、無闇に否定するのは如何な最中と。



111 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 20:40:08 ]
お前が使ったこと無いだけ

112 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 20:42:20 ]
>>105
どうやるんですか?可変長配列

113 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 20:42:49 ]
VC が準拠しない限り、使用人口は増えない。

114 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 20:43:57 ]
C99がOKでC++駄目ってのがよくわからん

115 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 20:43:59 ]
>>112
ttp://seclan.dll.jp/c99d/c99d04.htm#dt19990719

つーか、なんで「C99」ってキーワードまで書かれてるのに
自分で調べようとしないんだろうな

116 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 20:46:11 ]
使った事ないんじゃなくて、使う気がしないだけ。

117 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 21:24:47 ]
#include <stdio.h>

int main (void){
int a[3]={1,2,3};
a[3] = 4;
printf("%d\n", sizeof(a)/sizeof(a[0]));
printf("%d\n", a[3]);
return 0;
}

どうしてだお?


118 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 21:27:47 ]
>>117
printf("%d\n", a[3]); // Access Violation

119 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 21:28:22 ]
でないお
gccだけど

120 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 21:29:30 ]
どっちかっつーとこっちのがヤバい。
a[3] = 4;



121 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 21:30:05 ]
size is 3
a[3] is 4

こうなったお

122 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 21:30:16 ]
a[0] = 1;
a[1] = 2;
a[2] = 3]

a[3] = ?

123 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 21:30:19 ]
どうしてって何が?

124 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 21:31:27 ]
不変な表明ってこういうときに役に立つの?

125 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 21:37:05 ]
Cに不変表明なんかないだろ。

126 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 00:32:21 ]
assertがそれにあたるんじゃ

127 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 00:37:21 ]
>>117のなんて、そもそもインデックスと要素数の関係自体理解できてないんだから
assertとかそういう次元の問題じゃないだろ
あれは何かの拍子で変な値がインデックス用の変数に入り込んだりするのを発見するため

128 名前:31 [2007/05/10(木) 02:07:35 ]
>>32
それはわかるんだけど、それから先が全くわからなくて・・・
というかまず何を書けばいいのかもわからない・・・ド素人でスマン。

助けて・・・

129 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 02:09:41 ]
きもちわる・・・

130 名前:デフォルトの名無しさん [2007/05/10(木) 02:23:34 ]
webマトリックスてなんすか?
とりあえずGET,POSTとだけ言ってこ



131 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 09:18:45 ]
アク禁

132 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 14:51:22 ]
>>117
もしや a[3] = 4; の所で何かエラーが出て欲しかったのか?
ま、しかし、C言語は元々そんな生易しい言語ではないのだよ。


133 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 15:03:16 ]
だろうな
しかしなんでコンパイラ通っちゃうのかよくわからん


134 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 15:04:13 ]
そういうのでもコンパイルを通すように作られてるから

135 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 15:06:30 ]
文法的には正しいから

136 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 15:13:46 ]
>>117
JavaとかC#とかしかやったことが無い人?

137 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 15:19:34 ]
>>133
エラー出すようにするとコンパイラ作るのが面倒だろ

138 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 15:24:15 ]
なるほどw
先頭要素のポインタさえありゃ動くからあとはシラネってことか

139 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 15:59:43 ]
仕様通り

140 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 15:59:53 ]
indexに変数が入ってる場合に、その変数が取り得る値をチェックするには実行してみないと
わからないんじゃ?



141 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 16:01:47 ]
これを応用(悪用?)した技もあったしな
構造体の最後の要素を [1] にして、使いたい配列の大きさ分大きめにallocして使う

いつからか 1 無くてもコンパイル通るようになってたっけな

142 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 16:18:20 ]
JavaとかC#の配列だと境界チェックしてるから範囲外なら例外が投げられるけどCではそういうのが無いからね。
C#はLengthプロパティ使ってループ回す場合はチェックはオフになったり
monoのC#コンパイラには配列境界チェックをしないようにするオプションがあったりするけど
Cは常にチェック無し。
まぁチェックがある分安全で遅いか、無い分危険で速いかだな。Cは後者。

143 名前:デフォルトの名無しさん [2007/05/10(木) 16:48:32 ]
switchが上手く動作しないのですけれど、何処が可笑しいのか教えて下さい

/*
    もし小文字なら大文字を、大文字なら小文字を出力し
    エラーの後に再入力可否選択を要求する
*/

#include <stdio.h>
#include <ctype.h> // islowerやtoupperなどが含まれる

main () {
    char text;

first:

    printf ("アルファベットを入力して下さい\n");
    text = getchar ();
    
    // 大文字変換処理
    
    if (islower(text)) { // islower = 小文字であるかを判定
    text = toupper (text); // toupper = 大文字変換
    printf ("入力されたアルファベットの大文字は %c です。"
                ,text);
        } else if (isupper(text)) { // isupper = 大文字であるかを判定
    


144 名前: ◆awSK7mC37A mailto:sage [2007/05/10(木) 16:49:33 ]
    // 小文字変換処理
    
    text = tolower (text); // tolower = 小文字変換
    printf ("入力されたアルファベットの小文字は %c です。"
                ,text);
        } else {
        
        // エラー処理
        
    printf ("エラー\n"
                "アルファベット以外の値が入力されました。"
                "\n"
                "継続して入力しますか?\n"
                "Y/N");
    text = getchar ();
    


145 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 16:50:09 ]
        switch (text) {
        /*
            switchが何故か機能しない
            書式ミス?
        */
        case 'Y':   goto first;
        break;
        
        case 'N':   goto end;
        break;
        }
    }

end:

    return 0;
    }

>>144の名前は気にしないでください。。

146 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 16:59:12 ]
switchの式って整数型に限られるんじゃ無かったっけ?

147 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 17:00:40 ]
textはどう見ても整数型だろ

148 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 17:00:50 ]
いや、別にこれでいいけど、2回目のgetchar() では最初のgetchar()時に
入力した2文字目を取ってきてるからこうなる。
具体的には改行だな。それ以外でも2つ以上入れてりゃ同じだ

149 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 17:51:56 ]
alphabet以外の文字、たとえば 1 を入力してテストしてみると
swtich文に入って行かない。きっと1の後ろに"\0"とかあって
うまくゆかないのだろう。

text = getchar (); // ここで "\0" を喰わせる
text = getchar (); // きっと入力待ち状態になるはず

とか思ってしまったトーシローなのは俺だけでいいと思うんだ…orz

150 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 18:18:00 ]
わざわざそんなこと書かなくてもいいよ



151 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 18:25:13 ]
>>148
つまりどういうことですか?

152 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 18:36:47 ]
>>151
つまり、余分な入力バッファはクリアする必要がある。
getchar() なら、'\n' が来るまで読み捨てるとか。
while (getchar() != '\n')
  ;
例えばこんな感じで。 fflush(stdin); は物議をかもしそうなのでお試しでw
あとは、switch - case にdefault: は必要だと思うぞ、特に今回のは。

153 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 19:35:06 ]
>>151
scanf(" %c", ...) を使う。

154 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 19:38:20 ]
goto の使い所がダメな感じするな。
goto 使って見辛くしてどうする。
お前は昔の BASIC かと言いたい。


155 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 19:48:39 ]
どうでもいいけどgotoつかったらbreak;いらなくね?

156 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 19:55:41 ]
いらないが付けるクセはつけといてもいいかも
あとそれ以前に慣れないうちはdefault付けるクセをつけといたほうがいいと思う

157 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 21:41:52 ]
ANSI-Cを勉強してまだ日も浅いのですが

四則計算の 23 / 3 =7 アマリ 1

という風にアマリを出すにはどのようにすればいいのでしょうか?

158 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 21:42:09 ]
mod

159 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 21:42:37 ]
普通に%じゃあかんのか?

160 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 21:42:46 ]
%dane



161 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 21:43:44 ]
%d姉

162 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 21:46:32 ]
〜〜省略〜〜

int a,b,c;

scanf("%d",&a);
scanf("%d",&b);

c= a % b ;

printf("%d % %d =%d\n",a,b,c);

return 0;


でいいのでしょうか?

163 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 21:47:58 ]
だめ

164 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 21:48:10 ]
> printf("%d % %d =%d\n",a,b,c);
printf("%d %% %d =%d\n",a,b,c);

165 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 21:51:08 ]
あとbが0かどうかもチェックしたほうがいいな。

166 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 21:51:31 ]
>>162
bが0の場合どうするんだ?

167 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 21:53:19 ]
分岐か何かが必要なんですね、if 0〜〜とかそういう感じなんでしょうか

168 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 21:58:04 ]
聞く前にとりあえずコード書いてコンパイルしてみろ。

169 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 22:05:35 ]
if (*s && isalpha(*s)) {...}
が LinuxとSolarisで動作が違うのでgcc -Eで確認したらSolatisではisalpha(c)が
((__ctype+1)[c] & (0x01 | 0x02)) に展開されててLinuxではライブラリ関数呼んでました。
動作が違ったのは*sが負数になってたせいのようでした。(なぜ負のインデックスで__ctype配列
参照してcore吐かなかったか不思議ですが...)*sに入る整数値がなんでもありと
すると、ここは普通どう書きますか?
if (isascii(*s) && isalpha(*s)){...}
とかすればOK?

170 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 22:11:18 ]
>>164
%% って \n とかのエスケープシーケンスと同じものと考えておkですか?



171 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 22:12:19 ]
>>170
エスケープシーケンスで例えるなら \\ やね。

172 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 22:13:43 ]
>>169
is系関数に渡すときは unsigned char でキャストするのは定石。
もう多すぎて面倒なら、char を符号無しにするコンパイラのフラグを指定汁。

173 名前:デフォルトの名無しさん mailto:age [2007/05/10(木) 22:29:09 ]
UNIX環境でCを書いています。

FILE *fp
fp = popen("gnuplot", "w");
fprintf(fp, "plot sin(x) w lines \n");
pclose(fp);

としてgnuplotを呼び出すプログラムを作りました。
今の状態では、gnuplotが立ち上がってsin(x)の関数が一瞬だけ表示され、
gnuplotが直ちに終了してしまいます。
どこにどのような処理をすれば、gnuplotを表示させたままに出来るのでしょうか?

Enterキーなどを押すことで終了するようにしたいです。
よろしくおねがいします。

174 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 22:32:14 ]
>>172
それだけだとSJIS の時は、
全角文字の2バイト目で真になる可能性があるな。
リードバイトの判定とかした方がいい。
>>169 は EUC みたいだから大丈夫だとは思うが。

175 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 22:48:20 ]
>>173
system("gnuplot < data.txt");

とかじゃだめかな?
data.txtはあらかじめ作っておく。

176 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 22:49:27 ]
>>172,174
ありがとうございます。m(_;_)m
>is系関数に渡すときは unsigned char でキャストするのは定石。
助かります。

177 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 23:27:12 ]
>>173
とりあえず表示を残すだけなら "gnuplot -persist" とすれば良いけど、
グラフを表示しているプロセス(gnuplot_x11)のIDを
外部プログラムを使わずに見付けて殺す方法が分からん。

178 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 23:50:48 ]
system("gnuplot ... &")ではダメ?
真面目にプロセス管理したいならfork()/exec*()を使う羽目になるけど。

179 名前:デフォルトの名無しさん [2007/05/11(金) 06:20:36 ]
初歩的な質問ですがお願いします。
strlenなどの文字列を扱う関数は引数としてchar型の文字列への先頭ポインタをとります。
つまり、strlen(s)とすると配列sの先頭アドレスが渡され、結果が返ります。
しかし、strlen("test")とした際も結果は出力されます。
この"test"という文字列はどのようにプログラム内部で扱われるのでしょうか?
自動的に一時的にメモリに確保されるのでしょうか?

では宜しくお願いします。

180 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 07:31:33 ]
>>179
exeファイルの中に入ってるでしょ
実行時にどう配置されるかはシステムによる
プログラム上ではポインタとして扱われる



181 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 07:44:13 ]
>>179
ほぼ、static const char foo[] = {'t', 'e', 's', 't', '\0', }; strlen(foo);と同じ。

182 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 15:35:08 ]
クリリンのAAきぼん

183 名前:183 mailto:sage [2007/05/11(金) 20:29:09 ]
↓のソースで、☆印の行は何か意味があるでしょうか。
 あってもなくても変わらない気がするのですが...
( 環境:Windows Vista , Visual Studio C++ Express Edition )

#include <stdio.h>
#include <windows.h>

#define THREAD_NUM 4
#define DATA_NUM 12

typedef struct _thread_type {
int thread_no;
int *data;
CRITICAL_SECTION *cs;
} thread_arg_t;

void thread_func(void *arg) {
thread_arg_t* targ = (thread_arg_t *)arg;
int i, result;

for (i = 0; i < DATA_NUM; i++) {
// EnterCriticalSection(targ->cs);
result = targ->data[i] + 1;
Sleep(0); ☆
targ->data[i] = result;
// LeaveCriticalSection(targ->cs);
}
}



184 名前:183 mailto:sage [2007/05/11(金) 20:30:00 ]
int main() {
HANDLE handle[THREAD_NUM];
thread_arg_t targ[THREAD_NUM];
int data[DATA_NUM];
int i;
CRITICAL_SECTION cs;

/* データの初期化 */
for (i = 0; i < DATA_NUM; i++) data[i] = 0;

InitializeCriticalSection(&cs);

for (i = 0; i < THREAD_NUM; i++) {
targ[i].thread_no = i;
targ[i].data = data;
targ[i].cs = &cs;
handle[i] = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)thread_func,
(void *)&targ[i], 0, NULL);
}
WaitForMultipleObjects(THREAD_NUM, handle, TRUE, INFINITE);
DeleteCriticalSection(&cs);
for (i = 0; i < DATA_NUM; i++) printf("data%d : %d\n", i, data[i]);
return 0;
}


あとSleepは、
 ・0ミリ(引数の分)秒ウェイト状態にする。
 ・0はMPUを他の優先度のスレッドにのみ譲る。
 ということでしたよね?


185 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 20:30:46 ]
>>183
Win32では 「0を指定した場合、 スレッドは、 実行準備ができている同じ優先順位のほかのスレッドにタイム スライスの残りを譲ります。」

186 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 20:39:55 ]
なんでMSDN Libraryで調べれば直ぐ分かるような事を質問するんだろうな

187 名前:183 mailto:sage [2007/05/11(金) 20:40:06 ]
>>185
おーありがとございますー!!

188 名前:デフォルトの名無しさん [2007/05/12(土) 00:12:06 ]
printf("%s/n","Hello World");

上のprintf文の%sでどのように"Hello World"を処理しているのか分かりません。
どなたかご教授して下さい。


189 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 00:14:46 ]
意味が分からん。

190 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 00:15:28 ]
>>188
マルチうざい



191 名前:デフォルトの名無しさん [2007/05/12(土) 00:25:14 ]
>>190
すみません

192 名前:デフォルトの名無しさん [2007/05/12(土) 00:33:48 ]
>>190
ごめんなさい、でも教えてください蟹

  Viiv  
 ミ(エ)ミ....


193 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 00:35:48 ]
あのーコールバックの書き方が解からないのですが
助けてください。動作するサンプル提示してくれませんか?

194 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 00:37:14 ]
何のコールバックだよ…

195 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 00:37:38 ]
www.google.co.jp/search?num=30&hl=ja&rlz=1B2GGGL_jaJP208JP209&q=C%E8%A8%80%E8%AA%9E+%E9%96%A2%E6%95%B0%E3%83%9D%E3%82%A4%E3%83%B3%E3%82%BF&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=

196 名前:蟹NIC [2007/05/12(土) 00:37:47 ]
printf("%p/n","Hello World");

上のprintf文の%pでどのように"Hello World"を処理しているのか分かりません。
どなたか教えてください。 

  Viiv  
 ミ(エ)ミ....

197 名前:デフォルトの名無しさん [2007/05/12(土) 00:49:14 ]
>>188
可変長引数でも調べて推測してください。

様は第一引数の中を読んでいって、%フラグに当たったら対応する引数をフラグに従って変換した上で元の文字列に挿入してるんだと思う。


198 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 00:56:33 ]
別に挿入なんかしてないけどね。

199 名前:デフォルトの名無しさん [2007/05/12(土) 01:55:15 ]
>>197
ご教授ありがとうございます。

200 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 02:30:45 ]
そんなに知りたいならglibcのソースでも読めばいいのにな



201 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 02:37:18 ]
ソースリーディングは初心者には難しい

202 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 02:45:10 ]
>>196
------------------------------------------------------------
60 名前: デフォルトの名無しさん 投稿日: 2007/05/12(土) 00:10:17
printf("%s/n","Hello World");

上のprintf文の%sでどのように"Hello World"を処理しているのか分かりません。
どなたかご教授して下さい。
------------------------------------------------------------

この質問って流行ってるのか?

203 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 02:49:12 ]
馬鹿がマルチしてるだけじゃない?

204 名前:蟹NIC [2007/05/12(土) 03:16:31 ]
>>202 いいえ、まマイブームレベル位かな

  Viiv  
 ミ(エ)ミ....


205 名前:デフォルトの名無しさん [2007/05/12(土) 06:53:20 ]
>>117
配列は番兵を使うために便宜的に要素+1の部分にアクセスできるんだぜ?



206 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 07:27:03 ]
>>205
ねーよwwwwwwwwwwwwwwwwwwwwwwwwwww

#include <stdio.h>

int main() {
int a[4] = { 0, 0, 0, 0 };
int b = 0;

a[4] = 3;
printf("%d\n", b);

return 0;
}

で 3 が表示されたぜ(gcc 4.0.1 for Mac)。

207 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 07:33:50 ]
ポインタを向けるだけなら未定義動作にならないってだけでしょ

208 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 07:43:23 ]
>アクセスできる
をどう好意的に解釈しても、ポインタを向けるだけ、にはならん罠。

209 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 07:45:46 ]
どちらかというと205宛てに書いたレスなのだが…

210 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 08:50:05 ]
>>205
>配列は番兵を使うために便宜的に要素+1の部分にアクセスできるんだぜ?
マジレスするとそれは文字列のときだけな。
char a[] = {1, 2, 3}; // sizeof a == 3
char b[] = "123"; // sizeof b == 4




211 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 08:50:21 ]
釣りだって

212 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 08:51:17 ]
知ってるよ

213 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 08:52:22 ]
char c[3] = "123";

214 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 09:00:47 ]
charの配列だけchar配列じゃなくて文字配列って言うことが多いし
文字配列には後ろに'\0'が付くみたいな覚え方をしてたから
なんかcharの配列だけは特別な代物のように思ってた過去

215 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 09:01:56 ]
文字配列とは言わんなあ。
文字列としか。

216 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 11:26:20 ]
私の処で文字配列といった場合、それはナルターミネートされていない。

217 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 11:35:24 ]
相変わらず嘘と無価値な雑談でしか伸びないスレだな

218 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 11:36:38 ]
君も仲間だ、歓迎するよ

219 名前:デフォルトの名無しさん [2007/05/12(土) 13:01:15 ]
質問です。
#include <stdio.h>
int main(void)
{
float a,b;
char e;
printf("変数a=");
scanf("%f",&a);
printf("変数b=");
     scanf("%f",&b);
printf("文字=");
scanf("%c",&e);
printf("変数a=%f 変数b=%f 文字列d=%c\n",a,b,e);
return 0;
}
これをコンパイルすると文字列データを読みこんでくれません。。
おそらくprintfかscanfの仕様に問題があるのでしょうがこれの理由と回避方法をご教示願いたいです。

220 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 13:17:40 ]
>>219
・文字と文字列の違いを理解しよう。
・scanf()の仕様に気をつけよう。



221 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 13:20:11 ]
演算子を使わないで割り算や掛け算ってどうやるんですか?たとえば9÷3

222 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 13:22:43 ]
演算子を使わないで演算するには、関数を使えばいい。

223 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 13:25:01 ]
>>222
関数を自分でつくるということですかね?

224 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 13:25:16 ]
>>219
scanf("%c",&e);

scanf("%*[ \t\n]");
scanf("%c",&e);

変数b を読み込んだ後、改行文字がバッファに残っている
バッファに残った改行文字を次の scanf("%c",&e); で読み込んだため
変数e には改行文字が入ってしまった

この問題を回避するには、バッファに残っている改行文字を読み飛ばせば良い

225 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 13:27:18 ]
つか入門書安易にscanf使いすぎ。
エラーチェックしなさすぎ。

226 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 13:38:59 ]
>>223
つ[div()]

227 名前:デフォルトの名無しさん [2007/05/12(土) 13:54:31 ]
>>224なるほど ありがとうございます。

228 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 14:22:00 ]
>>222
数学を一度勉強した方がいいですね。
具体的には線形空間というやつですよ・・・

229 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 14:27:06 ]
数学の話じゃないだろ・・・常識的に考えて。

230 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 14:27:32 ]
>>228
演算子を使わずにできる?
もちろんシフト演算も無しで

>>221
関数以外だとインラインアセンブラ使えば
演算子を使ったとは言われないとか?



231 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 14:28:43 ]
>>228
何を寝惚けたことを?

232 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 14:44:24 ]
設問の定義があいまい

233 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 14:51:20 ]
// 演算子を使わない足し算。
int add(int a, int b)
{
FILE * fp = fopen("/dev/null", "w");
int rtn = fprintf("%*s%*s", a, "", b, "");
fclose(fp);
return rtn;
}

234 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 14:52:56 ]
>>233
負数対応キボン

235 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 14:57:17 ]
>>233
代入演算子を使っているw

>>234
わはは、そりゃ確かに>233じゃ無理だ。

236 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 14:58:03 ]
int add(int a, int b) {

}

237 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 14:58:57 ]
ミスった。

int add(int a, int b) {
 __asm {
  mov eax, a
  add eax, b
 }
}

238 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 15:02:00 ]
そういえば関数呼び出しの括弧も演算子なんじゃなかったっけ?

239 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 15:02:17 ]
>>222がなんでそんなことをしたくて何を「演算子」と呼んでいるかしらんが
if文だりなんだり使って全部作ればいいんじゃね
足し算なら1+1 = 2
だからa,bが両方とも1なら2を出力するというように
それらをすべて0〜9のを自分でつくる
あと桁上げの関数ももちろん自分で作って

240 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 15:03:27 ]
比較にも演算子が必要だな。



241 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 15:04:40 ]
if じゃなくて switch ならイケる。
ただ、コード量が多すぎて int 全部を網羅できないな。
char 程度ならともかく。

242 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 15:05:01 ]
switch しか無いな

243 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 15:05:06 ]
つまんないからもうやめていいよ

244 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 15:07:01 ]
お前らほんと数学分かってないんだな・・・
まじ小学校からやり直せよ

245 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 15:08:19 ]
>>235
そこにある=は初期化子であって演算子ではない。

246 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 15:12:47 ]
>>244
プログラミング言語において「演算子」が何を指すかを勉強し直してきてください。

247 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 15:13:17 ]
>>241
桁上げの関数作ればできるだろ
switchだって演算子を裏に隠しているだけに過ぎないし
ちなみに足し算とかってそもそも写像なんだから
なんでそんなことやりたいのかよくわからん
数学じゃなくてC言語で言う「演算子」は人間が勝手に付けた分類だから
それにこだわっても意味が無い
>>228のいうように少し数学を学んだほうがいい


248 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 15:13:39 ]
>>245
しかし残念 >>238

249 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 15:15:31 ]
>>247
何で数学の演算子にこだわるのか理解できないのだが。
ここは C 言語スレだぞ?

250 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 15:18:44 ]
元質問者出てこいよ
後出しで、四則演算子のことでした、とか言いそうだが



251 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 15:19:36 ]
>>222-250

252 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 15:20:53 ]
>>221
>演算子を使わないで割り算や掛け算ってどうやるんですか?たとえば9÷3
割り算や掛け算って言ってるけど

253 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 15:22:43 ]
>>222の問題意識が何なのかということだぁね

C言語だと同じことできるけどこれは演算子と呼ぶ
これはそう呼ばないだけの違いになってしまうから
C言語での「演算子」の意味にこだわって
わざわざ考えるほどの価値がある物と思えない
もし>>222がC言語において何を演算子と呼ぶのかをどうやって決めたか
知りたいとかなら別だけど

結局のところC言語での演算子と数学での演算子の区別すらつかずに
質問しちゃったってオチの気がするw

254 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 15:24:37 ]
C仕様書には区切り句で何らかの作用を起こすもの(代入とかな)を演算子とすると書かれてるんだから
演算子を使わずに何かをするなんて無理だろ

255 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 15:27:00 ]
ここは環境依存おkだから、
インラインアセンブラ使えばおk。

256 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 15:30:17 ]
2で割った剰余を取る演算て最近のコンパイラだと
勝手に0x01とのビットANDもしくはそれより速いコードに変えてくれるんでしょうか?

257 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 15:32:47 ]
>>254
てことはC言語の演算子は数学の演算子の定義に沿って定義されている
ということだな べんきょうになったw

258 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 15:33:27 ]
>>256
Yes.

259 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 15:36:31 ]
sizeof まで演算子だしなあ。

260 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 16:02:59 ]
(void)printf("ほげほげ");
と、printfまでキャストをする必要はあるのでしょうか?



261 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 16:04:21 ]
>>260
無い。そもそもintをvoidにキャストしてどうするんだ?

262 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 16:04:27 ]
>>260
ない。
ただし、戻り値を取得し忘れてるわけじゃなく明示的に捨ててるんだという意思表示として
(void)にする流儀はあるにはある。
好み、コーディングスタイルレベルの話。

263 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 16:05:26 ]
>>261
戻り値を使わないことを明示する効果がある。
lintのようなチェッカを黙らせる効果もあるな。

264 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 16:06:37 ]
そうそう、コーディング規約に「戻り値は必ずチェックすること」という項目があって、
それの評価を厳密に行なう運用の場合にもそうする必要があるね。

265 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 16:10:14 ]
>>263
lint対策か。それなら納得

266 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 16:57:40 ]
コンパイラにもよる。
たとえばFreescaleのCodeWarriorは(void)をつけないとwarningを出すのがデフォルト動作。

267 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 18:42:50 ]
int main(void){
  int a=1;
  kansu(a);
}
までやっておいて

@int kansu(int a){
  printf("%d",a*2);
  }
Aint kansu(int *a){
  printf("%d",a*2);
  }

@だと正常に動いたのですが、
Aだと「*」がダメだ〜 とコンパイラに怒られるのですが、
この違いとは何なんでしょうか?

268 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 18:45:51 ]
>>267
(2)の*は、意味も分からないで適当につけたの?

269 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 18:47:47 ]
int kansu(int *a){
  printf("%d",a*2);
  }
 ↓

printf("%d",*a*2);
       ↑
    これじゃね?

270 名前:デフォルトの名無しさん [2007/05/12(土) 18:50:45 ]
gets()関数で文章を読み取ってます。リダイレクションでメモ帳で作った文章入れると、改行のところ以降プログラムに読み込まれません。
どうしてでしょうか?改行があっても最後までいきたいんですが



271 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 18:52:22 ]
>>270
getsは改行文字までしか読み取らない
manにも書かれてる基本仕様

ついでにgetsを使うのは推奨されない

272 名前:デフォルトの名無しさん [2007/05/12(土) 18:53:05 ]
>>271
じゃあ代理のものとして、何を使ったらいいですかね

273 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 18:54:58 ]
>>268
気のせいかもしれませんが、
関数を定義してるプログラムを見ると多くが *a となっていたので、
違いを知りたいなと思って作ったプログラムなので、
かなり不備はあるかもしれません・・・。

>>269
Aの場合だと必ずメモリ関連でセグメントエラーか、警告が出続けてしまうんです。
試したところ、、、セグメントエラーが出ました。


274 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 18:56:55 ]
>>272
fgets(・・・, stdin)

275 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 18:58:02 ]
>>274
stdinっていうのはなんでしょうか

276 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 18:59:01 ]
>>272
>gets() を使うのは極めて危険である。(中略)代わりに fgets() を使うこと。
ttp://www.linux.or.jp/JM/html/LDP_man-pages/man3/gets.3.html

これぐらい自分で調べろ

277 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 18:59:34 ]
>>273
コールするほうも
kansu(&a);
と変えないとだめだよ。

こういうところで試行錯誤してるなら、入門書を一冊買ったほうがだいぶ時間の節約になると思うけど。

278 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:00:09 ]
>>275
とりあえずググれや。

279 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:00:11 ]
>>273
int kansu(int *a) にするなら
int main(void){
  int a=1;
  kansu(&a); < &をつけなきゃ
}

280 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:01:56 ]
>>276
危険なんですね。
fgetsにしたら
呼び出し時のパラメータが足りない:fgets(関数 main )
ってなってコンパイルできないんですが・・・・



281 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:02:58 ]
>>280
ttp://www.bohyoh.com/CandCPP/C/Library/fgets.html
ちゃんと必要な引数を与えている?

282 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:04:35 ]
>>277,279
すごい納得できました。ありがとうございました。

入門書は・・・買ったんですが、、、馬鹿なので理解できない^^;

283 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:06:16 ]
>>281
なんかよくわからないんですが、
char型の配列に文章をいれたいんです・・・・

char bunsyo[256]
みたいなやつにです

284 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:07:28 ]
>>283
fgets(bunsyo, 255, stdin)

285 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:08:16 ]
>>283
gets()をfgets()に変更するくらいの手続きを自分で考えられない(≒検索できない)なら、
プログラマに向かないからとっとと諦めた方がいいよ。

286 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:09:04 ]
>>284
ダウト。慣用句的にそれを使っているのなら、
一度マニュアルページをよく読んで自分の過ちに気付いておいた方がいい。

287 名前:デフォルトの名無しさん [2007/05/12(土) 19:09:56 ]
>>284
コンパイルはとおるんですが、改行のところで読み込みがおわってしまうんですが・・・・

288 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:10:09 ]
>>284
第二引数Nはバッファサイズだろ
読み込まれる文字数最大値はN-1

289 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:10:27 ]
>>286
ダウト。説明なしにそういうことを言うのはお前の知ったかに過ぎない

290 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:11:12 ]
>>287
fgets()も、改行までしか読まない。
だから、マニュアルページを読むなり情報を検索できないなら無駄だから諦めろって。



291 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:11:56 ]
>>288
gdgdいってねーで正解を書いたら?知ったかへぼプログラマーwwww
N-1そうだよ?何か?まさか、254 にしろとかボケないだろうね?

292 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:12:48 ]
>>290
読み込むテキストに工夫がいりますかね?

293 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:13:06 ]
>>289=>>291か?
ファビョってんじゃないよ。
そこまで分かってて正解が判らないような屑がこの板なんかに書くんじゃないよ。

294 名前:本日の知ったか馬鹿第一号 [2007/05/12(土) 19:13:27 ]
288 名前:デフォルトの名無しさん 投稿日:2007/05/12(土) 19:10:09
>>284
第二引数Nはバッファサイズだろ
読み込まれる文字数最大値はN-1

295 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:13:42 ]
暇だからプログラム組もうかな
でも、モチベーションが・・・・・
なにか練習問題でものってるサイトないか?

296 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:14:33 ]
>>292
テキストファイルを丸ごと読み込むには、
・fgetc()で一文字ずつ
・fgets()で一行単位で
・fread()でブロック単位(或いは一気に)
読む必要がある。

297 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:14:34 ]
>>291
だから>>283の宣言なら、普通にfgets(bunsyo, 256, stdin);でいいだろ
なんでバッファのラスト1バイトを無駄にしてんだよ


>>292
ループ回して一行ずつ読み込む

298 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:14:44 ]
>>287
宿題スレで、ファイル全部読み込むコード書いてくださいって言ったほうがいいんじゃね?


299 名前:デフォルトの名無しさん [2007/05/12(土) 19:14:47 ]
>>276とかこのスレにいらねーだろ。このスレが何なのかわかっていないのに
まだ勉強中の知らない奴を見つけて、自分が知っていることをひそかに自慢しながら
他人をたたく基地外だろ。ここでレスしているほかの奴にとっては迷惑千万、失せろクズプログラマー

300 名前:デフォルトの名無しさん [2007/05/12(土) 19:15:52 ]
>>293
>そこまで分かってて正解が判らないような屑が
自分が指摘したのに答えられない(勘違い)クズこそ来るなよw
お前はまったく指摘をしていない。ただたんに 自分が思った ことと違っていただけ。
それもお前が間違えているという勘違い(プ
不適切なら正しい使い方を明示しろ、たぶんお前じゃできない。あれは間違っていないからw



301 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:15:56 ]
ファイルのサイズがわかってるなら、適当な大きさのバッファを用意して、
fread()でもいいけどな。

302 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:16:07 ]
人間の屑よりはマシだな

303 名前:デフォルトの名無しさん [2007/05/12(土) 19:16:58 ]
>>296
うーん。めんどくさそうですね。テキストファイルの改行をなくしちゃいます

304 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:17:35 ]
>>300
あのね、坊やみたいなお子ちゃまはこんなところに来ちゃダメよ。
既に正解レスがついているんだからもっと落ち着きましょうね。

305 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:18:10 ]
お前ら邪魔

306 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:18:18 ]
>>299
自分で考えよう、調べようって姿勢が見えたら、頭わるそうなヤツでもけっこう親切に教えてもらえるよ。
ただ「わからない、を即答せよ」ってだけじゃ教えてもらえない。

307 名前:デフォルトの名無しさん [2007/05/12(土) 19:19:32 ]
>>293
揚げ足取りにもならなかったな、所詮お前はわかっていない(っと自分が思った)奴をたたくだけか
二度とくるな、お前みたいなクズこそこのスレにはいらない。このスレのタイトル読めますか?
あっ、日本語も日本の社会もろくに知らない在日かw

308 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:20:15 ]
まぁ、fgets()の慣用句はfgets(buf, sizeof(buf), stdin)だがな。
仮にもプログラムを組もうというときに、きちんと調べる手間を惜しんじゃ遺憾な。

309 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:20:18 ]
以下、キモメンメガネデヴピッツァのきめ台詞が出るまでお待ちください


310 名前:デフォルトの名無しさん [2007/05/12(土) 19:20:38 ]
>>304
あのね、小学生未満の精神年齢のお子ちゃまはこんなところに来ちゃダメよ。
勘違いの指摘レスがついているんだからもっと落ち着きましょうね♪
んで、何が間違いか、指摘できた?正解がとかじゃなくてw



311 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:21:38 ]
「屑」対「クズ」か。どっちが半島人かは火(病)を見るより明らかだな。

312 名前:デフォルトの名無しさん [2007/05/12(土) 19:22:26 ]
>>284は単なる入力ミスだろ。それだけでここまで お前はあほだ! みたいな
プレッシャーをかける基地外ってプログラマーに向いてねーよなwwwwww

313 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:22:47 ]
>>309
半島人がでてきたぞ。

314 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:23:23 ]
>>282
だったらその本は自分に向いていなかったと諦めて、
ちょっと立ち読みして、ほかに良さそうな本を探して買えばいい。

315 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:23:36 ]
くずはくずかごに入っとけ。

それより早く>>295に答えてください。

316 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:24:33 ]
>>311 地球上のカス以下の  お  前  が  言  う  な  wwwwwwww
っつーか、揚げ足取り必死だなw
そんなんじゃ本当にプログラマーに向いてねーよ、その程度のことでガミガミ
相手を罵倒するようじゃ、そんな奴こそこんなスレに来ないほうが良いだろ。
気分が悪くなるものを敢えてみてゲロを吐いているマゾかい?w
グロ動画でも貼ってやろうか?w

317 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:24:59 ]
おお、新展開。今度の攻撃は「単なる入力ミス」ですw

>>315
宿題スレに未解決の宿題が幾つかあるんじゃない?
下手なサイト見るより勉強になりそうですよ。

318 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:29:25 ]
freadでも使えば。

319 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:30:13 ]
>>317
ほらな、そういうことで相手をチクチクつついて周りの気分も害しているだろ?
だからお前みたいなつまらねークズはプログラマーに向いてないから
頼むから大掛かりなプロジェクトには絶対に介入するなよ。
っつーか協調性がなくて無理だろうね、お前みたいなちっぽけなクズはw
ちなみに、あの程度の間違いならさらっと 256 って書けば済んだ話だろ。
お前わかってねー!間違えたへへーん馬鹿!とか罵倒する方が頭がイカレてんだろ。
そういう奴に限って、自分の間違いを指摘されると、認めないどころか
お前がおかしい!って言い始めるから困るぜ ヤレヤレ

以後、さっきからきんもぉ〜★な指摘するだけで答えを出さない基地外は放置よろ
たぶん引きこもりニートだろ

320 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:30:36 ]
>>318
>296
>301



321 名前:こいつさいこーに協調性のない引きこもりwww mailto:sage [2007/05/12(土) 19:32:14 ]
317 名前:デフォルトの名無しさん 投稿日:2007/05/12(土) 19:24:59
おお、新展開。今度の攻撃は「単なる入力ミス」ですw

293 名前:デフォルトの名無しさん 投稿日:2007/05/12(土) 19:13:06
>>289=>>291か?
ファビョってんじゃないよ。
そこまで分かってて正解が判らないような屑がこの板なんかに書くんじゃないよ。

297 名前:デフォルトの名無しさん 投稿日:2007/05/12(土) 19:14:34
>>291
だから>>283の宣言なら、普通にfgets(bunsyo, 256, stdin);でいいだろ
なんでバッファのラスト1バイトを無駄にしてんだよ
なんでバッファのラスト1バイトを無駄にしてんだよ
↑こういう嫌らしい言い方をするだろ?
だから日ごろ嫌われていることに気づかない仲間はずれなんだろうからこんな場所で
匿名性を利用して自分より知識の乏しい弱者相手に強気になれるんだろうねw


322 名前:284 mailto:sage [2007/05/12(土) 19:34:14 ]
>>284はただの入力ミスです ♠
56としたつもりが同じキーを2回押して書き込みしちゃっただけでぇ〜〜〜す ♣
あぁ〜〜いとぅいまてぇ〜〜ん、文字配列のサイズを指定するように、ここでレスする以外の
自分が書くソースでは sizeof 使ってまぁ〜〜〜つ ♥

323 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:36:19 ]
char s[256];
size_t size=sizeof(s)/sizeof(s[0];
sizeof(s,size,stdin);
こんな感じでぇ〜〜どぉ〜〜〜でちゅかぁ〜〜?♦

324 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:37:15 ]
あちゃぁ〜〜、今度はsizeofの閉じ括弧忘れちゃいまちちゃぁ〜〜〜
あぁ〜〜〜いとぅいまちぇぇ〜〜〜〜ん ♪

325 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:39:29 ]
fgetsの仕様って
buf[BUFFER_SIZE];
fgets(buf, BUFFR_SIZE, stdin);
とかするためにこんな仕様になってるんでしょうか?

326 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:43:07 ]
こんな仕様が何を指すのかわからん。

327 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:44:52 ]
>>325
そう

328 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:46:54 ]
>>325
fgets()の他にも、strftime(), snprintf()も同じように格納バッファサイズを指定して、
それよりも少ない文字数しか格納しないような仕様になっている。


329 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:50:27 ]
なるほど、文字列の最後が\0で終わるからその分余計に取らないと駄目だからか

330 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 20:11:00 ]
普通にsizeof使えば、悩むことなんて何もないのに



331 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 20:20:56 ]
>>330
getsもsizeof使って実装すれば何の問題もないのに、と思っていたりする?

332 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 20:22:21 ]
まず、おまえさんが何が言いたいのか分からん。

333 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 20:22:29 ]
333 gets!

334 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 20:37:37 ]
つまり、まぁ、こういうこと

int main(void)
{
exit 0;
}

335 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 20:38:31 ]
d.hatena.ne.jp/keyword/%A5%B2%A5%C3%A5%C4
お前らほんっとうにこれが好きなんだな

336 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 20:39:50 ]
くだらなすぎ

337 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 20:54:40 ]
標準入力から読み込みたいけどサイズとファイルポインタ指定が面倒ってことなら
自分でfgetsをそれらを決め打ちした状態で呼び出す関数作ればいいんでは

338 名前:デフォルトの名無しさん [2007/05/12(土) 21:24:36 ]
void WriteLog(const wchar_t szComment[])
{
FILE *fp;
errno_t err;
time_t ttime;
wchar_t buff[CTIME_SIZE];

if ( ( err = fopen_s( &fp, szPath, "at") ) != 0 )
return

time( &ttime );

if( ( err = _wctime_s( buff, CTIME_SIZE, &ttime) ) != 0 )
return;

fwprintf( fp, L"%s", szComment );
fwprintf( fp, L", %s", buff);

fclose( fp );
}
こういう関数を作って、使おうと思ったんですが、
例えばこのように使うと WriteLog( L"あああ (AAA)" );
↓のように書き込まれてしまいます
??? (AAA), Sat May 12 21:15:19 2007

なぜでしょうか?

339 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 21:43:29 ]
>>338
ログファイルの先頭にBOMを入れるようにすれば読めるんじゃね?

340 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 22:06:58 ]
今、配列の要素として1,2,3,4があるとき、これらの要素を連結して他の変数に代入(n = 1234)することはできますか?



341 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 22:07:24 ]
できます。

342 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 22:15:24 ]
>>341
教えて下さい

343 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 22:18:45 ]
BOOL厨ワロタw

344 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 22:19:50 ]
b = a[0] * 1000 + 1[a] * 100 + *(a+2) + 10 + a[3];

345 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 22:24:01 ]
>>344
ありがとうございます

346 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 22:42:10 ]
>>344
この妙な書き方噴いたwww

347 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 22:42:59 ]
一箇所間違ってるし

348 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 22:50:12 ]
>>347
可哀想だからスルーしてやれよw

349 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 22:50:45 ]
足し算になってるのか

350 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 00:07:33 ]
数学が分かってない人が多すぎる



351 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 00:18:02 ]
小学生だっているだろうし 仕方ないさ


352 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 00:21:03 ]
#include <stdio.h>
#include <math.h>

int main() {
int nums[] = {1,2,3,4,5};

int nums_len = sizeof(nums)/sizeof(nums[0]);
int num = 0;
for (int i = 0; i < nums_len; ++i) {
num += nums[i] * (int)pow(10, (nums_len-1) -i);
}

return 0;
}

よし、これでどうだ!!

353 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 00:29:06 ]
もうsprintfでいいだろw


354 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 00:48:01 ]
ちょっと聞きたいんだけど
(環境.WindowsXP BCC32)

#include <stdio.h>
int main()
{
FILE *fp=fopen("test.txt","w");
unsigned d=0x0d;
fwrite(&d,sizeof(d),1,fp);
fclose(fp);
return 0;
}

test.txt に バイナリ値で 0D 00 00 00 ではなく 00 00 00 4E として書き込まれる
これってどうしてでしょうか?

355 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 00:52:10 ]
>>354
ttp://www.bohyoh.com/CandCPP/C/Library/fwrite.html
ttp://www.bohyoh.com/CandCPP/C/Library/fopen.html


356 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 00:52:54 ]
>354
bcc32(v5.82)でコンパイルしてみた。

ちゃんと
0D 00 00 00
になったけど?

357 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 00:53:19 ]
>>354俺んとこじゃちゃんと0D 00 00 00になったぞい

358 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 00:54:14 ]
亡羊のページなんか張るなよ

359 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 00:55:10 ]
>>358
なんで?んじゃどこをはれば良いの?なんでいちいちちっぽけな低学歴馬鹿のお前の言うことを
聞かなきゃならねーの?さっきからうぜぇんだよ、くだらねぇことでチクチク煽ったり、あほじゃねこいつ?

360 名前:354 mailto:sage [2007/05/13(日) 00:55:21 ]
失礼しました
ちょっと違いました

バイナリ値で 0D 00 00 00 ではなく 00 00 00 として書き込まれる
0D が書き込まれていない、でした
それと1Aも書き込まれないようです
制御コードだからですか?



361 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 00:56:20 ]
>>360
意味が分からん。何がいいたい?

362 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 00:56:52 ]
確認方法に問題があるんじゃないのか。
ちゃんとしたバイナリエディタ使ってるか?

363 名前:自分が気に食わない発言を見つけると得意気に罵倒してくる基地外 [2007/05/13(日) 00:57:12 ]
286 名前:デフォルトの名無しさん 投稿日:2007/05/12(土) 19:09:04
>>284
ダウト。慣用句的にそれを使っているのなら、
一度マニュアルページをよく読んで自分の過ちに気付いておいた方がいい。

293 名前:デフォルトの名無しさん 投稿日:2007/05/12(土) 19:13:06
>>289=>>291か?
ファビョってんじゃないよ。
そこまで分かってて正解が判らないような屑がこの板なんかに書くんじゃないよ。
そこまで分かってて正解が判らないような屑がこの板なんかに書くんじゃないよ。
そこまで分かってて正解が判らないような屑がこの板なんかに書くんじゃないよ。
お前みたいな自分基準しか言わない馬鹿や間違っているのを見つけては叩くだけしかしない奴が
このスレどころかこの板にこない方が良いよ、プロになれなかったグラマー(ただのデブ)www

364 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 00:58:33 ]
>>360
バイナリィエディタで開いてみたら、0D 00 00 00になったけど?

365 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:00:00 ]
>>360
0x0d を書き込んでいて、
なんで 0x1Aを期待するのかわからんし。
そもそも書き込んでるのがバイナリなのにファイル名が.txtなのも謎だし。

というか君は何がしたいの?w
そこを言えば根本的なバグも教えて貰えるかも。

366 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:00:40 ]
>>358
ねぇねぇ、どこを参照すりゃ良いの?お前、もしかして亡羊さんのことが嫌いな人?
亡羊さんに嫌がらせをしている人がいないか聞いたら、お前みたいなへぼプログラマーが
誰か特定できるかな?ちと亡羊さんに通報してこようかな?w

367 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:01:46 ]
>>365
お前もいちいちうるさいなぁ、馬鹿じゃね?わけがわからないとかじゃなくてさぁ
できたって報告があるんだから、いちいち何言ってんだかわかんねーじゃなくて
どうやって0D 00 00 00以外が書き込まれたか、確認した手段を聞いた方がはえーよ馬鹿w

368 名前:354 mailto:sage [2007/05/13(日) 01:01:59 ]
>>356-357
そうですよねぇ
普通なりますよねぇ
もうすこしチェックしてみます

369 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:03:44 ]
>>360
ttp://www.vector.co.jp/soft/dl/win95/util/se079072.html
良いから開いてみれ。ちゃんと書き込まれているからw

370 名前:デフォルトの名無しさん [2007/05/13(日) 01:07:54 ]
C言語初心者です。
基本情報処理技術者をとって会社に就職して、
プログラマーからSEになったらどの位の給料になるんでしょうか?
もちろん個人と会社による話ですが、相場を教えて下さい。
SEになっても月に30万位なんでしょうか??



371 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:07:58 ]
365の反応が普通だろw

372 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:08:52 ]
>>370
マ板池

373 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:09:25 ]
>>367
ば…ばかって言うヤツが馬鹿なんだからねっ!!!

374 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:09:51 ]
>>371
普通じゃねーよ、相手にひたすらプレッシャーを与えてボロを出したところを
さらに叩く基地外くらいだろ、そういうのがデフォになっている視野も心も狭い低学歴はw
普通は何を使って書き込まれた値を確認したか聞くだろ。

375 名前:デフォルトの名無しさん [2007/05/13(日) 01:10:52 ]
>>372さん
マ坂とはなんでしょうか…?


376 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:11:40 ]
良いかてめぇ〜ら、C言語をかじったくらいのクソガキが、これから始める初心者を
ネチネチいじめてんじゃねーよ、スレタイが読めていないのか、こういうスレに集まる
初心者より自分の方が知識も経験もあるということを知って安心したいのか知らないが
答える気がないならこのスレから出ていってくれ。二度と戻ってくるな。
所詮お前は、プロになれなかったただのデヴ(グラマー)だ

377 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:12:03 ]
>>375
プログラマー板

378 名前:354 mailto:sage [2007/05/13(日) 01:15:10 ]
すみません.自分の勘違いのようです
今作っているものがunsigned ID, unsigned short sizeを読み、次にsize分文字列として読ませているんですが
IDが0x0Dまたは0x1Aになるとバグったもので
もう一度見直してきます

どうもありがとうございました

379 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:16:06 ]
>>378
おそらくfopenの際、モードをバイナリにしてないからだろ
バイナリ指定してない場合、改行文字絡みで自動変換が行われる

380 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:21:23 ]
>>374
オマエのトラウマなんかどうでもいいよ



381 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:21:24 ]
>>374
火病ってんじゃねーぞ

・ >365 が元質問者を叩いているという事実認識がまず脳内
・ 自分が >365 を叩いてる事実を放置
・ 自分の主観が「普通」と勝手に定義

どっちが基地外かは火を見るより明らか

382 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:21:55 ]
マジでやめてくんないかな

383 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:22:45 ]
嫌な荒れ具合だな
亡羊本人でも降臨してんの?

384 名前:354 mailto:sage [2007/05/13(日) 01:24:02 ]
>>379
まったくもって情けないです
バイナリ指定したつもりがしてませんでした
ちゃんと動作しました
お騒がせしました

385 名前:デフォルトの名無しさん [2007/05/13(日) 01:25:07 ]
>>380 >>381
おまえらうるせーよ?お前が一番うっとうしい、士ねよ馬鹿
質問に答える気がないなら来るなよ。ほかにレスしている奴の邪魔なんだよクソガキ
何歳だお前?なぁ?士ねよ馬鹿w
ふぁびょってんのはお前だろ。他人にファビョってんじゃねーよとか言っておきながらwwwww

380 名前:デフォルトの名無しさん 投稿日:2007/05/13(日) 01:21:23
>>374
オマエのトラウマなんかどうでもいいよ
オマエのトラウマなんかどうでもいいよ
オマエのトラウマなんかどうでもいいよ
オマエのトラウマなんかどうでもいいよ
↑それお前だろ。お前の場合はウマシカだがw

381 名前:デフォルトの名無しさん 投稿日:2007/05/13(日) 01:21:24
>>374
火病ってんじゃねーぞ

・ >365 が元質問者を叩いているという事実認識がまず脳内
・ 自分が >365 を叩いてる事実を放置
・ 自分の主観が「普通」と勝手に定義

どっちが基地外かは火を見るより明らか

・ >365 が元質問者を叩いているという事実認識がまず脳内
自分のレス読み返せ基地外。

・ 自分が >365 を叩いてる事実を放置
はぁ?なんで?叩いた覚えありましぇ〜〜ん、ちゃんとできたと答えたけど?
いつ俺が叩いたか、参照レスきぼんぬ。ってか、俺を特定できないから無理だろうけど
俺は叩いていないし

386 名前:デフォルトの名無しさん [2007/05/13(日) 01:25:53 ]
>>383
そうやっていないのに特定の人物をどうこう言い始めるだろ?
お前もうそれで名誉毀損だよ。亡羊さんに通報しとくねw
覚悟しとけよ

387 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:27:09 ]
釣れてますねw

388 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:27:18 ]
>>386
亡羊ってだれだよ。

389 名前:デフォルトの名無しさん [2007/05/13(日) 01:27:40 ]
>>358 >>358 >>358 >>358 >>358 >>358 >>358 >>358 >>358 に問う
なんではっちゃだめなの?理由は?お前の気まぐれとか、気分とかだったらまずお前がただの馬鹿だと言う結論しか出ないから。
参考にできるページがあったら使う、別になんら問題ないし、そのページには間違った記述はされてないよ。
まぁ、たぶん亡羊を嫌っている誰かだろ。特定できそうだから、亡羊さんに聞いてくるわ。
どうせプロになれなかったボケグラマーだろw

390 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:29:54 ]
>>388
>>358 >>358 >>358 >>358 >>358 >>358 >>358 >>358 >>358 参照w
言ったのは俺じゃないから。正しくは望洋だから。ANSI、ISO準拠を重視した本の出版をしているし
そんじょそこらの知ったかプログラマーと比べたらかなりまともな人だろうね。
他人を叩くような奴って、世界基準すら知らなさそうで視野が狭そうだなw
int mainについても理解してなさそう(どこぞのスレで議論になったが、ISOの参照ページを出したら
尻尾を巻いて逃げたけどなw)



391 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:32:00 ]
>>俺を特定できないから無理だろうけど

これがこいつの心理だろうなw

392 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:32:30 ]
>>381
> ・ 自分の主観が「普通」と勝手に定義
はい?自分の主観で言った覚えはありませんけど?
ちゃんとバイナリィエディタで 0D 00 00 00 が書き込まれているのを確認しましたが何か?
質問者が何で書き込まれた値を確認したか聞いたのに、どうして俺が 主観 となるんでしょうか?
正確にお答えをして下さい。でなければ偽証罪で通報しますよ?証人喚問は怖いですよぉ〜〜

393 名前:デフォルトの名無しさん [2007/05/13(日) 01:33:35 ]
>>391
ぷぷっ、そういうところにしかもう反応できない肝っ玉の小さいクズ乙w
こういう匿名(実際のところは完全に匿名ではない)ところでしか強がれないボケ
他人の粗探しを必死こいてするくせに、自分の落ち度をまったく認めない井の中の蛙乙w

394 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:34:33 ]
ここまで望洋さんに肩入れできるのはある意味すごいと思った。

395 名前:デフォルトの名無しさん [2007/05/13(日) 01:35:51 ]
質問者の答えに答えるどころか お前何やってんだよ としか言わない奴はとっととこのスレから
出て行ってくれませんか?うっとうしいんだよ、答えもしないくせに相手のボロを探すだけの馬鹿

396 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:35:52 ]
>>389
特定できたら家にきてくれよ。酒くらいは出してやる。

397 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:40:30 ]
もう眠い。寝る。

398 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:41:01 ]
どうぞ。

399 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 02:02:29 ]
望洋信者って怖いな

400 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 02:04:43 ]
いつの間にか信者になっているしw
参照できるライブラリのページを出しただけだろ。亡羊を狙った覚えはない



401 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 02:44:13 ]
なんだ、まだやってたんだ。暇な人はこれだから……

402 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 05:37:00 ]
他人の粗探しをしている奴がきんもぉ〜♪だよな。指摘するならするで
間違いを指摘すりゃ良いだろ。気持ち悪いよ、お前それわかってねーなって
ネチネチ煽る奴。日頃、まともな人付き合いがないからこういう捻くれた
相手を見下して自分が優位な立場だと思い込みたい引きこもりなんだろうね

403 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 05:45:51 ]
>402
自己紹介乙

404 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 06:14:59 ]
>>403 反応したお前ノナー

405 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 06:15:32 ]
>>403=昨日、つまらないミスを気持ち悪く指摘して煽っただけの知ったかバカ

406 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 07:01:27 ]
亡羊?
ボコボコにしてやんよ

 ∧_∧
 ( ・ω・)=つ≡つ 
 (っ ≡つ=つ
 /   ) ババババ
 ( / ̄∪

407 名前:質問者 mailto:sage [2007/05/13(日) 08:52:04 ]
きのうはお騒がせしました。
「演算子を使わない」とは、四則演算のことです。
ビット演算で何とかできないかな?と思いましたが。どうでしょうか?

408 名前:デフォルトの名無しさん [2007/05/13(日) 10:27:06 ]
#include <stdio.h>
#include <string.h>
int main(void) {
    char *name[12] = {"Mutsuki","Kisaragi","Yayoi","Uzuki",
    "Satsuki","Minazuki","Fuzuki","Hazuki",
    "Nagatsuki","Kannazuki","Shimotsuki","Shiwasu"};
    char **p;
    int i;
    p = name;

    for(i = 0;i < 12;i++){
        printf("%2d月:%s(%d)\n",(i + 1),strlen( *p ),*p); /* @ */
        printf("%2d:%s\n",strlen(*p),*p); /* A */
        ++p;
    }
    return 0;
}
今、ポインタのポインタを使って文字数を数える練習問題やっているのですが
@のprintf文を実行するとDos窓が強制終了してしまいます。
デバックの時にエラーは出ないのですが・・・なにが間違っているのでしょうか。
Aの方は普通に出力できます。

Visual C++ 2005 Express Editionを使っています。

409 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 10:38:24 ]
>>407
コンピュータサイエンスの基礎をやれ。
四則演算を論理素子でどうやって実現するか知れば
くだらない疑問を抱かずにすむ。

410 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 11:02:22 ]
>>408
printf("%2d月:%s(%d)\n",(i + 1),strlen( *p ),*p);

%2d = i+1
%s = strlen(*p) ←
%d = *p ←



411 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 11:08:34 ]
どうやって、論理素子で計算するんですか。
16進数に置き換えてするんだとは思いますが、すごく疑問です。
2×4=8とか、8÷2=4を論理素子で計算する。
すごく難しいと思います。

412 名前:408 [2007/05/13(日) 11:15:59 ]
>>410
あああ!逆だった
ありがとうございます!

413 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 11:36:28 ]
>>411
本屋に行って"CPUの仕組み"みたいな本買ってこい
あとは加算器で調べてみるとか

414 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 11:47:10 ]
>>411
2 << 2
8 >> 1

415 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 12:40:23 ]
剰余はどうするんすか?
スタック使って割られる数-商*割る数って演算するんですか?

416 名前:デフォルトの名無しさん [2007/05/13(日) 13:43:31 ]
ファイル操作のとこでreturn(-1);の意味がさっぱり。

417 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 14:57:20 ]
>>415
掛け算と割り算は加減算で表現できるだろ
単純に何回も引いていって引けなくなればそれが余り
2進数で桁上がり下がりフラグ使って同じようにやればできる
筆算で(2進数)割り算やるときとほとんど同じ あとは本買って嫁

>>416
return(-1);はよくエラーチェックに使う
-1が返ってきたらファイル開けなかったということになってるとおも


418 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 14:58:24 ]
変数を使わずに1+2の計算結果を出すにはどのようなプログラムを組めばいいのでしょうか

419 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 15:04:32 ]
printf("%d",1+2);

420 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 15:04:42 ]
>>418
こういうこと?

printf("%d\n", 1 + 2);




421 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 15:05:48 ]
演算子、変数と来たから次は何だろう

422 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 15:06:39 ]
関数を使わずに(ry

423 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 15:08:56 ]
C言語を使わずに(ry

424 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 15:10:33 ]
頭を使わずに(ry

425 名前:デフォルトの名無しさん [2007/05/13(日) 15:20:20 ]
>>417ありがとうございます

426 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 15:35:27 ]
30年とか表示するとき
int a;

a = 30年;

printf("%d",a);

でやると、年が邪魔っぽくて表示されない
どうやればいいの〜?

427 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 15:37:35 ]
printf("%d年", a);

428 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 15:39:42 ]
表示以前にコンパイルできないのでは????

429 名前:デフォルトの名無しさん [2007/05/13(日) 15:40:53 ]
>>428
だから結果として年が邪魔で表示されないんだろう。初心者苛めんな。

430 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 15:41:45 ]
せめて教科書読めよっていう質問ばっかりきてるなぁ




431 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 15:47:30 ]
とうとう>>424の問題が出てきたか

432 名前:デフォルトの名無しさん [2007/05/13(日) 16:04:10 ]
一般的な入門書やりおわったけど、次はどんなステップを踏めばいいですか?

433 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 16:05:13 ]
>>432
目標は何?


434 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 16:07:29 ]
自分一人で基礎知識の応用が出来るようにすることかな。
処理速度とかも視野に入れた上で。

なんかテキトーに自作ツール作ってみるとか。

435 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 16:08:14 ]
>>434>>432へのレス

436 名前:デフォルトの名無しさん [2007/05/13(日) 16:09:20 ]
>>432
この世界は片っ端から全部覚えてたらキリがないから
ちゃんと自分がなにをやりたいのか見定めて進んで行かんと、
無駄に多大な労力を費やすことになるぞ。

437 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 16:09:22 ]
作りたいもん作ればいいと思うぜ

438 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 16:12:40 ]
>>434
自分で C のプリプロセッサでも作ってみたら?

確か以前、"未踏"でも採択されたことがあったはず。


439 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 16:33:39 ]
Socket,データベース,文字列処理(正規表現含む)
これらができると幅がぐっと広がる…っていうか基本
後はアイデア次第

440 名前:デフォルトの名無しさん [2007/05/13(日) 16:34:35 ]
かなり意欲はあるのですが…やはりいろいろとオリジナルのアプリケーション・ソフトウェアを作ってみたいです。やはりそーゆー本を買っていろいろやってみるべきですか?



441 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 16:36:13 ]
本を買う必要はないが、色々やってみるべきだろう。

442 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 16:38:52 ]
>>439の中でまず文字列処理からやってみては?
とっつきやすいと思うよ。
ネットにも入門サイトとかいっぱいあるし。

443 名前:デフォルトの名無しさん [2007/05/13(日) 16:41:18 ]
入門書に文字列処理についての事が無かった様に思うのでお聞きします。文字列処理は初耳です。

444 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 16:42:23 ]
>>440
作りたいものがあるならさっさと作ってみるのが吉
やってるうちに技術もついてくる

445 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 16:44:04 ]
>>443
>入門書に文字列処理についての事が無かった様に思うのでお聞きします
strcpy() も文字列処理だと思うが?

446 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 16:44:16 ]
現実問題Cで作るべきアプリなんて存在しないのが辛いな

447 名前:デフォルトの名無しさん [2007/05/13(日) 16:45:51 ]
みなさんご親切に…大変ありがたいです。ちなみに、みなさんはどのようなプロセスで、今のC言語のプログラミング力まで力を伸ばされたんですか?簡易的に話して頂けたらいいのですが…

448 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 16:47:17 ]
ゲームプログラミングをやってみては?
囲碁・将棋・チェス・オセロとかね。
Cで作るのが最適。

449 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 16:50:23 ]
>>447
宇宙からの電波

>>448
オセロなら6行で作ってた神がいたな

450 名前:デフォルトの名無しさん [2007/05/13(日) 16:51:01 ]
>>448 やはりそうしようかなと思います。Cで作るべきアプリケーションがそんなに存在しないようならば



451 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 16:51:53 ]
自分は将棋が趣味で、自分より強い将棋プログラムを作ろうという目標があったから勉強した。
将棋プログラムってハッシュテーブルとかリストとかソートとかビット演算とか、
基本的なアルゴリズムが各所にちりばめられてるから勉強にはいいテーマだと思う。

452 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 16:52:40 ]
>>450
>Cで作るべきアプリケーションがそんなに存在しないようならば 

これって、どういう意味だと思っている?


453 名前:デフォルトの名無しさん [2007/05/13(日) 16:56:43 ]
>>452 C言語にはその点ではあまり需要がないものかと…

454 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 16:57:15 ]
>>450
あとはOSに興味あるならLinuxのソース読んでみるとか

学ぶのは自分で作ってみたり本読むか知っている人に聞く
プログラミング力のうちの知識はそれで十分だが英語できるかどうかで
足りない知識の吸収率が変わってくる(最先端の知識・アルゴリズムなど)
あとは経験で補えるが数学力のあるなし(知識じゃなく頭良いかどうか)
でどこまで伸びるかが変わる


455 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 17:06:48 ]
勉強のためにCの勉強してるなら
標準ライブラリのクローン(strcpy, strcat, printf, ...)と
UNIX系コマンドラインツール(cp, tail, head, sort, ...)のクローンを片っ端から作っていくと勉強になる。
サイズも小さいし、答え合わせ用のソースコードも(あまり初学者向けとは言いがたいが)あるし。

まあほとんど糞つまらん苦行に近いがコーディングは楽しいし一番無駄がないだろう。

456 名前:デフォルトの名無しさん [2007/05/13(日) 17:08:09 ]
うーん、自分はまだ、配列、構造体、ポインタ、ファイル操作、関数の作り方、変数、if文、switch文、for文、while文、をやってきたとゆう感じです。

457 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 17:10:47 ]
>>456
じゃ、もう少し実践的な奴やってみたら?
www.kumei.ne.jp/c_lang/
とか参考にしてウインドウ開いてみたりさ。


458 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 17:15:36 ]
バブルソートを用いて
構造体に対して、データが格納された構造体配列を
学生証番号で降順にソートする関数sortIDと
点数で降順にソートする関数sortEngを作成しなさい。

データの入力は、関数input_seiseki_pを呼び出して行い、
次に「どちらで整列しますか(1:学生証番号、2:点数):」と表示し
その入力により関数sortIDと関数sortEngを選択肢、その結果を
関数seisekiを使って表示する関数meinを作りなさい


上記の問題において私なりに途中まで作ってみたのですが、
ここから先がわかりません。。

どなたかお知恵を拝借させて下さい

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3974.c
↑途中まで作ったソースです。

よろしくお願いします。


459 名前:デフォルトの名無しさん [2007/05/13(日) 17:17:41 ]
もういっかい違う入門書を買ってみろってことですか?

460 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 17:40:37 ]
>>458
どこがどうわからないのかkwsk
学校とかのレポートなら解答出すわけにいかんし

>>459
>>457じゃないがおまえちゃんと>>457のリンク先見てみたのか?
簡単なデータペースやゲームの作り方も内容にあるだろ
それとも全部わかってるのかこの内容?



461 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 17:47:38 ]
まぁ、猫が妥当かどうかは問題だがな。

462 名前:デフォルトの名無しさん [2007/05/13(日) 17:48:44 ]
ちゃんと見てませんでした。ごめんなさい。

463 名前:デフォルトの名無しさん [2007/05/13(日) 18:10:29 ]
www.geocities.jp/supermisosan/rksimultaneousequation.html
のページにあるローレンツのプログラムをコンパイルしようとしたのですがエラーがでて出来ませんでした
開発環境に問題があると思うのですが、原因がよくわからないのでご教授願います
windowsXPでソフトは「C言語を始めよう!」、コンパイラはBorland C++ Compiler 5.5です
そのままコピペしてコンパイルするとエラーメッセージが(rktest.cはファイル名)
------ コンパイル開始 ------
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
rktest.c:
エラー E2140 rktest.c 17: ここでは宣言はできない(関数 main )
警告 W8057 rktest.c 57: パラメータ 't' は一度も使用されない(関数 f1 )
警告 W8057 rktest.c 57: パラメータ 'z' は一度も使用されない(関数 f1 )
警告 W8057 rktest.c 66: パラメータ 't' は一度も使用されない(関数 f2 )
警告 W8057 rktest.c 75: パラメータ 't' は一度も使用されない(関数 f3 )
*** 1 errors in Compile ***
------ コンパイル終了 ------
と出ます
スレ違いのような気がしますが、該当スレが見つからなかったのでここで質問させていただきました

464 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 18:18:13 ]
>>463
そのコードはANSI Cに準拠していない。

FILE *output; の行を main 関数の先頭に持ってくるといいよ。

465 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 18:39:02 ]
4つくらいのデータを1つのノードとして
そのノードを2二次元配列の1文字分のように扱いたいんですけど、
構造体を設定して
strcut ABC{
char
char
char
};
struct ABC data[][];とできますかね?

466 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 18:40:59 ]
struct ABC data[ ][ ];です

467 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 18:41:17 ]
なんでやってみないの?

468 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 18:42:18 ]
いややったんだけどセグメンテーションエラーだから
無理なのかと。

469 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 18:44:16 ]
>>468
コンパイルできないはずだけど

470 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 18:45:21 ]
>>469
どういう意味ですか?



471 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 18:46:05 ]
>>468
コード貼ってみろよ。中途半端に省略しないで。

472 名前:463 mailto:sage [2007/05/13(日) 18:47:21 ]
>>464
回答ありがとうございました
警告は消えませんでしたが、エラーが消えて無事コンパイルすることができました
この警告は無視しても問題ない範囲なのでしょうか?
原因を把握していらっしゃるのでしたらお伺いしたいのですが

473 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 18:48:14 ]
>>472
使ってない仮引数を教えてくれてるだけ。無視しても問題はない。

474 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 18:49:44 ]
>464
コンパイラがANSI Cに対応してないんでねーの?

475 名前:463 mailto:sage [2007/05/13(日) 18:50:31 ]
重ね重ねのご親切ありがとうございました

476 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 18:51:37 ]
>>474
ANSI Cでは変数はブロックの先頭のみで宣言できる。
bccはANSI準拠。

477 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 18:54:07 ]
struct ABC
{
char name[10];
char initial[10];
char home[10];
};と構造体を設定

struct ABC data[10][10];
int i,j;

for(i=0;i<10;i++){
for(j=0;j<10;j++){
strcpy(data[i][j].name,NULL);
strcpy(data[i][j].name,NULL);
strcpy(data[i][j].name,NULL);
}
}

一部ですけども、その二次元配列の中身の全ての各部門の初期化をしたいのですけど
この時点でセグメンテーション違反がおきるわけです。

478 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 18:55:21 ]
strcpy(data[i][j].initial,NULL);
strcpy(data[i][j].home,NULL);です


479 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 18:57:10 ]
馬鹿だろ。

strcpy(data[i][j].name, "");

480 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 19:04:35 ]
>>479
ありがとさん



481 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 19:07:04 ]
まあ
data[i][j].name = '¥0';
ってやった方がいいとは思うけど初期化だから別にいいか。

482 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 19:07:45 ]
うわ。間違い
 data[i][j].name[0] = '¥0';
こう

483 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 19:54:50 ]
大学でC言語を習っています。
ifやforといった基本的なことは理解しているつもりである程度プログラムは書けます。
今、アルゴリズムの授業を受けているのですがポインタや構造体が理解できません。
参考書に載っているソースを自分で打ち込んで実行したり、少し変えたりしているのですがどうも暗記っぽくなっています。
そのため「○○をポインタと構造体を利用して作れ」と言われても何からしたらいいかわからない状態で。
ポインタや構造体はC言語で一番重要と言われているので是非自分のものにしたいです。
皆さんはどうやってポインタや構造体を理解していきましたか?

484 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 19:57:33 ]
サンプルコードをいくつか読めばそれで理解できた。

485 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 20:10:22 ]
使ってりゃ理解できた

486 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 20:11:48 ]
>>483
わからないところは図を描いて理解。
デバッガで全変数表示してつながり・変化を確認。

487 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 20:12:40 ]
くそなげえプログラム書いてたら飯なんてどうでも
よくなって4時間経過w

488 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 20:30:41 ]
さっき構造体での二次元配列はどのようにすればいいのかを聞いたものですけど
その二次元配列data[i][j]において
1行さすのはdata[i]でいいのはわかるのですけど
1列をさすのはどうおけばいいですかね?

489 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 20:44:39 ]
基礎からやり直せ

490 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 20:46:59 ]
>>488
列は無理。



491 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 20:47:08 ]
>>488
メモリの配置を想像してみろ。
列は分断されていて連続したメモリとしてアクセスする方法はない。

492 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 20:57:08 ]
>>483
ポインタのイメージがつかめない場合はその都度アドレスと中身を表にして書いて理解
ポインタpのpと*pと&pの違い,あるいは変数aのaと*aと&aの違いが
わかっていれば大丈夫のはず
なぜポインタが必要かっていう設計思想を知りたければアセンブラとかを
学んでみるといいいかも

>>488
他の言語なら実装されてたりするけど
C言語ではそういう便利な機能は基本的に用意されてない


493 名前:デフォルトの名無しさん [2007/05/13(日) 23:12:11 ]
転職してプログラマになりたいんだ。
そのためにCとC++をマスターしたいんだが…。

それで今は一応C言語の基礎を終わらせたんだけど
C言語で関数やアルゴリズムやAPIなども覚えてから
C++行ったほうがいいのかな?

それとも先にC++でオブジェクト指向とか把握してから
いろんなこと手を出した方が良いかな?

494 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 23:15:29 ]
さっさとC++池
今時Cなんてほとんど使わないからC++からCのコードを利用する際の最低限の知識さえあれば十分。

495 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 23:16:05 ]
ぶっちゃけ経験年数のが大事。
マの真っ当な評価なんてマ以外に出来るわけがないんだから。

496 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 23:22:16 ]
あらためてアルゴリズムを考えてみると
その列であてはまるのは1つだから
列指定にしなくてよかった。


497 名前:デフォルトの名無しさん [2007/05/13(日) 23:23:21 ]
>>494
Cは使わないのか
じゃC++の勉強にいこうかな
まだCでコードとか書けないけど大丈夫かな・・・

>>495
年齢が30前後とかだと未経験じゃプログラマになるの難しいかな?

498 名前:デフォルトの名無しさん [2007/05/13(日) 23:29:01 ]
>>497
おまいさんはマ板にお逝き。

499 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 00:00:23 ]
>>497
どんなプログラムの仕事がしたくてどんな会社かによる
なんか実用的(ゲームでもいい)なプログラムひとつでも組んでると
就職のときにアピールにはなる
とりあえずマ板へ池

500 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 01:50:07 ]
プログラムの処理がどの程度完了しているのかを示すことを試みたのですが,
うまくいきませんでした.具体的には,以下のことをしました.

#include<stdio.h>

int main(){
int i, j;

for(j=0; j<10000; j++){
for(i=0; i<100000; i++){
}
if((j%1000)==0)printf("*");
}
printf("\n");

return(0);
}

j が10000ループされますが,1000ループごとに * を1つ出力し,
* が10個になったら処理完了を知らせるというものです.
上のソースコードのようにしてみたところ,j のループを出てから
* が10個同時に表示されてしまいます.

どのように書けばよいのでしょうか?お願いします.



501 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 02:02:37 ]
>500
ちゃんとjのループの途中で*が表示されてるけど?
ただ、1000個ごとなら(i%j)==999だろう。

502 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 02:07:08 ]
バッファフラッシュしなきゃいけないとかそーいう問題じゃないの?
環境は?

503 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 02:09:42 ]
ANSI C準拠だったら整数の範囲って32767までじゃなかった?

504 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 02:16:56 ]
>>500
for(i=0; i<100000; i++){

i 使って無いじゃんwwww
ワロタw

505 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 02:18:50 ]
int に10000も入れれませんwww
基本からやり直せよwww

506 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 02:19:42 ]
>>500
if((j%1000)==0){ printf("*"); fflush(stdout); }
という話か?

507 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 02:20:26 ]
>>504-505
釣りにしても ひどい

508 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 02:22:24 ]
C とC++ の違いを分かってない人がいっぱいいるので一応書いておく

Cの構造体には変数しか設定できないのですが
C++は構造体の中に関数を入れれます。それがクラスって呼ばれるものです

C++でヤリなされw

509 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 02:23:17 ]
何かの処理の進捗状況を表示する部分について質問してるんでしょ。
単にその処理の部分は省略しただけなんじゃないか?

510 名前:500 mailto:sage [2007/05/14(月) 02:25:02 ]
>>501-508
レスありがとうございます.

>>502さん及び>>507さんのもので,求めていた結果を得ることが出来ました.
これからfflushをググってみます.

>>504-505が釣りかどうかすら分からない自分が悔しいです.
勉強に励みます.ありがとうございました.



511 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 02:26:59 ]
進捗状況ってさ

ソースに
printf("処理○○終わり");
って書いていけばいいんじゃないの?

完成したら消せばいいわけだし

512 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 02:28:26 ]
だからfflushはだめだってw

513 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 02:30:15 ]
ほかっとけ
初心者だぞ相手はwww

514 名前:500 mailto:sage [2007/05/14(月) 02:31:20 ]
>>509
実際は処理内容が含まれますが,それとは別に処理内容を全部消したもの
>>500そのもののソースファイル)を作成して実行しても * が一度に出力された
ので質問をしにきました.

>>511
1試行で数分かかる繰り返し計算処理なので,何%終了したのかを概数でも
良いから表示させたかったのです.

>>512
駄目なのですか??

515 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 02:32:26 ]
マロックにサイズオブ使わずそのまま数字書いてるとか
goto使いなんだろうよ



516 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 02:33:37 ]
>>514
目的が達成できたんならそれで問題ないよ
環境依存だから、他の環境に持っていくことがあるなら問題だけど

517 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 02:34:10 ]
つうかさ
関数の再帰使わなかったら 処理スピードなんか大して変わらんよ
何千万行でも数行でも・・・

518 名前:500 mailto:sage [2007/05/14(月) 02:37:48 ]
>>516
今の環境のみで動かすものなので
これで大丈夫です.皆さん,ありがとうございました.

519 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 02:50:38 ]



     お ま い ら 難 し く 考 え す ぎ


 

520 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 02:58:24 ]
>>508
クラスの肝は派生できる事。
派生無しにクラスを語っても意味がない。



521 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 03:01:07 ]
C++はスレ違い

522 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 03:05:30 ]
>>516の言ってる環境依存ってfflushの事か?
確かに入力ストリームに対するfflushは未定義動作だが
出力ストリームに対しては正常に機能したと思うが違ったか?

523 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 03:08:10 ]
お前ら 
もう質問者はいなくなったぞw

524 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 03:16:47 ]
rand()で作った変数を
for()等でループにかけることって
実際問題 どうゆう場合ですか?

525 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 03:17:47 ]
頭の悪い質問に頭の悪い回答者
このスレほんとゴミ化したな・・・

526 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 03:23:18 ]
>>512
中途半端な知識でゴミ回答するんじゃないよ

527 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 03:30:23 ]

じゃあ 頭のいい質問しましょw

関数のポインタと、配列のポインタ等の置き場が勝手に割り付けられると聞いたのですが

実際はどのように割り付けてるんですか?

出来ればコンパイル自体のソースをもちいて答えていただきたいと思います

528 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 03:31:25 ]
>>524
質問の意味がよく分からんが
10体の敵がそれぞれランダムに動く場合とか?

529 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 03:32:34 ]
>>527
メモリの話か?

530 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 03:33:24 ]
>>527
ポインタの置き場って何?
コンパイル自体のソースって何?




531 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 03:34:03 ]
おーい!機械語読める奴探してるらしいぞw

532 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 03:34:55 ]
メモリの割付だおw

533 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 03:39:15 ]
よーわからんな
関数が置かれるアドレスの話か? なぜそこでポインタが出てくるんだ?
配列も置かれるアドレス? なぜ普通の変数じゃなくてわざわざ配列?
ローカルとグローバルによっても違うし
もうちょっと問題を整理してくれんか

534 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 03:47:40 ]
>>527
そんなもん環境依存だろ・・・

535 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 03:49:24 ]
【内容】浮動小数点型(float、double等)を使用せず整数型(int)のみを使用し
「√」計算を行える計算機を作る
【どこが分からないのか?】全部wごめん
【どうして欲しいのか】代わりにソースを書いて欲しい

536 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 03:51:40 ]
宿題は帰れ。

最近の学校は開平も教えないから困る。

537 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 03:53:53 ]
開平ってなんですか?



538 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 03:55:44 ]
ググれ

539 名前:デフォルトの名無しさん [2007/05/14(月) 05:58:55 ]
>>537
波平の双子の兄さんだよ。

540 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 06:53:39 ]
>>537
灘、駒場、麻布と並ぶ名門です。



541 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 09:26:01 ]
C >>>>>>>>>>>>>>>>> C++


C++は究極の中途半端言語

542 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 09:40:57 ]
C++に挫折したそうです

543 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 13:59:59 ]
>>535
intしか「√」内に入らないということでよろしいか?

544 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 14:01:04 ]
>>543
お前意味が分からんw
整数しか入らないか?って聞けよwww

545 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 14:07:39 ]
一番簡単な整数「9」を計算し「3」を出すプログラムを作りソースを書け
話はそこからだw

546 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 14:48:06 ]
そのまえにルートがなんなのか学んだほうがいいw

547 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 14:58:35 ]
>>535
確認だが正整数の間違いじゃないか?
そうでないとしたら複素数使わんと駄目だぞ

548 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 15:00:21 ]
0でも問題ないだろ。

549 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 15:00:56 ]
出題者がアホなのか質問者がアホなのか。
後者だろうけど。

550 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 15:01:52 ]
宿題野郎にヒントなんて与えなくていいよ。



551 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 15:02:58 ]
負数を与えたら死ぬようにすりゃいいじゃん。

552 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 15:03:41 ]
>>548
おまえひょっとして-9は整数に入らないとか思ってないよな?

553 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 15:04:17 ]
>>552
0は正整数に入らないと思ってる。

554 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 15:04:54 ]
>>552
おまえひょっとして0は正整数入るとか思ってないよな?

555 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 15:06:58 ]
負数が入っても絶対値の平方根に i つけりゃいいだけじゃん。

556 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 15:11:16 ]
おk 言い直し 非負整数でおk

557 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 15:14:10 ]
誤爆にレス付けてるアホどもってよっぽどやることがないんだね。

558 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 15:15:51 ]
つか整数か非負整数いずれにしてもなんで出題者はそんなのに限定してるんだ?
実数じゃなにか問題があるのか?

559 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 15:17:35 ]
ヒント:宿題

560 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 15:20:01 ]
>>557
どのレスが誤爆なんだ?
ちょっとよく分からん



561 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 15:22:14 ]
宿題スレのテンプレに似てると思ったんじゃないか?

562 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 15:30:15 ]
宿題スレってはじめて見てみたがひどいな
写し放題じゃねーかwwww
先生は宿題スレもチェックしとくべきだなw

563 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 15:34:55 ]
してるんじゃない?
そうでなくとも、まったく同じ答えが複数きてたらばれるだろう

564 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 15:38:04 ]
教授からここの宿題スレを使うなと警告が来た例もあるらしいよ

565 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 15:40:44 ]
そういうことするやつってそのへんは抜かりなくて少し変えてたりする
普段の態度や小テストで理解度見てたらだいたい自分でやったかどうか想像付くんだけど
さすがに人数多いといちいちチェックするのはめんどくさいw
院生に採点まかせっきりだったりもするからな

566 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 15:41:00 ]
うざい

567 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 15:43:56 ]
でも先輩友人の繋がりで写すのはどこでも常態化してるだろ。
それのネット版だ。
大してかわらんだろ。

568 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 17:37:23 ]
char a[5] = "unko"

どこにNULLが入っていますか?
6個目?

569 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 17:38:08 ]
何でデバッガ使わないの?

570 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 17:42:01 ]
>>568 |壁|д゚) あのさ 教科書きちんと読もうよ
NULLと¥0と0の違いをきちんと理解しろw





571 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 17:43:59 ]
>>568
先頭を一個目と数えて五個目にNUL文字が入っている。六個目は存在しない。

572 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 17:44:58 ]

NULL 値アドレスなし、値0、ポインタの値として使用できる
\0 値アドレスなし、値0
0   値アドレス有り、値0

573 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 17:51:17 ]
値アドレスって何ですか?

574 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 17:52:04 ]
イミフな空白はなんですか?

575 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 17:54:28 ]
>>572
あなたはなにをいいたいんですか

576 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 17:55:53 ]
>>535
問題の趣旨を考えてみたw

10/3を計算すると3.33333333333333333・・・・と続くが小数点以下が増えていけば4という端数が発生する
COBOLでやれよと言いたいwなぜにcでww

577 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 17:57:07 ]
ttp://www.psl.ne.jp/perl/pdojo00b.html
ちっちっち、なんか勘違いしていないかね?NULLポインタとNULL文字とはまた別物だよ?

578 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 18:08:59 ]
>>577
出力形式が、紙への印刷しかなかった時代が有ることを説明しないと無理でしょw


579 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 18:12:36 ]
>>578
いやいや、そうじゃなくて、NULLといってもポインタと文字とは別物だってことなんだが?

580 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 18:13:10 ]
>>572
正確に言えば
NULL=値無し、アドレス有り
¥0  =値0 、アドレス無し
0   =値0 、アドレス有り
だけどねw



581 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 18:13:58 ]
何で初心者が回答したがるんですか?

582 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 18:15:13 ]
>>580 イミフw
アドレス無かったら値入れれませんがw

583 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 18:16:35 ]
文字配列をNULLポインタに指定するのと、文字配列の中にNULL文字を入れるのとでは
ぜんぜん意味が違うということさ。前者はまだ文字列を指定するアドレスが指定されいない
何もないところを示しているが、後者は文字列の中にNULL文字だけでも入っていれば
空ではあるが文字列(の先頭)を示すアドレスは存在しているよん。

584 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 18:17:23 ]
>>580
志村ーーー、上の2つのアドレスありなしは逆逆w

585 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 18:17:37 ]
あの・・・
かなり前に関数で配列の数を数えたいといった(内積を計算したいと)ものなんですが
NULLになるまでcount++するというプログラムならいけるかなと思いまして。
ぬるぽっていうのは、char型のアドレス限定ですか?

586 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 18:19:29 ]
そもそも「¥0」ってなんだ?
好意的に解釈して「\(バックスラッシュ)0」の心算なんだろうけど、
'\0'と書かないと意味を持たない希ガス。

587 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 18:20:34 ]
>>580
アドレスの有無ってなんだよ

いかなる値でも記憶領域に属していればアドレスはあるし、
そうでなければアドレスはないだろ。

588 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 18:21:49 ]
#include <stdio.h>
int main(void) {
char *a=NULL,*b={"\0"},*c={"0"};

printf("%p : %s \n",a,a);
printf("%p : %s \n",b,b);
printf("%p : %s \n",c,c);
return 0;}

これの出力結果を見れば一目瞭然だよ

589 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 18:26:10 ]
>>588マジレス乙

590 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 18:29:13 ]
>>588を実行すると、異常終了して1行も出力されません。
どうしたら一目瞭然になるんでしょうか。



591 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 18:30:33 ]
>>590
とりあえずaを表示する部分を消して下の2つは確認できる?

592 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 18:31:00 ]
>>590
ゴメンよ なぜか知らんがコンパイルできて出力できてしまったよw

593 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 18:32:46 ]
>>588の出力結果は、俺んとこ(WinXP , BCC使用)でやったら

00000000 : (null)
0040A128 :
0040A12A : 0

っと表示された。

594 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 18:33:23 ]
(nil) : (null)
0x80484cc :
0x80484ce : 0

595 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 18:34:16 ]
>>585
ガッ
いや、char型のアドレスだけじゃなく他の型でもNULLはある。
charとかchar[]はNULL文字と深くかかわってるけどNULL文字とNULLポインタは全く別物。
NULL文字は文字列の最後に終端記号として置かれる物。
NULLはポインタがどこも指してない事を示す記号として色んな型のポインタ変数に入れられる物。

596 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 18:34:37 ]
0x0 : (null)
0x402000 :
0x402002 : 0


597 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 18:42:21 ]
こういうアホ連中がそのうち社会に解き鼻垂れるのかと思うと
陰鬱な気持ちになるな・・・

598 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 18:43:38 ]
ヒント
int main(void)
{
printf("てすつ");
return NULL;
}
やってみようw

599 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 18:45:45 ]
>>598
> return NULL;
いっ、いぃ〜〜のか?

600 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 18:46:08 ]
コンパイルとおりませんでした。



601 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 18:47:09 ]
$ gcc -xc -
#include <stdio.h>
int main(void)
{
printf("てすつ");
return NULL;
} ^D
<stdin>: In function ‘main’:
<stdin>:5: 警告: return makes integer from pointer without a cast
$ ./a.out
てすつ
$ echo $?
0

602 名前:デフォルトの名無しさん [2007/05/14(月) 18:48:01 ]
>>597=>>286
とか上からものを言っているあほなお前がすでに社会に出ている方が怖い

603 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 18:51:37 ]
ヒント
マは人格障害者の宝庫w

604 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 18:52:38 ]
俺に聞け スレで 俺に聞くなよ って態度は何様だよ?w

605 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 18:55:06 ]
ここは初心者さんのスレだから、イイのw
【1】
#include <stdio.h>
void main(void)
{
printf("てすつ");
return NULL;
}
【2】
#include <stdio.h>
int main(void)
{
printf("てすつ");
return ;
}
【3】
#include <stdio.h>
void main(void)
{
printf("てすつ");
return ;
}
それぞれやってみよう

606 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 18:57:22 ]
>>605
> やってみよう
何が目的?何が言いたい?はっきりしろ、うっとうしい

607 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 18:57:37 ]
そういう阿呆なこと教えるから、阿呆プログラマが量産されるわけだ。

608 名前:せんしぇ〜 ◆cNsKLREitk mailto:sage [2007/05/14(月) 19:01:47 ]
はい。
コンパイルのはじき方が理解できましたか?

609 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 19:02:46 ]
我ら幼い人類に 目覚めてくれと 鼻垂れた〜

610 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 19:10:28 ]
>>608
もしかして、そういうの面白いと思ってる?



611 名前:デフォルトの名無しさん [2007/05/14(月) 19:11:49 ]
ぜんぜん

612 名前:デフォルトの名無しさん [2007/05/14(月) 19:12:05 ]
605 名前:デフォルトの名無しさん 投稿日:2007/05/14(月) 18:55:06
ここは初心者さんのスレだから、イイのw
【1】
#include <stdio.h>
void main(void)
{
printf("てすつ");
return NULL;
}
【2】
#include <stdio.h>
int main(void)
{
printf("てすつ");
return ;
}
【3】
#include <stdio.h>
void main(void)
{
printf("てすつ");
return ;
}
それぞれやってみよう

ここは初心者さんのスレだから、イイのw
ここは初心者さんのスレだから、イイのw
ここは初心者さんのスレだから、イイのw
それぞれやってみよう
それぞれやってみよう
それぞれやってみよう
それぞれやってみよう

613 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 19:25:59 ]
>>608のが面白いとは思わないけど
>>612みたいなのも面白いとは思わない

614 名前:デフォルトの名無しさん [2007/05/14(月) 19:28:09 ]
>>613 自己擁護乙。お前つまんねっ、初心者を見ていらつくくらいなら
こんなスレに来るなよw お前みたいな気持ち悪い基地外に回答なんて求めてねーよボケ
俺は初心者じゃなくて回答する側だけどなw

615 名前:デフォルトの名無しさん [2007/05/14(月) 19:29:07 ]
んで、さっきっからこいつも何?せめて自分の使用環境くらい書けようぜぇ

600 名前:デフォルトの名無しさん 投稿日:2007/05/14(月) 18:46:08
コンパイルとおりませんでした。

590 名前:デフォルトの名無しさん 投稿日:2007/05/14(月) 18:29:13
>>588を実行すると、異常終了して1行も出力されません。
どうしたら一目瞭然になるんでしょうか。

616 名前:デフォルトの名無しさん [2007/05/14(月) 19:31:21 ]
んでさぁ、これって何の  ヒ  ン  ト  なの?なんについてのレス?
main関数の戻り値はintって指定してあるのに、NULL指定って何?ただのバカ?失せろ社会のクズw

598 名前:デフォルトの名無しさん 投稿日:2007/05/14(月) 18:43:38
ヒント
int main(void)
{
printf("てすつ");
return NULL;
}
やってみようw

617 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 19:31:27 ]
>>614
どこがどう擁護してるのか分からないけど
言われて傷ついた?
そろそろwつけるの止めたほうがいいよ

618 名前:デフォルトの名無しさん [2007/05/14(月) 19:32:40 ]
>>617
はいっ、そうやって言い返さないと気がすまない=自分を自分で擁護して必死こいているのがバレバレ
なんすけど?擁護する必要すらない。お前みたいな奴は養護学校へ行けw

619 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 19:33:18 ]
やっぱり最近ここ荒らしてるって
このwつけるやつだと思う


620 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 19:34:08 ]
>>617
> 言われて傷ついた?
それお前だろ?お前が基地外だのこのスレには不要だのバカだの言われて
戦力外通告されて必死だな



621 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 19:34:26 ]
>>618
面白くない

622 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 19:36:51 ]
>>619=>>286 以下このスレの質問には無関係な自分の知識をひけらかして他人の無知を探ろうとしている奴
クソレスして他人の気分を害している  お  前  が  言  う  な  
>>605みたいなのがうぜぇ。本当にバカじゃね?何いきなり戻り値の話に持ち込んでんだよ?
NULLを使う場所間違ってんぞ
以後、ここで質問に関係ないレスをしている奴は、現実世界で友達のいない寂しがりやだと思って
見守ってやってください。ここではもちろん スルー でおながいします。

623 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 19:37:47 ]
必死すぎだろ・・・

624 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 19:38:29 ]
やっぱ荒れてきた
>>622
wつけるの止めたの?

625 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 19:39:18 ]
必死すぎワロタ

626 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 19:39:55 ]
誰か配列の大きさを調べる関数を書いてくれるとありがたし

627 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 19:41:03 ]
>>626
大きさって何ですか?もっと詳しく!

628 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 19:42:52 ]
>>622
>ここで質問に関係ないレス
>  お  前  が  言  う  な

>>626
Cでそれは無理ではないだろうか


629 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 19:46:04 ]
さっきっからファビョって自分を擁護している奴って間違えた
>>580 と >>572か?まぁ、誰が誰をバカにしているかわからんが
答えるなら正確に調べてからレスするなり、参照できるページを使うのもありだぞ。
答えても相手が理解する能力がなければそれまでだしな。
けど、int mainの戻り値にreturn NULL;とかありえないから。
NULLに関するヒントとか何にもなってないし、明らかにint mainとしているだけあって
戻り値の指定が不適切ってことしか言えないから。関数の前に記述している型について
理解していないことをカミングアウトしなくて良いから、こんなスレで自分も初心者でぇ〜す
ってことをアピールしなくて良いから、ファビョらず黙っていてくれ。

630 名前:デフォルトの名無しさん [2007/05/14(月) 19:46:57 ]
>>628=間違ったヒントを出して赤っ恥かいているバカ
以後放置よろ



631 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 19:47:29 ]
すいません
C言語でしか作れないプログラムはありますか?
Cの良さってなんですか?

付け加えて他の言語の良さ悪さを教えてください

632 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 19:49:27 ]
>>630
じゃあ正しいヒントだせば?
でなきゃ>>628と同じ


633 名前:デフォルトの名無しさん [2007/05/14(月) 19:51:28 ]
>>632
ただしいヒントとかじゃなくて、何であんな無意味なヒント出したんだ?w
何が意図かはっきりしろって言われてんじゃん。なお、NULLポインタについては
すでにソース付きでレスがあるんであしからず。

634 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 19:52:32 ]
>>628=>>632 他人を装ってしらじらしいんですけど。
>>605 >>598 なんすかこれ?

635 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 19:53:12 ]
>>633
さっきから間違えてるんだけど
>>613より前にレスしてないし


636 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 19:53:49 ]
趣味でハックしてる人はソースコードでハァハァってオナニーしているって聞きましたが

お金かからなくていいですね・・・・・・・・・
うらやましいです

637 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 19:54:24 ]
っと、最後まで自分の間違いを隠そうと相手に必死こいて相手のボロを出そうとしている
赤っ恥さんがいましたとさ。以後放置よろ。

638 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 19:57:10 ]
>>637
いろいろ必死すぎ・・・

639 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 19:57:54 ]
つうか 過去レス探すのメンドクサイからHP作れよ!

640 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 19:58:14 ]
>以後放置よろ
これみて思い出したけど前回荒れたときもこいついた



641 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:01:38 ]
んで、みんな >>605 をそれぞれやってみた?
コンパイルエラーだの警告だの出たよね?だから何?としか言いようがないんすけど・・・
>>605は何をしたかったか、明確なレスを求む。

642 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:08:02 ]
>>641
やってないし、やる気もない

643 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:10:06 ]
>>642
やってないお前に聞いてないけど?だからそういうレスするなって。
NULLポインタのアドレスを表示するコンパイルもしてないくせに。

644 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:12:55 ]
>>643
>みんな
>それぞれやってみた?
やった人間だけレスしろというなら最初からそう書け
お前は抜けてるんだよいろいろと

645 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:14:08 ]
さっきっから何かと噛み付いてこないと気がすまない基地外がいるんだな。
わかりやすいね、そういう人間って。このスレには初心者が集まって
自分より知識のないやつが多いと思い込んで、浅はかな知識でレスしちゃっているんだろうけど
それが仇となってボロだしまくりで恥をかく奴。

646 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:14:17 ]
>>643
そろそろ消えてください

647 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:15:22 ]
>>645
いちいちレスするな
うざい

648 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:15:36 ]
>>644
はぁ?抜けているのはお前。しかもお前には脳みそが抜けているようだ。
日本語がわからない?何他人に指図してんだよ?こっちはやれよとは言ってないが
やってみた?とは聞いたが?何これ?何俺に噛み付いてんの?さっきから基地外だよなお前はw
抜けているのはお前の脳みそ、な?理解しろ。
> 最初からそう書け
何命令してファビョってんだよ?わけのわかんねーソースを書いたNULLポインタ厨w

649 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:15:44 ]
ん〜と、やってみてだから何?という人に早くレスしてあげてください。
さっさとね。

650 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:16:54 ]
何言ってもこういう自分中心人間には効かないんだろうな
ある意味うらやましい



651 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:17:11 ]
>>647=>>646=>>644 初心者叩きするのに失敗して赤っ恥ソースを出した厨房必死だなwwwww
何そこまで必死こいてんの?あっ、あのソースをコンパイルされて、自分がボロを出して
バカだということを露呈されるのが怖いんだぁ〜〜〜〜(^ー^)b
コンパイルした奴らにはあほだということがバレて大恥かいたもんなぁ〜〜〜君ってw


652 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:18:44 ]
>>650
そうだね、わけのわからねーソースを出してreturn NULLしちゃっているぬるい奴って
>>598 >>605 < こっ、こここ、これは・・・すごい大ヒントだ!こいつがバカだってことがわかる大ヒントw

653 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:20:42 ]
>>605
ほらほら早く説明しろよ。初心者さんがコンパイルして待ってまつよ。
ほら、涙目を拭いてさ。

654 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:20:46 ]
こうゆうスレには 群がってくるんだな 
有る意味新鮮

655 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:21:01 ]
>>590だけコンパイルできない(しょぼい環境)を使っていることがバレバレ
もしかして、OSはMS-DOSでつか?

656 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:22:24 ]
608 名前:せんしぇ〜 ◆cNsKLREitk 投稿日:2007/05/14(月) 19:01:47
はい。
コンパイルのはじき方が理解できましたか?
↑しかもこれがあのヒントの答えだろ?だから何?コンパイルエラーを誘うなら
別にreturn NULLじゃなくても通らないソースを書けばおkだろ?
NULLの取り扱いについてなんら説明になってないから。

657 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:25:05 ]
>>631
以前他のスレで似たような質問があってその回答だけどどうぞ。
pc11.2ch.net/test/read.cgi/tech/1175949937/539


658 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:25:31 ]
オレ、このスレのこと一生忘れない

659 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:25:34 ]
しつけ〜

660 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:30:26 ]
ってか俺も言っててわけわからなくなったw
return NULL;だけを持ち出したらそれはそれで問題とならないが
あれがその前の流れからして何のヒントなのか?それが知りたいw



661 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:35:07 ]
おわった?

662 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:37:58 ]
ヒント
#include <stdio.h>
int main(void){
int x=NULL;
printf("%d \n",x);
return 0;
}
さぁ、int型のxに代入された値はなんだった?俺んとこは0。
ただ、これはNULLポインタとは話は別なんで、あしからず。

663 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:39:12 ]
環境依存

664 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:41:07 ]
さて、もう一つ、大大だーーーーいヒントでピントを与えちゃよ。
次は文字データとしてNULLを指定しちゃうよ。俺んとこは空文字でコードは0が入った。

#include <stdio.h>
int main(void){
char x=NULL;
printf("%c %d \n",x,x);
return 0;
}

665 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:42:57 ]
そう、何か値(データ)として与えるのと、ポインタに対して与えるのとでは
ぜんぜん違うんですねぇ〜。これならわかるでしょ。NULLそのものが何なのか。
え?こんな説明じゃ不十分でヌルい?まぁ、後は使い方を適切にしてやってくれ。
ポインタにNULLを与えた場合、何も示すアドレスがないってことには変わりはないさ。

666 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:43:46 ]
>>662
これ、時々偉そうに「環境依存」だなんていう奴がいたりするけど
実際に0が出ない環境を見たことあるのか?


667 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:50:12 ]
>>665
まずは、お前のレスがどれか教えてくれ

668 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:56:55 ]
>>667
そうやって相手をさぐろうとするだろ?だから気持ち悪いって思われるんだよ。
>>662が本日の最初だが?だから何だ?って言われることをお前は言うから
日頃周りから「なんだこいつ?気持ち悪い」って思われてんだよ。
いいたいことがあるなら言えよ、相手次第でいえるとかやっているから
お前は弱者を見つけては相手を叩く性格になっちまったんだろ?
自分が筋の通る説明ができないなら黙ってた方が良いぞ。
ちなみに、&xにして%pでポインタのアドレスを確認すると、
中にNULLで与えた値は入っているが、ちゃんとアドレスは割振られているから。確認してみろ。


669 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:57:46 ]
>>535 プログラムよりアルゴリズムの方が(数学が)難しかった
#include<stdio.h>
int main(void){
    int x, tmp, left, ans, digit_align;

    printf("正整数を入力してください > ");
    scanf("%d", &x);
    if(x<0){printf("\nError:正整数を入力してください\n");return 1;}

    for(digit_align=1;x/digit_align>=100;digit_align*=100);

    left=x/digit_align;
    ans=0;
    while(left>0 || digit_align>0){
        for(tmp=9;tmp>0;tmp--)
            if((ans*20+tmp)*tmp<=left)
                break;
        if((ans*20+tmp)*tmp<0) break; // overflow?
        printf("%d", tmp);
        if(digit_align==1) printf(".");
        digit_align/=100;
        if(digit_align>0)
            left=(left-(ans*20+tmp)*tmp)*100+(x/digit_align)%100;
        else
            left=(left-(ans*20+tmp)*tmp)*100;
        ans=ans*10+tmp;
    }
    printf("\n");

    return 0;
}

670 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:00:50 ]
ポインタに対してと値との違いがわからないならプログラムなんてやめとけ。

#include <stdio.h>
int main(void){
char x=NULL,*xn=NULL;
int y=NULL,*yn=NULL;

printf("char x=NULL : %p -%c- \nchar *xn=NULL : %p \n",&x,x,xn);
printf("int y=NULL : %p -%d- \nint *yn=NULL : %p",&y,y,yn);
return 0;
}



671 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:00:51 ]
#include <stdio.h>
void main(void)
{
printf("てすつ");
int a;
a=NULL;
return a;
}


672 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:04:23 ]
>>668
被害妄想激し過ぎだろ…
普通に流れが混乱して誰が誰か分からなかっただけなんだが、
まあいいや

673 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:06:10 ]
>>669
ありがとうございました
助かりました

他のアホどもとは格が違いますね

674 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:06:58 ]
>>672
うざい。何が言いたいかはっきりしろ。相手がどうとか関係なしに
NULLがどういうことか?の話で説明する相手次第で事実関係を捻じ曲げたり
おかしいと自分が思ったことを叩きつけるのはどうかと。言いたいことがあるなら言え。
すでにソースを提示して証明されてんだろ。ポインタとNULL(データ)を与えるのとはどういことかについて。
理解できないのにこんなスレで無知な初心者相手にいい加減なレスをしているのか貴様は?

675 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:11:02 ]
>>672
相手にしないほうがいいよ
さっきだって人違いって言ってるのにわかろうとしないし
といっても擁護乙って言われるだけだけど
自分に対する批判は>>605だと思ってるから
ちなみに>>662が本日の最初って言うのはうそだから


676 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:12:14 ]
>>673 訂正
先頭に #include<limits.h> を追加

        if((ans*20+tmp)*tmp<0) break; // overflow?

        if(ans>=(INT_MAX-81)/180) break; //overflow?

677 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:13:21 ]
>>675
ですね
すみません

678 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:21:10 ]
ぬるぽを代入するなら#define NULLPO 0にするか普通に0使えって事ですか?

679 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:21:55 ]
>>631
マイコン等を使う組込系では、Cしか高級言語の選択肢がない
(ほかは低級なアセンブリ言語)という場合も多い。

680 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:23:58 ]
>>678
NULLを代入したいのならNULLと書けばいいだろうガッ



681 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:24:08 ]
>>666
「NULLが(void*)0と定義されていてコンパイルエラーになる」という可能性もある。

>>673
次から宿題スレ行け
C/C++の宿題を片付けます 87代目
pc11.2ch.net/test/read.cgi/tech/1179025919/l50

682 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:25:22 ]
>>669
ここを宿題スレにするつもりか?

683 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:28:14 ]
C FAQ の事も時々でいいから思い出してあげてください。
www.kouno.jp/home/c_faq/c5.html#0


684 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:32:59 ]
>>681
んー・・・
基本的に「代入したらいくつになるの?」って話だから、
代入ぐらいさせてくれ(っていうか初期化だな。こりゃ)。

int x=(int)NULL;

で x が 0 で初期化されない環境があるかないか、という事で。


685 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:42:51 ]
あのさ 
お前らって「Cパズル」ってやったこと無いだろw



686 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:48:31 ]
ないお^^

687 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:52:39 ]
>>684
C FAQから
www.kouno.jp/home/c_faq/c5.html#17
たぶんこうこうところなら(int)NULLは0にならないのだろう

688 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 22:15:24 ]
>>687
>たぶんこうこうところなら(int)NULLは0にならないのだろう 

www.kouno.jp/home/c_faq/c5.html#5
を読んだ?


689 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 22:27:51 ]
Cなら NULL か 0 を必要に応じて使い分けなくてはならない

C++なら、ほとんどのプログラマーが 0 を使っている

VCなら nullptr で即解決

690 名前:687 mailto:sage [2007/05/14(月) 22:37:03 ]
>>688
すまん687のNULLは(void*)0のことだと思ってほしい。
FAQ 5.5は0をポインタ型として扱うときの話だろ。
でもここではヌルポインタを整数型として扱おうとしている。
C++でいうところのreinterpret_cast<int>((void*)0)を表したかった。



691 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 23:28:36 ]
規格上の話を言えばポインタから整数型への変換は implementation-defined だから、何も言えないかと。
大抵はいちいち変換かけたりせず値としてはそのままにするだろうから、実際上は >687 の通りだと思う。

で、調べてて気づいたんだけど、9899:1999 だと、ポインタ型→整数型→元のポインタ型で元の値に戻ることすら
保証されてない(void* 経由ならOK)。
14882:2003 だと、整数型が十分な大きさであれば↑で元の値に戻ると明示されてるんだけど。

692 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 23:48:33 ]
ttp://ja.wikipedia.org/wiki/%E3%83%8C%E3%83%AB_(%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF)
まだやってんのかよ。実際にNULLをコードの中に入れてどういう結果が出力されたかで
わかるだろ。各個人の勝手な定義や妄想はいらねーって。
time(NULL)だの使われているけど、何もないを与えてもしゃーないべ?
だから、データや値として与えた場合と、ポインタに与えた場合とでどう違うか?

それはそうと、>>580あたりで \0 (NULL文字)の値(コード)が0なのは良いとして
アドレス無しってところがどういうことなのか、説明を求む。
文字列の終端を示す文字として使われているんで、その終わりを示す場所にも
先頭からそのNULL文字そのもののアドレスまでちゃんと割り振られているとは思うが?
>>568で言えば unko の後ろに空文字が入っている場所のアドレスが存在していると思うが?

#include <stdio.h>
int main(void)
{
char a[5]="unko";
size_t i,sz=sizeof(a)/sizeof(a[0]);
for(i=0; i<sz; i++)
printf("a[%d] : %p / \"%c\" \n",i,&a[i],a[i]);
return 0;
}

693 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 23:56:42 ]
printf("a[%d] : %p / \"%c\" / code : %d \n",i,&a[i],a[i],a[i]);
なんならこうして、文字コードも参照してみるか?って終端の\0(NULL文字)に対して
ASCIIコードでは0が割り当てられているのは既出だが、ちゃんとコード(値)0として
扱われてんだよ。そこは実装されている言語によって扱われ方も違う点はあるだろうけど
なんだかんだ言ってもそれはおかしいといっても、実際はそう扱われているというのが現実。
なぁ、おまいら、いい加減目を覚ませよ?辻はもう処女じゃないんだぜ?それが現実さ(タバコを吸う紳士のAA略)

694 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 23:58:03 ]
だれもそんな話してないだろ・・・

695 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 00:00:21 ]
またNULLの話してんのかよ。毎度毎度よく飽きねえな

696 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 00:01:24 ]
これでどうだ?
#include <stdio.h>
int main(void)
{
char a[5];
size_t i,sz=sizeof(a)/sizeof(a[0]);
a[0]='u';
a[1]='n';
a[2]='k';
a[3]='o';
a[4]=NULL;
for(i=0; i<sz; i++)
printf("a[%d] : %p / \"%c\" / code : %d \n",i,&a[i],a[i],a[i]);
puts(a);
return 0;
}


697 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 00:02:29 ]
>>694
反応しちゃダメ

698 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 00:02:56 ]
毎年分からないやつが入ってくるんだから
同じ話題が繰り返されるのはしょうがないさ

699 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 00:09:19 ]
これが現実だ φ1・2・3!
images.google.co.jp/images?q=%E6%9D%89%E6%B5%A6%E5%A4%AA%E9%99%BD&lr=lang_ja&ie=UTF-8&oe=UTF-8&aq=t&rls=org.mozilla:ja:official&client=firefox&um=1&sa=N&tab=wi
ttp://puka-world.com/php/upload/ren/img-box/1178589185304.jpg
ttp://puka-world.com/php/upload/ren/img-box/1178589261938.jpg


700 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 01:35:35 ]
つまりこういう事

void hoge(void)
{
return;
}



701 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 01:45:03 ]
戻り値void に 空return を、御丁寧につける必要なんてないだろ


そんなふうにかんがえていた時代もありました

702 名前:デフォルトの名無しさん [2007/05/15(火) 01:50:35 ]
すみません。PHPはC言語でできてるみたいですが、ソースないっすかね?

703 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 01:52:28 ]
>>702
ここからどうぞ
www.php.net/downloads.php

704 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 01:57:28 ]
>>693
\0は八進法で値を指定するエスケープシーケースなのだから、
ASCIIでなくても'\0'は0に等しくて当然。

705 名前:デフォルトの名無しさん [2007/05/15(火) 02:26:10 ]
>>704
お前もわかってないアホだな。無駄口たたくな、自分の勘違いをさらすだけだから。
文字コードを表示するのに %d を用いている点が理解できてないな。

706 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:29:13 ]
704 名前:デフォルトの名無しさん 投稿日:2007/05/15(火) 01:57:28
>>693
\0は八進法で値を指定する
\0は八進法で値を指定する
\0は八進法で値を指定する
\0は八進法で値を指定する

ja.wikipedia.org/wiki/%E5%85%AB%E9%80%B2%E8%A8%98%E6%95%B0%E6%B3%95
ん?八進法で値を指定?意味わかんねー。参考にできる文献やソースきぼんぬ。
文字コードの割り当てに何進法とか関係ないから。むしろ16進数にて対応コードを
示している文献はよく見かけるけど。

707 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:33:47 ]
>>704
文字の終端を意味する \0(NULL文字、空文字)を入れたところにも
ちゃんとデータを格納するアドレスが存在しているって話だが?
なんかややこしくなっているが、 unko の後ろにNULL文字があるからといって
unko の後ろのアドレスがNULLになっているわけではないんだが・・・
その説明に何をわけの分からない説明にもならないことをいい掛かってきてんだね君は?
まさか、値は0だけどアドレスはなしとか書いちゃった赤っ恥>>580でつか?

708 名前:デフォルトの名無しさん [2007/05/15(火) 02:34:46 ]
>>706
「猫でもわかるC言語プログラミング」
これ読め


709 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:37:00 ]
ぐぐったらこの154にほとんど似たような文句があった・・・
nssearch.hp.infoseek.co.jp/clang/1127737437.html


710 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:40:51 ]
580 名前:デフォルトの名無しさん 投稿日:2007/05/14(月) 18:13:10
>>572
正確に言えば 正確に言えば 正確に言えば 正確に言えば 正確に言えば
¥0  =値0 、アドレス無し ¥0  =値0 、アドレス無し ¥0  =値0 、アドレス無し

その後、文字の終端を意味するNULL文字の入ったデータに
前の文字列に続いてアドレスが割り振られていたことが
プログラムの実行にて証明されたため、赤っ恥をかいてしまったのであ〜〜る
あっ、ちなみに16進数で表示したかったら、%d から %x なり %X で指定してね♪



711 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:41:15 ]
>>706
704じゃないけど
八進法で値を指定ってのはたとえば'A'=65(10進)=101(8進)だから
これを'\101'と表すって事では。

712 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:42:45 ]
八進法 八進法 八進法 八進法 八進法 八進法 八進法 wwwwwww

713 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:44:06 ]
酔ってんの?
素面でこれだったら怖いけど。

714 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:45:47 ]
八進法、発進!ブ・ラジャー!

715 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:46:21 ]
相手すんなよ・・・くだらん

716 名前:ここでフレーム投下 mailto:sage [2007/05/15(火) 02:48:41 ]
cで10進定数の0を使いたいのですがどうしたらいいでしょう。
普通に0と書いたのでは8進定数になってしまいました。

717 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:49:34 ]
単に順番にコードが割り当てられているのに、なぜか八進法wwwwww
何のために2進数、16進数があるか分かってないな、この八進法w
>>704
> ASCIIでなくても'\0'は0に等しくて当然。
これも意味が分からん。そりゃ何進法になっても0は0だが
そういうことをいってんじゃねーよ。\0が割り当てられている文字コードが0って話だろ。
ASCIIだからじゃなくて、ASCIIではそうなっていて、そのASCIIコードを参照できる
ソースコードを用いた説明で、なぁ〜〜に意見にもならないわけの分からない理論を持ち出してんだ?
\0 が 0 に等しい、だから何?そうじゃなくて、文字の終端を表す NULL 文字が入ったアドレスには
値に 0 が入っているのを敢えて参照して、ちゃんとNULL文字もデータとして格納されている
アドレスが割り振られているって話 な・ん・だ・がw

718 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:51:11 ]
八進法必死だなw

719 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:52:18 ]
16進数 → \x00
8進数 → \000

\0 は8進数の0だったんだよ。まあ同じ0だけどね。

720 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:52:22 ]
消えろゴミめ



721 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:53:00 ]
八進法、発疹!そりゃちゃいまんがなw

722 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:54:04 ]
704 名前:デフォルトの名無しさん 投稿日:2007/05/15(火) 01:57:28
>>693
\0は八進法で値を指定するエスケープシーケースなのだから、
ASCIIでなくても'\0'は0に等しくて当然。

ASCIIとかじゃなくてNULL文字の入ったchar型のデータにどんな値が入ったかであって
値が入っているアドレスが存在するって話でしょ?ぶぅ〜〜ふふふふっ(吹いた)

723 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:55:45 ]
ム板って何か些細なことに異様にこだわる人がいるよね。
やっぱ仕事のストレスなんだろうか。
SI業界で就活してたけどやめとこうかなあ…orz

724 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:55:51 ]
>>716
0で始まる数字は8進数だよ。

int a = 090; とか書いてコンパイルしてみ、8進数に9という数字は無いからエラーになるよ

725 名前:気まぐれアナスイ mailto:お腹いっぱい@気まぐれアナスイ [2007/05/15(火) 02:56:14 ]
Cの構成を考えていて、偶然にも、
driver.ができました。
『C言語なら俺に聞け』と
なっている位なのでそんな物は、
とっくにご存知なのでしょう、ね?

726 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:57:04 ]
>>708
読む必要性なし、というか、ちゃんと八進法に関する文献やソースを分かりやすく
提示してもらえませんかねぇ?ASCIIじゃさまざまな文字が表現できないんで
いまさらASCIIだけにこだわる気はねーよ。文字コードで10進数以外だと
16進数で表記されているのをよく見かけるんですけどねぇ〜。どこでつか、八進法で
表記しているところは?なんで八進法?そんなんで表記したら、桁が多くなるものだと
10進法で表すより桁の数が増えて面倒なんすけど?

727 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:59:00 ]
いったい何の議論をしているのかさっぱりわからんw

728 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:59:55 ]
阿呆が喚いてるだけだろ。議論になんかなってないよ。

729 名前:気まぐれアナスイ mailto:お腹いっぱい@気まぐれアナスイ [2007/05/15(火) 03:00:24 ]
>>725『続』
忘れていました、拡張子をなくしてもdriver、です。

730 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:00:36 ]
いい加減秋田から、まとめとくね。NULL文字を入れたところにもアドレスは存在する。
勝手にNULLポインタにしちゃだめだぞ、めっ



731 名前:気まぐれアナスイ mailto:お腹いっぱい@気まぐれアナスイ [2007/05/15(火) 03:01:48 ]
>>726
source.で作成したので厭です。

732 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:02:19 ]
何でお前らそんなに喧嘩腰なの^^

733 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:03:30 ]


734 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:05:25 ]
>>708
>猫でもわかるC言語プログラミング
これは糞、ほかのをおすすめします

735 名前:気まぐれアナスイ mailto:お腹いっぱい@気まぐれアナスイ [2007/05/15(火) 03:06:23 ]
>>726『続』
!(Φ_Φ+)
あ、number.を間違えてしまいました、失礼。

736 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:06:37 ]
さぁ、みんなで八進法の文字コード対応表を表示させようじょのいこ!

#include <stdio.h>
int main(void)
{
int i,cnt;

for(i=32,cnt=0; i<127; i++,cnt++) {
printf("%c : %3d",i,i);
if(cnt%6==5) printf("\n");
else printf(" | ");
}
printf("\n\n魅惑の八進法!\n");
for(i=32,cnt=0; i<127; i++,cnt++) {
printf("%c : %3o",i,i);
if(cnt%6==5) printf("\n");
else printf(" | ");
}

return 0;
}

737 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:06:52 ]
んじゃこないだ見かけた望洋のアレ

738 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:08:59 ]
あっ、すまん、これも追加しといて

printf("\n\n平凡な十六進法!\n");
for(i=32,cnt=0; i<127; i++,cnt++) {
printf("%c : %X",i,i);
if(cnt%6==5) printf("\n");
else printf(" | ");
}

739 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:11:20 ]
( ´ω`)

740 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:11:24 ]
微笑ましいけど鬱陶しいなあw



741 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:12:29 ]
天災と思って諦めてる

742 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:13:02 ]
天才に向かって失礼な、めっ、めっめっ(猫をしかりつけるように)

743 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:17:53 ]
カス

744 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:18:01 ]
ハゲ

745 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:26:25 ]
ナルはナルシストのナルさぁ〜、決して成瀬川なるのなるではない。

746 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:26:33 ]
(´ω`)

747 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:30:52 ]
なんか変な方向に行ってるみたいだな。

1. ヌル文字の値が '\0' なのは規格で決まってる。

2. \0 という特別なエスケープシーケンスは規格で用意されておらず、
  これは 8 進数の値を直接埋め込むエスケープシーケンスでしかないので、
  '\0' の値はどの環境でも厳密に 0 になる。
  (そもそもそんな特別なエスケープシーケンスを用意してしまったら、
  8 進数で 0 を埋め込むことが不可能になってしまう)

これでいいだろ、もう。

748 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:35:06 ]
>>747
だからぁ、NULL文字もちゃんとデータとして存在しているから
文字の終端を示す\0が入っているアドレスもちゃんと存在しているって話なんだが?
規格がどうとかじゃなくて、空文字でNULLが扱われていてもちゃんと文字データとして
存在して実態があるからNULLポインタの示す場所と勝手に解釈するなって話ナノーメートル

749 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:36:40 ]
アドレスがあるのは当たり前だろ。

750 名前:気まぐれアナスイ mailto:お腹いっぱい@気まぐれアナスイ [2007/05/15(火) 03:37:54 ]
!(Φ_Φ+)
頑張っていますね?
source.を書きたい、のですが、
original.なのでとって置きます。




751 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:39:07 ]
あと、NULLポインタが示すオブジェクトに対してデータを表示させようとかするのは
どうも過去ログからしてタブーっぽい。指し示す場所がないゆえに、環境によっては
(null)とご丁寧に表示してくれているが、実体がないから何も表示できないのが当たり前だし。

752 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:42:19 ]
>>748
うーん、「NULL」が出てきたら脳内で「NULLポインタ」に置換しちゃう人?
>>747は全くNULLポインタについて言及してないよ。

だけどまあ、NULL文字ってのは誤解しやすいような気もするから、
終端文字と表現するのがいいんじゃねえのかなあ。

753 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:44:13 ]
NULL ポインタは参照しちゃいけない。
「あらゆる有効なアドレスと比較しても等しくならない」のが NULL ポインタの定義だから。

ただ、NULL 渡して表示させるという場合、
内部でポインタが NULL ならこれを表示・・・という分岐があるのなら問題ない。
参照してないから。

754 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:44:21 ]
彼は自分の知らないことに話が展開していくのを怖がってるんですよ

755 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:45:04 ]
おまいらほんっとにナルちゃんが好きなんだね ♥

756 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:45:50 ]
NULL 文字という表記は良くない。
NULL はヌルポインタを表すマクロ名を表すから、紛らわしい。
null 文字という風に小文字で書くならいい。

757 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:45:50 ]
>>749
いや、だからそれを勘違いしたのが >>580 なんだが、お前いい加減にしろ?
何歳だ?ゆとり教育世代か?寝ろやボケガキ

758 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:46:38 ]
>>580 みたいな無茶苦茶なのは、既に訂正するとかそういうレベルじゃないな。

759 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:46:39 ]
>>754
はいはい、すでに話がわかっているという証拠のソースも何度も提示しているのに
それすら自分の思い込みや勘違いで否定しているお前が論破されるのが怖くて
何も筋の通った意見がいえなくておびえているのはお前だろ?

760 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:46:51 ]
表記の問題じゃない



761 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:47:37 ]
怖がりすぎ

762 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:49:02 ]
「彼」って自分の事だと思ったの?
自覚してんのだなぁ。

763 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:49:15 ]
>>752
> >>747は全くNULLポインタについて言及してないよ。
いや、モロ最初の項目で
> 1. ヌル文字の値が '\0' なのは規格で決まってる。
言及してんじゃん。だから、NULL文字の値が\0とか話ではないが
値は \0 ではなく 0 だが?それすら間違ってんじゃん。
あくまでもエスケープシーケンス、 printf(""); の " " の中で使うときとかで用いられる
\n \t のように \ がついたものは値じゃないんだが?w

764 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:50:55 ]
んで、ことの本質は >>580 にある \0 あるいは NULL文字データが入っているところにも
ちゃんとアドレスが文字列の終わりに続いて割り振られているって説明に、なぁ〜〜に
ごちゃごちゃとわけのわからない言い掛かりをしてきているんだね?って言っているんだが?
いや、もうええわ。八進法とかわけのわからん話を絡めるし、気持ち悪いぜ?

765 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:53:08 ]
>>763
だからそこのどこにNULLポインタが出てくるの?

766 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:53:16 ]
NULL
ヌルポインタを表す単なるマクロ。
C では 0 あるいは ((void*)0) と定義される。

'\0'
ヌル文字。値の全てのビットが厳密に 0 となると規格で決められている。
この表記の場合、型は C では int 、C++ では char 。

0
数値の 0 でもあり、ヌルポインタでもある。
型は int ではあるが、値 0 になる定数式がポインタに代入された場合、
あるいはポインタと比較された場合は、ヌルポインタと解釈される。
その場合、その値のビットが全て 0 になるという保証はない。

767 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:53:19 ]
日本語でおk

768 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:54:30 ]
> 1. ヌル文字の値が '\0' なのは規格で決まってる。
全くNULLポインタには言及してないんだよ。

769 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:55:13 ]
ヌル文字とヌルポインタは全くの別物ってのが分かってないのかねえ。

770 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:56:34 ]
>>763
分かってない奴がでしゃばるな



771 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:58:03 ]
あたいのこと、舐めたらいかんぜよ。
ちなみに \a \n \t \0 だのは文字であって値ではありませんので、あしからず。
それらを示す文字コードは値といってもまぁ差し支えないかもしれんけどね。
んじゃ、レベルの低い知ったかを相手にするのもここらでやめておいてやるわ。
まったく、本当に理解力のないどうしようもないやつっているんだなw
だからこの世はいつまでも頭の悪い奴が立場が悪くなってファビョって自暴自棄になるんだなw

772 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:59:23 ]
>771
自己紹介乙

773 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:59:46 ]
C++ の規格票(しかも 1998 年のドラフト)ですまんが、

null character (respectively, null wide character), whose representation has all zero bits.
ヌル文字(あるいはヌルワイド文字)、これは全てのビットが 0 の表現をとる。

>>771
\0 は文字だが '\0' は値だぞ。

774 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:00:23 ]
ということで



  NULL文字をNULLポインタと思いこんで延々暴れたバカがいた



ということでよいかな。まあ紛らわしいからその分は差し引いてあげるけどさ。

775 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:01:15 ]
>>774
よい

776 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:02:17 ]
ttp://ratan.dyndns.info/MicrosoftVisualC++/eskape.html
\がついたものはここでも説明されているように「文字」であって値には該当せず。
いわゆる制御文字ゆえに表示される文字とは別扱いだが
それらにも「文字コード」が割り振られている。その文字コードを
char型のデータに入れることで扱っているのだが、そこまで理解できないかなぁ
理解力のないお○カちん達ってw
だからNULL文字に対応するコードが0であって、\0は値じゃなくてNULL文字と言うべき。

777 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:03:07 ]
>>772
もうその程度のことでしか反論できないでしょ?おまえどこの学校出身だ?
まぁ、ランクE未満の大学でもなく大学未満なんでしょうね。
派遣のお仕事がんばってねぇ〜〜 ♣

778 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:03:25 ]
>>747 で \0 と '\0' を使い分けてるのが理解できないんだろうか。

779 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:04:19 ]
「NULL文字」なんて腐った表記をする奴にロクな奴はいない。
null文字と書け。

780 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:05:45 ]
>>765
>>580
> ¥0  =値0 、アドレス無し
参照。ちなみに\0(NULL文字、空文字)に割り当てられているコードは0だが
\0自身は値ではなく「文字」ですから。



781 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:06:48 ]
\0が値だなんて誰か言ってたっけ

782 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:08:18 ]
まあ、'\0' も値が 0 になる整定数式だから
ヌルポインタとして扱おうと思えば扱えるけどね。
紛らわしいから絶対やっちゃいけないが。

783 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:09:01 ]
>>580 がクソなのは既に誰もが認めている終わった話題だ。

784 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:09:57 ]
580・・・
誰かがこんなのを擁護してるとでも思ったのかな

785 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:10:38 ]
必死に無意味な説明をしようとした奴がボロ出しまくりでワロスwwww
なんだよ、\0が値とか言っちゃっているやつ?あたいにそんな小細工
通用しないかんねぇ〜(スケバン恐子風に)
エスケープシーケンスは文字であって値ではない、これ定説。
ライフスペースでも定説。オウムには破防法(意味不明)

786 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:10:53 ]
int *p = 2 - 4 + 2;

これもヌルポインタ。

787 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:13:55 ]
>>747
1. ヌル文字の値が '\0' なのは規格
        ^^^^^^^^^^^^
対応コードが0ではあるが、NULL文字は値ではなく文字ってことな・ん・だ・が?
文字って値なんだぁ。それじゃぁ、char a[10]; a[0]='a';ってaって文字を入れるとき
値にAが入っちゃうのぉ〜〜?もはや値に有らず。
a[0]='\0';で空文字を入れることはあるけど、値で入れるなら '' とかつけずに
対応している文字コードを入れたらええんでな〜〜い?

788 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:14:12 ]
>>785
ヌル文字とヌルポインタは別物ってことはわかったの?

789 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:17:09 ]
自分の意味不明な筋の通らない理論を押し切ろうと、もう必死で
相手の筋の通った理論を屁理屈で解釈してつつこうと必死でしょ?
そんなんだから物事の本質が霞んでしまうんだよ。
路上を見てみろ?道路交通法をまともに守っている奴がいない、破っている奴らばかり
だから自分もそうする?それじゃ自分 も 道路交通法を理解していないと
道路交通法を知っている人に対して思われているだけだと気づくんだな。
警察の前じゃ違反は違反だぜ?キップ切られるぜ?免許傷つくぜ?
俺はまだ違反点数の累積は0だ。けど、違反点数も俺の免許もNULLじゃないぜ?

790 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:17:50 ]
もうぬるぽ('A`)



791 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:17:52 ]
「値が'\0'」と書いてあるんであって「値が\0」とは書いてないんだよ。

792 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:18:27 ]
>>788
あたりまえじゃん、っつーかそれをず〜〜〜っと昨日の>>580に対して言い続けてきたんだが?w
俺が理解していないと思ってんの?何回文字列の終端を示すNULL文字自身が入ったデータの
アドレスが存在していて、文字列の後ろの終端を示す部分がNULLポインタになっていないと説明したら
わかるんだと?鬱陶しいなぁ・・・

793 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:18:48 ]
なるほど。そこにつっこんでたのか。
「ヌル文字の値」は「ヌル文字の文字コード」の意味だが、
確かに紛らわしい表現ではあったな。

でも、それを言うなら、
>char a[10]; a[0]='a';ってaって文字を入れるとき
                ~~~~~~~~~~~~~~~~~~~~~~
>a[0]='\0';で空文字を入れることはあるけど、
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
もおかしいな。
「aの文字コードを入れるとき」、
「空文字の文字コードを入れることはあるけど」だな。

794 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:19:43 ]
>>791
だから \0 は値じゃなくて 文字 だっつってんだろ・・・説明だって出てんだろ。
その文字、NULL文字に該当する対応コードが 0 だっつってんの。
対応コードは \0 か? \0 って何進法?w

795 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:20:24 ]
>>792

763 名前:デフォルトの名無しさん [sage] :2007/05/15(火) 03:49:15
>>752
> >>747は全くNULLポインタについて言及してないよ。
いや、モロ最初の項目で
> 1. ヌル文字の値が '\0' なのは規格で決まってる。
言及してんじゃん。

796 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:21:28 ]
>>794
\0 は文字だけど '\0' は文字リテラルで値だろ!!!
何度言ったら分かるんだ!!!

797 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:22:38 ]
>>793
お前が >>736 の出力結果を理解していないことがわかった。もう黙ってろ。
文字型の変数に文字でなくても直接文字コードを入れても使えることが理解できてないんだな。
通りで話がわからないわけだw
なんか、俺がNULLポインタとデータの違いがわかってないみたいないわれ方しているが
さっきっから俺に対して曲解した考えで論破しようと必死こいている奴の方が
曲解しているだけあって理解していないのがバレてんだが・・・なんだよ \0 が値って?
あたいにはそんなの通用しないかんね!

798 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:23:04 ]
\0は値じゃない。
'\0'は値。

799 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:23:39 ]
この流れなら言える!お前ら全員ぬるぽ!(寝るぽ!)

800 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:23:57 ]
何というか日本語がこれほど通じないのは、もはや釣りだとしか思えない。



801 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:25:44 ]
>>797
C に「文字型」なんてありません。

802 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:26:02 ]
クォーテーションで括ってるか括ってないかの違いがまだわかってないな

803 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:26:21 ]
779 名前:デフォルトの名無しさん 投稿日:2007/05/15(火) 04:04:19
「NULL文字」なんて腐った表記をする奴にロクな奴はいない。
null文字と書け。
↑こういうことしかいえなくなっているら。しかもこれは自分基準w
こういうのが鬱陶しいんだよな。だから何?としか言われない
間違いではないことを気にいらねーって罵倒してくる奴。
お前何様だよ?デジタル世界の王者か?欧米か!?
てめぇ基準なんてどうでも良い。検索してどっちが多く使われているか調べてから出直せw

804 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:27:12 ]
紛らわしいのにわざわざ大文字で書く理由が知りたい。

805 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:29:59 ]
>>773
値って言うならちゃんと演算子使って演算できんだろうな?
その\0(空文字)をどうやって演算すんだ?
文字データとしては表示すらされないってのにw
文字同士の計算でもあるの?Aを文字と扱うか16進数として値を10として扱うかでは大違いだろ
それすら理解していないなんて、どこの大学出身だ?あっ、大学未満か

806 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:30:55 ]
\0は値じゃないって言ってるでしょ

807 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:32:40 ]
本気で言ってるのか???

str[i] != '\0' は演算だろ?

そして printf("%d\n", '\0' + 3); がエラーにでもなると思ってるのか?

808 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:33:36 ]
なんで'\0'を勝手に\0に置き換えるかな。

809 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:35:06 ]
どう見ても釣りです。
本当にありがとうございました。

810 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:37:07 ]
結論出しておくわ。これは捻じ曲げようとしても無理。
\n \a \t \b \0 それらは文字であって値ではない。とりわけ制御文字といわれるものであって
値のように演算は不可能。
ttp://ratan.dyndns.info/MicrosoftVisualC++/eskape.html
でも説明されているように、文字(制御文字)であってそれらにも文字コードが割り振られていて
その文字コードなら割り振られているという事実を踏まえて、その文字の値として扱うことは可能。
ttp://www.psl.ne.jp/perl/pdojo00b.html
たとえば、AはASCIIコードでは16進数にて41(10進法では65)と指定されていて
コードに1を足すことによって66にした場合、その文字コードを参照して表示される文字は
ちゃんとBになるってのは >>736 を実行すりゃ一目瞭然。
実証、検証されているのにつまらない屁理屈を言う奴、だめぽ。



811 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:38:16 ]
>>808
もうその程度でしか言い返せないんだね。どちらも値じゃないんだが?w
値は\0よって、スケバン風に言ってなさいってこったでパンナコッタ。

812 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:38:47 ]
>もうその程度でしか言い返せないんだね。どちらも値じゃないんだが?w

もうオワタ\(^o^)/

813 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:39:40 ]
また、Bという文字に1を足すなんておかしい。文字コードに対してならおk。
Bに1を足すなんて、環境によっては文字列の追加として B1 と解釈されかねんよ。

814 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:40:29 ]
>>811
本気で分かってねえな・・・。
呆れてものも言えん。

815 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:42:23 ]
だめだこいつ

816 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:42:28 ]
最後まで自分の理解する頭のないことを露呈しつつ粘着乙。お前だけだよ、こんなところで
朝まで居残りしているのは。

817 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:45:46 ]
全くだ

818 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:48:26 ]
っと、最後までこんなスレで自分の間違いを必死こいて間違いじゃなかったことにしようと
ここでレスしている人に対して噛み付いてくるメガネデヴピッツァですた(・∀・)

819 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:49:14 ]


820 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:49:43 ]
もう放っとけ。



821 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:50:10 ]
うん

822 名前:デフォルトの名無しさん [2007/05/15(火) 04:50:33 ]
\0は値じゃなくて文字だよぉ〜〜、対応コードは0で値として扱えるけどな、ケケケw

823 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 05:07:05 ]
pc11.2ch.net/test/read.cgi/tech/1179025919/66
おーい、ちょうど良いや、ここでふぁびょ〜んなお前ら、これに答えてやれよw

824 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 05:13:38 ]
>>814
'\0'でもこれは制御文字であって値にあらず。何が言いたいかはっきりしろよ?
このスレってやっぱ分かってねーとかそことなく揺さぶるけど、結局
自分の意見を言わずに逃げるチキンが多いよな。この前もそう。
お前分かってないなみたいなことを言ったが、答えは fgets の中の文字数の指定に
255 と入力ミスをしたのをネチネチ陰湿にあおってきただけで、そいつ自身は
fgetsの使い方についてろくに答えず。入力ミスしたやつは間違いにしろ
参考にできるページを参照してたが、このスレのタイトルを理解しておらず
答える気がないくせに相手にだけくだらねぇ間違いを指摘する程度でここにいるなら
出て行った方がよくね?何、自分にとってイラつくものを見て気分を害したんだよ!みたいな
不満をわざわざいい掛かってくるのか、さっぱりわからねぇ。こんなところにいるくらいなら
車軸の壊れそうなジェットコースターにでも乗ったら?

825 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 05:26:00 ]
char a; に対して
a=0; a='\0'; はおkだが、前者は0という値、後者は明らかに文字データゆえに
\0は文字ではあるが値じゃないんだが、それすら理解していないのはどっちだぁ〜〜い?
NULLはWikiにも記録されているが、ゼロと区別するためのドイツ語で0を意味するnullを用いて
何もないを意味するが、null文字は表示される文字も何もない文字として扱われていて
割り当てられている文字コードは0だが文字そのものはアルファベットも数”字”も含めて
文字であって”値”ではない。\0 およびその他制御文字は表示されないけど文字であって
値ではない。あたいも値ではない。

826 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 05:27:21 ]
ようやく分かった。お前が何が分かってないかが。

char 型というのは CHAR_MIN〜CHAR_MAX の値を入れることの出来る整数型であって、
C には「文字型」なんて型はないんだよ。

827 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 05:28:20 ]
値だっていうなら a=\0; をやればいいさ。コンパイルエラー起こすけどな、ケケケ
誰かさん、敢えて\0と'\0'のシングルクォートを強調したが、それをつけてんなら
なおさら値じゃなくて文字データだよなぁ。まさか、値にわざわざ''をつけて代入してんのかーい?

828 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 05:30:20 ]
入れることの出来る、じゃないな。
表現することの出来る、だ。

829 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 05:31:05 ]
わかんねーなら調べろだの、調べてないだのを指摘するくらいなら
調べられる参考文献を参照しろってーの。ろくにそういうのも出さずに
ただ自分が思った(間違った)理論を提唱されても、お前が決めた仕様でも規格でも
ルールでもないだろって話で流されるよ。本来の基本概要を理解している、知っている人には
うそは通用しない。\0は制御文字であって値じゃない。あたいでもそんなことは分かっている。
勝手にありもしないことを定義しないでくれ。\0を文字コードで参照するなら0なら分かるし
文字データとして入れるのに '\0' で指定するなら分かるが、値じゃない。文字だ。
いつまでもモジモジしてんじゃねーぞ。

830 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 05:35:41 ]
C の規格票読め。
読むだけならタダだ。



831 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 05:38:34 ]
くどいようだが、すでに俺は証明、提示をした。制御文字は値ではなく
文字データ。文字コードによって割り当てられている文字データ。
その文字コードがあっても、コードに対応した文字データがなければ
文字コードを使ってもナンセンス。\0は便宜上使われている文字であって
これは値ではない。そして本来は表示されない制御文字も、便宜上
使えるようにと割り当てられている代用の文字があるだけであって
\a \n \t そのものは値ではなく制御 文 字 であーる。
そんなの当たり前なのに、なーーにが値だ、あたいにはそんな屁理屈、通用しないかんね。

832 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 05:40:08 ]
\0 はエスケープシーケンスで''か""の中に出てこないと意味がない。

833 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 05:43:31 ]
\0は代用で用いられている文字であって値ではない。値じゃない。
値に対しても定義が曖昧だが、みたまんま、\0 \a \t \n は制御文字として
代用で使われているものであり、数値ではない。数字だって場合によっては
数値ではなく数字(数の文字)として扱われるが、その数の文字に対してだって
文字コードが割り当てられているけど、数字のまんまの数値で文字コードは割り当てられて
いないのは、ASCIIコードの対応表を出漁するプログラムで一目瞭然。
そう、単に文字コードが割り当てられているんであって、文字そのものは
値じゃ〜〜ないんだよ。制御文字として代用されたものだけ特別扱いで値になっちゃうの?
それじゃ、アルファベットや数字も値?値じゃ〜ねぇなぁ、文字データは演算できんよ。
割り当てられた文字コードを数値として演算することは出来るけどな。
たとえばAに割り当てられている文字コード1を足してBにすることが出来るというのは
説明済み。だけど、Bに1を足すのは不可能。文字の結合として B1 としちゃう
環境や言語は存在するから、要注意。文字は文字データであって値にあらず、これ当たり前。

834 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 05:44:23 ]
#include <stdio.h>
int main() {
int a = 1;
a = '\0';
printf("%d", a);

return 0;
}

835 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 05:44:57 ]
長文になったが、制御文字の代用の \0 は値じゃなくて文字。モジモジ君だって
それくらい知ってるよ?割り当てられている文字コードと文字データをごっちゃにしないよう
今後は注意しましょうね♪ さっ、これにこりたらこんなところにいないで
とっととジェットコースターにでも乗って来い。頭がスカッとすっぜ?

836 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 05:54:03 ]
というかCでいう文字とは整数の一種でつまりは値なんだが。
と今更こんなことを言ってみるが、みんな寝ちゃったかなw

837 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 05:56:04 ]
文字定数

838 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 06:02:23 ]
眠いから寝る

839 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 06:11:24 ]
朝までやってたのか!

840 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 06:20:18 ]
 ___  見えませ〜ん
‖    |     ∨
‖現実 ∧_∧   .ヘ∧
‖ \ ( ・∀・) (゚A●)
|| ̄ ̄⊂   )  (   と)
凵    し`J   U U


 ___  読めませ〜ん
‖    |     ∨
‖空気 ∧_∧   .ヘ∧
‖ \ ( ・∀・) (゚A●)
|| ̄ ̄⊂   )  (   と)
凵    し`J   U U


 ___  知りませ〜ん
‖    |     ∨
‖常識 ∧_∧   .ヘ∧
‖ \ ( ・∀・) (゚A●)
|| ̄ ̄⊂   )  (   と)
凵    し`J   U U


 ___  ありませ〜ん
‖    |     ∨
‖未来 ∧_∧   .ヘ∧
‖ \ ( ・∀・) (゚A●)
|| ̄ ̄⊂   )   (  と)
凵    し`J   U U



841 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 06:20:28 ]
何やってんだお前ら?

842 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 06:24:22 ]
子供同士でサンタは居るか居ないかで喧嘩してたようです。

843 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 06:41:30 ]
C 規格票より
www.jisc.go.jp/app/JPS/JPSO0020.html
JIS X3010 を検索

3.7.1 文字、1バイト文字
<プログラミング言語Cでの意味> 1バイトに納まるビット表現

5.2.1 文字集合
(略)
すべてのビットが 0 であるバイトをナル文字という。
(略)

6.4.4.4 文字定数
構文規則
 文字定数:
  'c文字列'
  L'c文字列'
 (略)

単純文字定数は、型 int をもつ。
1 バイトの実行文字に対応する単一の文字を含む単純文字定数の値は、
対応付けた文字の表現を整数として解釈した数値とする。
2 文字以上を含む(例えば 'ab')又は 1 バイトの実行文字で表現できない文字
若しくは逆斜線表記を含む単純文字定数の値は、処理系定義とする。
単純文字定数が単一の文字又は逆斜線表記を含む場合、
その値はその単一の文字又は逆斜線表記の値を持つ char 型のオブジェクトを
int 型に変換したときの結果とする。
(略)
例 1. 普通、ナル文字を表すために表現 '\0' を使う。
(略)

844 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 06:50:52 ]
文字は値だな。

845 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 06:52:31 ]
だめだこいつ、制御文字は表示できる文字データじゃないから
便宜上代用されている\0 \a \n \tがあってもそれを値だと思っているよw
文字と値の違いが分からないからって、プログラムが出来ないわけじゃないから
安心しろ。だけどお前の頭じゃ限界が見えているから、言語の使用とか
電子計算機の仕組みにかかわらず大学で受ける授業にはついていけないだろうから
低学歴のまま人生を諦めろ。まぁ、学歴が高くなくても成功する人も稀にいるから
努力は怠らないこったね。つまらないことに労を費やしているうちに、老いていくし
元気もなくなるから、早いところ人生の積み重ねを始めておけ。
間違っても間違いを押し切ることはするな。\0 が値に見えるなら目じゃなくて頭が
どうかしているよ。

846 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 06:54:17 ]
規格表を見る限り、\0 \a \n \t は「c文字」であって「文字」ではない。

847 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 06:54:40 ]
>>844
ダウト。文字データそのものは電子計算機はもってないんだよ。
人間が文字として認識する形を示すものを、文字コードで対応させて
参照しているのが分からないみたいだね。所詮、大学未満の考える
つまらない浅はかな考えだな。大学で普通に習うから、まだ受験するチャンスがあるなら
がんばって大学に行きな。基本的には入学に年齢制限はないから。60過ぎても入学する人もいるし。

848 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 06:55:00 ]
×規格表
○規格票

849 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 06:55:50 ]
>>847
脳内定義はどうでもいいから >>843 の規格票を読め。

850 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 06:56:12 ]
>>846
制御文字の代用で使われている文字だと言っているんだが?
どう見ても値じゃなくて円マーク+文字の組み合わせの文字だろ。
いい加減馬鹿は市ねよ。うぜぇよ。値に対する概念もない馬鹿が



851 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 06:57:48 ]
>>850
規格票の 6.4.4.4 文字定数を 100 回読んでこい。
「逆斜線表記」は「c文字」だ。

852 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 06:59:01 ]
>>849
いや、脳内じゃなくて書かれているまんま述べただけだが?
お前こそ理解しろよwwww
> 例 1. 普通、ナル文字を表すために表現 '\0' を使う。
はい、自分で爆弾抱えたまま爆発させて自爆しちゃいましたね。
決定的な証拠。表現を使うであって値とは掛かれていません。
ちなみに、null文字のコードが0に割り当てられているのは事実だが
これは人間が決めたことであってもともと電子計算機がそれをそうだという
仕組みを持っていたわけじゃないんだよ。文字そのものが数値じゃないんだから。
いい加減、文字が人間が作ったものだと気づいてね。計算機がやっているのは
あくまでも0と1の組み合わせの演算。そのデータから文字データを参照して
表示する際に文字コードを使ってんだよ。大学レベルだから、専門学校以下は黙っててね。

853 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:00:10 ]
>>851
ええ、だからお前もしつこいなぁ。理解力のない馬鹿は失せろ。
俺がまず否定しているいのは \0 が値ということ。値じゃなくて
どこをどう見ても文字。お前はそれを敢えて c文字だと言ってるしw
値じゃなくて文字、それについては俺がすでに述べてるんだが?
ボケは市ねよ、低学歴w

854 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:00:50 ]
\0 は c文字。
'\0' は文字定数で値。

855 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:01:53 ]
>>854
残念ながら制御文字であって \0 は便宜上表示できない制御文字の代用で
使っている文字だ。値ではない。値について理解していない馬鹿は失せろwwww

856 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:02:30 ]
>>855
規格票の 6.4.4.4 文字定数を 100 回読んでこい。
あ、構文規則の読み方も分からない低学歴なのか?

857 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:05:26 ]
こういう話題であげあしの取り合いになるのは宿命なのか

858 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:05:59 ]
> 例 1. 普通、ナル文字を表すために表現 '\0' を使う。
くどいようだが自分で墓穴を掘ってそのままあの世へ行け。
二度と人間界に戻ってくるな。これが読めないなら日本語を勉強してから出直せ。
そこにある \0 は紛れもなく
\ と 0 を並べたそれぞれが文字であり、組み合わせて値としたものではない。
これ以上理解できない曲解しかしないやつは放置するね。
値じゃないのは事実。文字コードは便宜上人間が割り当てたもので
Aそのものが値を持つとかないから。AはA。人間が作った文字コード表に
電子計算機が持つ基本の数値を割り当てただけだから。

859 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:06:37 ]
とうとう規格票に文句付け出したよwwwwwwwwwwwwwwwwwwwwwwww

860 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:07:19 ]
盛り上がっていいじゃない



861 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:07:32 ]
>すべてのビットが 0 であるバイトをナル文字という。
これが見えないのか?

862 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:07:39 ]
char a=0; の a を %c で表示すると、というか表示はされないが空文字が参照される。
a='\0'; とした場合、明らかに文字データを使っているんであって
a=0; のような値は使われていない。ちゃんと文字データと値の違いを理解しましょーね
大学未満w

863 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:10:03 ]
>単純文字定数は、型 int をもつ。
>1 バイトの実行文字に対応する単一の文字を含む単純文字定数の値は、
>対応付けた文字の表現を整数として解釈した数値とする。
これも読めないのかな。

864 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:10:53 ]
誰かさんは制御文字の代用で使われている \ と 0 という2つの文字をくっつけると
値になっちゃうらしいよ?w どこをどう見ても \ も 0 もつなげても \0 という 文字 です
ありがとうございました。文字と値の違いが分からない痛い子は以後放置よろ。

865 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:11:16 ]
#include <stdio.h>

int main() {
char a = '\0';
printf("%s", a == 0 ? "'\\0' == 0" : "");
return 0;
}

866 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:12:24 ]
\0 は値じゃないと何度言えば分かるのか。

867 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:13:29 ]
規格票をまともに読めないキチガイを相手にしても無駄だな。

868 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:13:55 ]
c文字c文字うっせーよボケ。俺は値じゃなくて\0も文字だっつってんだよw
文字と値の違いも分からない弱い頭ってやーね、こいつぜってー最後は犯罪者になってんな
理解力がないのが自分だと気づいていない、判断力を失った麻薬中毒者のごとく

869 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:14:54 ]
まだやってたのか?


870 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:16:49 ]
引き際を失ったんだろうな・・・可哀想に。



871 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:17:06 ]
んでよぉ、本質はそんなことじゃないんだよ。null文字が入った場所にも
ちゃんとそのnull文字の文字コードが入ったデータを示すアドレスが入っているんであって
>>580がいう値0なのにアドレスなしってのが間違いって話なんだが?
何ここまで複雑に話をこじらせちゃってんだろうねw
これだから理解力のないやつは、何か相手の知ってなさそうなことを持ち出して
揺さぶろうとするんだけど、自分の理解力のなさが露呈されて墓穴を掘るんだよねw

872 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:18:05 ]
いつの間にかnull文字のnullが小文字になっててワロタw

873 名前:本日の自作自演擁護厨 mailto:sage [2007/05/15(火) 07:18:34 ]
844 名前:デフォルトの名無しさん 投稿日:2007/05/15(火) 06:50:52
文字は値だな。

846 名前:デフォルトの名無しさん 投稿日:2007/05/15(火) 06:54:17
規格表を見る限り、\0 \a \n \t は「c文字」であって「文字」ではない。
「c文字」であって「文字」ではない。 「c文字」であって「文字」ではない。 「c文字」であって「文字」ではない。
「c文字」であって「文字」ではない。 「c文字」であって「文字」ではない。 「c文字」であって「文字」ではない。
ちゃんと自分で文字と言っているのに文字じゃないとか言い出す大ボケかますしw

874 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:18:56 ]
>>580 の話はもうとっくに終わってるんだが・・・。

875 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:19:47 ]
C の規格では「文字」はビット列、すなわち数値であると規定されています。

>3.7.1 文字、1バイト文字
><プログラミング言語Cでの意味> 1バイトに納まるビット表現

876 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:19:52 ]
580が\0と書いたのが気にくわないんじゃないの。
ちゃんと'\0'と書け、と。
(でも、そうすると、854,855の対応が気になるわけだけど)

877 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:19:58 ]
まだやってたのか
そんな暇あるならバイトでもしろよ

878 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:20:46 ]
テレビ見ながらついでで相手してるだけだからどうでもいい。

879 名前:デフォルトの名無しさん [2007/05/15(火) 07:22:22 ]
>>843って結局 JIS 規格の話だろ?逆斜線ってのは、大学の授業で聞いたことあるけど
日本じゃもともと存在していなかったんで、¥(円マーク)をバックスラッシュの代用で
使ったって話で、それについて制御文字の表現を \ を前に用いる規格があるって話で
>>843 は文字が値とかって話じゃなくて、制御文字を日本では \ との組み合わせで
使われているって話でしょ?何勘違いして直接関係ない文献を勘違いしたという
意味の分からん説明をしているのか、理解不能だわ。

> 例 1. 普通、ナル文字を表すために表現 '\0' を使う。
これについてはあくまでも表現の仕方であって、値として使っているって話じゃないよ。
JIS規格におけるバックスラッシュの代用が \ って話だろw

880 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:25:56 ]
よくこんな釣りを思いつくよなあ。尊敬するぜ。



881 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:28:11 ]
\ がバックスラッシュで表示される環境で見てるものとして脳内変換しろよ。

882 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:28:38 ]
(´ω`)

883 名前:デフォルトの名無しさん [2007/05/15(火) 07:31:13 ]
ttp://okuyama.mt.tama.hosei.ac.jp/unix/C/slide19-1.html
でも書かれているけど、明らかに '\0' をナル文字といって値とは言っていない
敢えて値というならそれは 0。\0 でなくて敢えて '\0' というならなおさらそれ自身は値じゃなくて
なる文字。文字がなんなのか、どのように制御されているのか分からない馬鹿って困るな。
大学レベルじゃまずついていけない頭の持ち主か。何JIS規格のバックスラッシュの
代用について話をしてんねん、ボケが

884 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:31:46 ]
ちょっと哀れに思えてきたねw

885 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:32:16 ]
それは、5.2.1参考
「この規格で規定する基本文字集合の中の二つの要素
\と〜は、JIS X 0201では、それぞれ¥(円記号)と
 ̄(オーバーライン)に置き換える」
で既出なんだな

886 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:32:24 ]
バックスラッシュの代用の話なんて規格票に何も書かれていないんだが。
規格票読んでないのバレバレ。

887 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:34:02 ]
とうとうISO646にまでケチをつけるまで来たのか?

888 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:34:08 ]
>>886>>843 のレスの部分に、ということね。

889 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:35:54 ]
>883
文字定数が('A'とか'B'とか'\0'とか)が値を持たないといいたいわけ?

890 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:37:17 ]
「値」という言葉の定義すら怪しいな。
数値以外は値じゃねー、と考えてそうだ。



891 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:39:25 ]
#include <stdio.h>
#define TEST '\0'

int main() {
printf("%d", TEST);
return 0;
}

892 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:39:59 ]
もうここまで来ると理屈抜きで全面的に賛同して輪廻から解放してあげたいのだが
こだわっているポイントがイマイチ分からない

893 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:41:29 ]
暇な時に適当に遊んであげれば良いと思うよ。

894 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:42:08 ]
void main()
gets()
NULL
\0

他になんかあったっけ?

895 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:42:24 ]
>>894
fflush(stdin);

896 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:42:29 ]
でもそういうスレじゃないしな多分

897 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:42:59 ]
こいつの脳内計算機では「値」ってのと文字とが区別されてるんだよ、きっと。
メモリにタグビットかなんかがついてて。


898 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:44:51 ]
ttp://okuyama.mt.tama.hosei.ac.jp/unix/C/slide19-1.html
> 次は,エスケープ文字です。
> \a ビープ音(警報)

> # [例1]'\0':ナル文字
> # [例2]'\x00':ナル文字
エスケープ”文字”です。おまけにシングルクォートつきで '\0' ナル”文字”
どこにも値なんて書かれていましぇ〜〜〜ん。'\0'と敢えて表記するなら
なおさらナル”文字”であって値じゃありましぇ〜〜〜ん。そして
僕は死にましぇ〜〜ん、C言語あるから!

899 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:44:58 ]
>894
malloc&freeを忘れてもらっては困るな

900 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:45:19 ]
こういう奴は議論してる最中は絶対に認めないけど、
数日経つと「そんなの当たり前じゃないか」とか言い始めるタイプ。



901 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:46:20 ]
>>898
>>875

902 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:46:26 ]
>>897
お前の低レベルな頭じゃ文字と値の違いがなくて、数字の0として扱われている0も
値の0なんだろうねwwww 文字と値の違いが分かってないから、数字が入ったとき
数値との区別がついてねーようだな。お前、文字と数字の入り混じったデータを
扱ったこともない素人だろw

903 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:46:56 ]
おまえら夜通しやってたのか?

904 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:47:26 ]
このスレはかまってくれる人が多いね。
宿題スレじゃもう誰も相手しなくなったのに。

905 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:47:45 ]
面白いオモチャだからいじってみた。

906 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:48:30 ]
>>901
いや、モロニ表現って書いてあるやん。ところでさぁ、話をそらすなよ。
きゃつは敢えてシングルクォートをつけて '\0' を値といったんだぞ?w
JIS規格じゃもろにそれをなる文字の表現とされているんだが?w
お前の場合、Aも値とか言いそうで怖いわ。Aは16進数では確かに値として
扱われることもあるが、文字と値をごっちゃにしてたら、Fまで値になって
E以降が文字になってそうだなw

907 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:51:55 ]
   〃∩ ∧_∧
   ⊂⌒(  ・ω・)  はいはいそのとおりそのとおり
     `ヽ_っ⌒/⌒c
        ⌒ ⌒

908 名前:JIS規格の逆斜線の話を持ち出した大ボケの最初の定義 mailto:sage [2007/05/15(火) 07:53:22 ]
747 名前:デフォルトの名無しさん 投稿日:2007/05/15(火) 03:30:52
なんか変な方向に行ってるみたいだな。

1. ヌル文字の値が '\0' なのは規格で決まってる。

2. \0 という特別なエスケープシーケンスは規格で用意されておらず、
  これは 8 進数の値を直接埋め込むエスケープシーケンスでしかないので、
  '\0' の値はどの環境でも厳密に 0 になる。
  (そもそもそんな特別なエスケープシーケンスを用意してしまったら、
  8 進数で 0 を埋め込むことが不可能になってしまう)

これでいいだろ、もう。



1. ヌル文字の値が '\0' なのは規格で決まってる。
        ^^^^^^^^^^^^^^^
表現はJIS規格でそうだが、値とは書かれていない。強いて値というならそれは0。
割り当てられている文字コードが0。あくまでも\にも0も文字、組み合わせてもそれらは
文字列という解釈はされど、C言語ではそれをエスケープシーケンスで使われる
表示できない文字を代用した文字コードが使われているって話であって
それらは値ではない。んじゃ、アラートとして使われるアラートの値は'\a'って言うかね?
こいつは \ の後ろに 0 があったんで、その数字に目がいってしまい、値と言ってしまったんだろうけど
それは0という文字であって値ではないんだよ。んじゃ、\a が値になるんかね?
これはどう見ても文字列であって、その組み合わせを代用して表示できない文字をあるように
使っているのさ。それが理解できないから大学未満レベルって言われるんだよw

909 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:53:26 ]
#include <stdio.h>

char itoc(int i) {
if (i >= 0 && i <= 9)
return '0' + i;
else
return '\0';
}

int ctoi(char c) {
if (c >= '0' && c<= '9')
return c - '0';
else
return -1;
}

int main() {
int i = 9;
char c = '8';
printf("i(char):%c c(int):%d", itoc(i), ctoi(c));
return 0;
}

910 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:54:10 ]
「文字として存在するか、数値として存在するか」なら計算機の中ではどちらも数値として存在していて、
「文字として扱うか、数値として扱うか」ならプログラム上での扱いによる



911 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:59:12 ]
コンピュータ的には状態として存在しているような気もするが。

912 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:59:29 ]
\a ビープ音(警報)
\b バック・スペース(後退)
\f フィード(書式送り)
\n 改行
\r キャリッジ・リターン(復帰)
\t 水平タブ
\v 垂直タブ
\' シングル・クォーテーション '
\" ダブル・クォーテーション "
\? ?
\\ バックスラッシュ \
さぁ、これらもそれぞれ 改行の値は '\n'、水平タブの値は '\t'って言うかね?
表示できない、エスケープ文字って俺は言うね。そう、それらには表示できる文字が
存在しないから、便宜上代用されているんであって、別にその\との組み合わせが値
って言うものにはなっていないんだよ。強いて値って言うなら、割り当てられている文字コードに
対してなら理解は出来るが。実際のところ、整数型の値として文字コードが格納されているしな。
文字そのものは数値としては存在しておらず、文字コード表から該当する、登録されている文字を
表示させる仕組みがあるんであって、実態は数値なのさ。だから敢えて文字コードを参照する
ソースを書いてやったのに、理解していないなんて・・・だめだな。
お前じゃ汎用電子計算機の仕組みについて学ぶのは無理だ。その仕組みの原理にのっとって
プログラムだって作られているんだが・・・

913 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:00:24 ]
感じとしてはわかったけど、その「値」はCの規格票で
定義された用語ではないな。

914 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:03:52 ]
もちっと 制御 文字について理解しましょーね、大学未満さんw
さて、今日は休みだがお前らには付き合ってられん。悔しかったら
どこでも良いとは言わないが、施設の整った大学にくらい通って勉強してみろ。
実際にその原理について習う実験や研究をした人間とじゃ格が違うぜ。
もちっと電子計算機の基本原理を理解してから出直せ。
文字データそのものは数値としては存在しないよ。文字だって人間が使っている文字みたく
見えるように視覚的にコンピュータが実装している範囲内の表現能力を用いて構成されてんだから。

915 名前:ここでフレーム投下 mailto:sage [2007/05/15(火) 08:04:14 ]
printf("??[foo]??");としたら、期待通りの出力になりませんでした。
期待通りに出力させるにはどうしたらいいでしょう。

916 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:11:06 ]
>>912
別にお前のポリシーなんて誰も聞いてないよ

917 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:11:55 ]
#include <stdio.h>

int main() {
char str[] = "abcdefghijk";
for (unsigned int i = 0; str[i] != '\0'; ++i)
printf("%p:%x ", str+i, str[i]);
return 0;
}

918 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:13:58 ]
( ´ω`)

919 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:15:36 ]
(´ω`)

920 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:16:42 ]
どっかのブログでも書かれてたが、ほんと質問者置いてけぼりで言い争いが続くなw



921 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:17:31 ]
こっち見んな

922 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:18:16 ]
\0の0が数値に見えちゃったんだろうね。これはその他の\aや\tのごとく
数値ではなく数”字”だから。\の後ろに数値を参照していると思ったんだろうね、可愛そうに。
どう考えてもそれも含めて\と組み合わされた文字列をエスケープ文字として代用しているだけです
ありがとうございますた。

923 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:19:10 ]
>>920
fj的フレームですらないのが困り物だな。manだの規格書だの読めば済むことをグダグダと・・・

924 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:23:32 ]
#include <stdio.h>

int main() {
int chs[] = {'\a', '\b', '\f', '\n', '\r', '\t', '\v',
'\'', '\"', '\?', '\\', '\0' };
for (unsigned int i = 0; chs[i] != '\0'; ++i)
printf("%x ", chs[i]);

putchar('\n');

int j = 0;
while (chs[j] != '\'') ++j;
while (chs[j] != '\0')
printf("%c ", chs[j++]);

return 0;
}

925 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:26:52 ]
あほが一人だと哀れなだけだが、
あほが二人だと始末に負えないな

926 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:27:58 ]
あほが三人集まったらどうなるんだろ

927 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:27:57 ]
>>568が始まりか…
こんなに長文を書きながら密度がスカスカの議論を延々と…

928 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:36:24 ]
延々と「俺的『値』の定義」を読まされるスレはここですか?

929 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:36:57 ]
>>923
void に向かって``半角''の一言をだして, 引き際失った奴を思い出したよ...
# fj だけじゃないけどな, void + ``半角''


930 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:40:29 ]
まぁエスケープシーケンスの話はもう良いや。はいはい、'\0'はナル文字の値ってことで良いよ。
俺も今後'\0'はナル文字じゃなくてなる文字の値って言ってあげるから。

それよりもさぁ、最近、里田まいが気になるんよ。俺、別に今までハロプロだのモー娘。だの
まったく興味がなったんだけどさ、クイズヘキサゴン2に出ている里田まいを見て
なんかこう、キュンッときたんよ。辻と違ってまだ処女だったらええのになぁ〜なんて
期待しつつ、プログラミングをしているわけだ。そんな俺ってどうよ?C言語ならぬ
Cまでいけそうかな?



931 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 08:40:53 ]
もまいら思い出してくれ。
文字と数値がメモリ上でも区別されてると思い込んでる人種がいるだろ。
COBOうあなにをするタテイスカンナニラセ@「

932 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 09:14:23 ]
(´ω`)

933 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 09:25:34 ]
こいつらが何か意味のある議論をしている・したがっていると勘違いするから混乱するんだよ。
レスを付けて何か返ってくるというリアルワールドでのコミュニケーションの代償行為をほぼ唯一の生きがいとしているだけなのに。

934 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 09:30:03 ]
俺の周囲の場合リアルワールドの会話はこれより遥かにつまらんから困る
人の噂話、悪口、武勇伝等の自慢話ばっかりでうんざり
2chが悪口ばっかりとか生産性の無いネタばっかりって言える人は幸せ者

935 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 09:31:40 ]
これは釣りに対して全力で釣られてみる遊び。
素人にはオススメできない。

936 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 09:32:56 ]
おまいらじゃせいぜい2ちょんねるだな。日本語で

937 名前:デフォルトの名無しさん [2007/05/15(火) 11:54:24 ]
だめだこいつら…はやくなんとかしないと

938 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 12:01:11 ]
>>1

939 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 13:04:21 ]
昨日今日あたりで一気にスレを消費しちまったな


940 名前:デフォルトの名無しさん [2007/05/15(火) 13:20:05 ]
開発環境はvc++2005 OSはxpです。現在研修でコマンドラインから
取得した引数で四則演算を行うプログラムを作成しているのですが、
オーバーフローのチェックで悩んでいます。

加算、減算については出来たのですが、乗算のオーバーフローチェックが
分かりません。limits.hをインクルードして2147483647〜-2147483648
までの数値を扱っています。どのようなコードを書けばよいのでしょうか?
よろしくお願いします。

扱っている変数は
int lop; // 左のオペランドに入力する値
int rop; // 右のオペランドに入力する値
int result; // 計算結果
int mod; // 除算の余り
int max = INT_MAX; // 表現可能な最大値
int min = INT_MIN; // 表現可能な最小値

char *check; // 変換不可能な文字を格納
char op; // 入力する演算子

これらになります。ファイル名lop op ropの形式で
実行します。



941 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 13:29:02 ]
long long 使っていいならラクチンなんだがなあ。

942 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 13:32:03 ]
>>940
lop*rop (lop>0 rop>0)について調べる場合
lop>INT_MAX/rop のときオーバーフロー
負数とか考えると面倒だね

943 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 13:40:23 ]
インラインアセンブラ使いてーなー。

944 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 13:42:04 ]
掛け算のオーバーフローは難しそうだな。
n周まわって 結果が正のまま とかありえそうだし

945 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 13:48:36 ]
>>940
マルチ乙。
加減算も自分でやったんじゃないんだろ?w

Hackmem とかhacker's delight で調べてみ。
日本語訳も出版されている。


946 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 13:51:21 ]
掛け算だけにマルチ


いやスミマセン

947 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 13:53:30 ]
掛け算を足し算のループに変えてオーバーフローを検出くらいしか思い浮かばん…
負数は先読み計算で。

948 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 13:59:21 ]
MSBのbit位置テーブル作っといてlookupすりゃええんちゃうの?


949 名前:デフォルトの名無しさん [2007/05/15(火) 14:02:51 ]
レスありがとうございます。確かにlongが使えるといいのですが、使っちゃ駄目みたいです。ちなみに先ほどのコードを使用して動かしてみました。全ては試していないのですが、
-2147483648 * -1 = -2147483648や
 2147483647 * -1 = オーバーフローと
なってしまいます。上はオーバーフローに下は
-2147483647になるようにしたいのですが、中々上手くいきません。
どうすればよいでしょうか?よろしくお願いします。



950 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 14:21:43 ]
2進数のまま手計算してみれば?
途中経過のビットも出力して確認しながらやれよ。



951 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 14:28:25 ]
これでダメな場合って lop==0 の時以外にあるかな?
result=lop*rop;
if(result/lop!=rop) オーバーフロー

952 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 14:54:12 ]
>>951
っ lop=-1 rop=INT_MIN

953 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 14:56:41 ]
>>940
加減算のオーバーフローチェックはどうやったの?

954 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 15:04:30 ]
>>952
これやったら落ちてビビった (MacOSX 10.4.9 Intel Core 2 Duo)

955 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 15:11:19 ]
>>954
>>952 で同じく落ちた (Win98SE C7 600MHz)

なんと言うか恐ろしい計算だw

956 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 15:29:19 ]
>>952
これ反則だよなあ。普通の計算でも起こり得りそうで困る。

957 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 15:40:55 ]
gccで落ちたコードの核になる部分だけ抽出。
--
movl $-2147483648, %eax
movl $-1, %ecx
idivl %ecx
--
うーん、-1で割っているだけなのに。

958 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 15:49:53 ]
これは勉強になった。

959 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 15:53:22 ]
>>952
C#でも落ちるかなと思ったけどOverflowExceptionが出るだけだった。

960 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 15:57:11 ]
>>959
Exception をキャッチしてないからCだと落ちる っつーことっしょ



961 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:04:16 ]
Instruction Set Reference の idiv の項を見てみた。

例外 #DE (divide error)

1. 除数が 0 の場合
2. 商が大きすぎる/小さすぎる場合

の、2. に引っかかってるみたいね。
アセンブラレベルで QWORD で使うなら十分起こりうる状況だけど、
int でやってる限りは -2147483648 / -1 でしか起こらないよね、これ。
こりゃ盲点だわ。

962 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:07:44 ]
実数でも同じことできる?

963 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:14:23 ]
どうでもいいけど、Linuxだと"Floating point exception"って出るんだよな。
どこがFloatingPointなんだか。

964 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:15:41 ]
gcc@MacOSX でもそう出る。
イミフ。

965 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:15:56 ]
>>962
起きなかった

966 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:18:14 ]
実数は普通の演算で例外起きたっけ?

967 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:19:32 ]
もう面毒せーから1/0=πという数学体系を新たに定義しようぜ

968 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:22:10 ]
移項すると 1 = π × 0 になるんだけど

969 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:23:16 ]
その定義上ではその移項自体がまた特殊な扱いになるのか。

970 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:47:17 ]
>>963
English WikiからSIGFPEの項より
>Although SIGFPE does not necessarily involve floating-point arithmetic, there is no way to change its name without breaking backward compatibility.



971 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 17:50:56 ]
可換環じゃなかったら最早普通の計算に使えないなw

972 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 18:17:22 ]
次のような関数を作っていて、test3の直前でセグメントエラーが
出てしまい困っています。
R[]はintのポインタの配列で、疑似二次元配列です。
R[i]とy[]のなかで共通する数をR[i+1]に代入して、
最後に0を入れる関数です。
どうしてエラーが出るのか、誰か教えてください。

void katu(int *R[], const int i, const int y[]){
  int a=0, b=0, k=0;

  for(a=0; a<N; a++){
    for(b=0; b<N; b++){
      if(R[i][a] == y[b]){
        print("test1\n");
        realloc(R[i+1], sizeof(int)*(k+2));
        printf("test2\n");
        R[i+1][k] = y[b];
        printf("test3\n");
        k++;
      }
      if(y[b] <= 0)
        break;
    }
    if(R[i][a] <= 0)
      break;
  }
  R[i+1][k] = 0;

  return;
}


973 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 18:20:50 ]
>>972
reallocの戻り値捨ててどうするんだよ。
reallocが成功したら元の領域はアクセスできなくなる。

974 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 18:22:18 ]
>>972
realloc()の使い方を勉強しろ。

それはさておき、一文字変数は判り難いだけだから止めた方がいいぞ。
#特に引き数iなんて、誤解してくれと言わんばかりだ。

975 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 18:24:42 ]
i は for ループのカウンタ以外では使わないほうがいいかもw

976 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 18:32:47 ]
一文字変数はカウンタくらいしか使わないな

977 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 18:32:48 ]
aとかbをループ変数にするのはなんかいやだな。

978 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 18:34:57 ]
(滅多に使わない)数式の実装ではまんま1文字変数使うこと多い
# コメントで参考書名+page 書いとくが

979 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 18:37:50 ]
数式をコメントに入れておくなあ、そういう場合。

980 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 18:40:42 ]
>>979
数行オーダーの数式なら、そうするほうが多いけどね。
RGB⇔HSV変換とかの 条件付な式だとコメント書きにくいねぇ (で、リファレンス書いて終了w)



981 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 18:48:04 ]
こういうアルゴリズムでーす後はググれって感じでコメント書く。

982 名前:972 mailto:sage [2007/05/15(火) 19:18:53 ]
>>973-974
ありがとうございます。
realloc(R[i+1], sizeof(int)*(k+2));
を、
R[i+1] = realloc(R[i+1], sizeof(int)*(k+2));
にしたら無事に動くようになりました。
結果が正しいかはこれから検討する所でありますが。

今回初めてreallocを使ってみたので、本当に間抜けなことをしていました。
重ね重ね、ありがとうございます。

変数についてですが、どうにもうまい名前の付け方が思い付きませんorz。
他の方のソースを読んで勉強していくしかないのでしょうか?

983 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 19:24:18 ]
>>982
変数名を思いつけないと言うことは、書いているものが理解できていないか説明できないかのどちらかだろう。
前者は問題外だが、後者も社会人として必要な能力だ。「相手に伝える」ことを念頭に入れて、
変数の説明をする積もりで名前をつけてみるといい。

984 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 19:35:27 ]
例えばこんな感じですね

int i
int love, you

985 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 19:39:59 ]
>>984
あーそれは、愛のあるいい変数名だね。
って、違うでしょ。

986 名前:972 mailto:sage [2007/05/15(火) 19:42:35 ]
>>983
「相手に伝える」ですか。心がけてみます。
どうもありがとうございます。

987 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 19:52:03 ]
変数名なんて、それが何を入れとくための奴なのか分かるんならなんでもいいよ

988 名前:デフォルトの名無しさん [2007/05/15(火) 19:58:41 ]
VisualC++.NETならばC言語で.NETを使えますか?

989 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 20:11:54 ]
いいえ。
VS2003ならMC++, VS2005ならC++/CLIでのみ.NETを使えます。

990 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 20:12:27 ]
いいえ、専用に構文が拡張されたC++になります。



991 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 20:17:00 ]
自前でホスティングすれば使えなくもないだろう。

992 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 20:28:25 ]
// 次スレテンプレ

C言語の入門者向け解説スレです。
・C++言語はスレ違いです。
・分からない事をなるべく詳しく書いて下さい。
・ソースコードを晒すと答えやすくなるかもしれません。
・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。

前スレ
C言語なら俺に聞け(入門篇) Part 12
pc11.2ch.net/test/read.cgi/tech/1178620766/

過去スレ
Part 1 ttp://pc8.2ch.net/test/read.cgi/tech/1146700389/ Part 2 ttp://pc8.2ch.net/test/read.cgi/tech/1153818463/
Part 3 ttp://pc8.2ch.net/test/read.cgi/tech/1160682950/ Part 4 ttp://pc8.2ch.net/test/read.cgi/tech/1162999861/
Part 5 ttp://pc8.2ch.net/test/read.cgi/tech/1165022193/ Part 6 ttp://pc10.2ch.net/test/read.cgi/tech/1167325490/
Part 7 ttp://pc10.2ch.net/test/read.cgi/tech/1170064980/ Part 8 ttp://pc11.2ch.net/test/read.cgi/tech/1171946674/
Part 9 ttp://pc11.2ch.net/test/read.cgi/tech/1173284217/ Part 10 ttp://pc11.2ch.net/test/read.cgi/tech/1174290325/
Part 11 ttp://pc11.2ch.net/test/read.cgi/tech/1176800483/

993 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 20:29:05 ]
関連スレ
C/C++の宿題を片付けます 86代目
pc11.2ch.net/test/read.cgi/tech/1165718021/
くだすれC言語(初心者用) Part.2
pc11.2ch.net/test/read.cgi/tech/1172099763/
スレを勃てるまでもないC/C++の質問はここで 2
pc11.2ch.net/test/read.cgi/tech/1178503366/
はきだめC/C++下級者の質問箱 2
pc11.2ch.net/test/read.cgi/tech/1156206091/

関連リンク
C 関数検索 man on WWW
www.linux.or.jp/JM/
初心者のためのポイント学習C言語
www9.plala.or.jp/sgwr-t/

// ここまでテンプレ

994 名前:気まぐれアナスイ mailto:お腹いっぱい@気まぐれアナスイ [2007/05/15(火) 20:32:34 ]
984 differ:char 5,6,7,8,9 line 4
!(Φ_Φ+){level}

995 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 20:33:11 ]
Cスレ乱立しすぎ
こっちへ吸収されていいと思う

【初心者歓迎】C/C++室 Ver.37【環境依存OK】
pc11.2ch.net/test/read.cgi/tech/1178432985/l50
くだすれC言語(初心者用) Part.2
pc11.2ch.net/test/read.cgi/tech/1172099763/l50

996 名前:気まぐれアナスイ mailto:お腹いっぱい@気まぐれアナスイ [2007/05/15(火) 21:57:37 ]
吸収も良いですが?
スレを、そちらに変更?

997 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 22:13:54 ]
実行の様子をテキストファイルとして作成する方法を知りたいのですが、windowsの場合どうすればいいのでしょうか?
Linuxなら./program > text.txtとするらしいのですが、windowsの場合がわかりません

998 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 22:15:03 ]
>>997
同じ事やってみた?

999 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 22:17:13 ]
なぜ試さない?

1000 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 22:17:54 ]
1000ゲット



1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<240KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef