1 名前:デフォルトの名無しさん [2012/05/04(金) 04:05:26.52 ] C言語の入門者向け解説スレッドです。 ★前スレ C言語なら俺に聞け(入門編)Part 100 toro.2ch.net/test/read.cgi/tech/1333108892/ ★過去スレ makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000 ★教えて欲しいのではなく宿題を丸投げしたいだけなら ↓宿題スレ↓へ行ってください。 C/C++の宿題片付けます 157代目 toro.2ch.net/test/read.cgi/tech/1335517816/ ★C++言語については避けてください。C++対応明記スレへどうぞ ★分からない事をなるべく詳しく書いて下さい。 ★ソースコードを晒すと答えやすくなるかもしれません。 # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること # サイズが大きい場合は宿題スレのアップローダ等を利用してください ★開発環境や動作環境も晒すと答えが早いかもしれません。 ★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 長くなりそうなコードはcodepadに貼り付けてもいいでしょう codepad.org/ ideone.com/
2 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 06:44:59.49 ] すみません。教えてください。 mikrocというコンパイラを使ってPICマイコンで電子工作をしてるのですが、 指定した桁の値を取り出すにはどうすれば良いのでしょうか? 例)x = 12345;という変数の中の値を、a = 1;b = 2;c = 3;d = 4;e = 5; というように取り出したいです。 C言語についてはPICで遊ぶために0からのスタートでして、ほぼ初心者です。 よろしくお願いします。
3 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 08:04:22.28 ] >>2 取り出したい桁を右からn桁目とすると 「(n-1)回、10で割った整数」を10で割った際の余りを求めれば良い
4 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 08:48:55.98 ] >>2 >>3 のやり方が正攻法だと思う。 バッファを余計に使って良ければ、sprintfを使うのが簡単かな。 char buf[10]; int x = 12345; sprintf(buf, "%d", x); これで、buf[0]: 1, buf[1]: 2, buf[2]: 3, buf[3]: 4, buf[4]: 5 となります。
5 名前:デフォルトの名無しさん [2012/05/04(金) 11:47:36.94 ] ビットフィールドへのポインタを関数に渡したいです。 しかしポインタのアドレスはバイト単位であり、 無理だということが分かったのですが何か良い方法は無いでしょうか? なぜこんな事がしたいかと言いますと、とびとびの複数のビットフィールドに対し 同じ処理を行いたく冒頭の事が出来ないか試行錯誤していました。 ご助言頂けると嬉しいです _ _
6 名前:2 [2012/05/04(金) 12:02:37.64 ] >>3 >>4 さん! とてもわかりやすい回答ありがとうございます。 早速実験してみます!
7 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 12:11:24.13 ] >>5 同じ処理がしたいのならやればいいじゃん。 どうしてもポインタが必要な処理なの? もうちょっと具体的に状況を書いてみて。
8 名前:5 [2012/05/04(金) 12:36:54.04 ] >>7 レスありがとうございます!状況としてはマイコンの制御のためにコードを書いています。 具体的には以下の処理を行いたいです。 // 空行まで変数の宣言です。 struct bit { unsigned b0: 1; unsigned b1: 1; unsigned b2: 1; unsigned b3: 1; unsigned b4: 1; unsigned b5: 1; unsigned b6: 1; unsigned b7: 1; }; union port { struct bit bit; unsigned char byte; }; volatile union port *p2 = (union port *)0x00E4; unsigned char sw2_before = 1, sw3_before = 1; if(sw2_before == 0 && p1->bit.b7 == 1) p2->bit.b4 ^= 1; if(sw3_before == 0 && p1->bit.b3 == 1) p2->bit.b5 ^= 1; ですが、現状だとご覧のように同じようなコードが二回繰り返されているので これを関数として抜き出したいんです。(空行以降の部分です。)
9 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 13:10:03.66 ] >>8 マクロで書けばいいんじゃね? 仮にビットフィールドへのポインタが有りだとしたらどんなコードを書く?
10 名前:5 mailto:sage [2012/05/04(金) 14:27:08.47 ] >>9 ありがとうございます!マクロですか、余り使ったことなかったのですが調べてみます! 仮にビットフィールドへのポインタが有りだとしたら以下の様にしたいです。 void led_toggle_switch(unsigned *led: 1, unsigned char before, unsigned char after) { if(before == 0 && after == 1) *led ^= 1; } led_toggle_switch(&p2->bit.b4, sw2_before, p1->bit.b7); led_toggle_switch(&p2->bit.b5, sw3_before, p1->bit.b3);
11 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 14:45:02.78 ] ビットフィールドを使わずに、ビット演算でやれば似たようなことはできるね。
12 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 15:29:00.01 ] >>10 bit位置を示す引数をもう一つ追加。 ledはビットフィールド変数ではなく、byteの方にすれば、 void led_toggle_switch( unsigned *led: 1, unsigned bitPos, // 1-7 unsigned char before, unsigned char after) { if(before == 0 && after == 1){ *led ^= (1 << bitPos); } }
13 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 15:34:21.91 ] >>10 いえいえ
14 名前:5 mailto:sage [2012/05/04(金) 15:51:10.19 ] >>12 なるほど、こういうやり方もあるんですね・・・。全く思いつかなかったです・・・。 とても勉強になりました、ありがとうございます! マクロも自分で書いてみました。スッキリ纏まって良い感じです! #define LED_TOGGLE_SWITCH(led, before, after)\ if(before == 0 && after == 1) { led ^= 1; } LED_TOGGLE_SWITCH(p2->bit.b4, sw2_before, p1->bit.b7);
15 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 16:01:37.31 ] ビットフィールドのレイアウトがどうなるかは未定義だし、 ビットごとに意味を割り当てるにしてもビットフィールドを使わないことが多いね。
16 名前: ◆QZaw55cn4c mailto:sage [2012/05/04(金) 16:12:34.41 ] もうビットフィールドなんて廃止したら‥‥‥
17 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 16:49:27.66 ] >>12 レスが付いた後だけど、今見返すと、第2引き数のコメント間違っているね。 誤) unsigned bitPos, // 1-7 正) unsigned bitPos, // 0-7
18 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 16:53:41.76 ] >>14 マクロ関数書くときは各引数を括弧でくくっておかないと、思わぬ動作をすることがある。 #define LED_TOGGLE_SWITCH(led, before, after)\ if(((before) == 0) && ((after) == 1)) { (led) ^= 1; }
19 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 17:37:22.16 ] >>14 いえいえ
20 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 19:38:55.05 ] 随分とマトモな流れなんで、スレ間違えたのかと錯覚したわ。
21 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 19:54:41.84 ] まあオレのおかげなんだけどな、照れること言うなよな ははは
22 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 22:53:48.92 ] >>16 何で?
23 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 23:34:29.44 ] 理解できないからだろ。聞いてやるなw
24 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 23:46:03.86 ] >>22 >>23 >>16 では無いのだが、ビットフィールドって処理系依存だからでしょ。 LSB、MSG並びと、宣言の順番がどうなるか、とか。 あと、ビットフィールドと共用体の合わせ技もよく使うが、 (>>8 のportがまさにそれ) 共用体の一方で設定した値を他の型で読んだ時にどうなるかも処理系依存だったりする。
25 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 00:30:24.15 ] 廃止する理由には見えないな
26 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 01:00:43.97 ] ビットフィールドはハードに依存した並びが必要ないときはどっち向きでも関係ない(1bitでフラグ的な使い方) gccだとarchに依存したエンディアンで並び順は考慮でける コンパイラによっては、並び順をオプション等で指定できるのもある 要は使い分けが出来るかどうか、ビットフィールド ワケワカでやってハマったから、使えないっていう人がいるからね
27 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 01:39:16.73 ] 0と1を入れるだけでも32bit変数を使うような時代にビットフィールドとか過去の遺物じゃないのかね
28 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 01:43:12.51 ] まさかCでやる全てが32bitのデフォだと思ってるのか? 今世紀最新の遺物だなお前 動く化石だ
29 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 01:52:10.36 ] >>27 もよく解らんが、>>28 の応じ方は輪をかけて解らん。
30 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 02:06:26.65 ] H8 の unsigned int は 16bit = 2byte superH は 4byte
31 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 02:13:55.71 ] 組込とかなら今でも現役だったりするのかね
32 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 02:41:12.25 ] ビットフィールドを絶対使えとかいってないでしょ バカとなんちゃらは使いよう
33 名前: ◆QZaw55cn4c mailto:sage [2012/05/05(土) 03:01:06.57 ] そりゃそなんだけどさー、ビット演算とか、& | ~ でマスクかけてさくさく書いたほうが、結局楽じゃない? I/Oのビットを立てたり下げたりするのって、普通こうするじゃん? いや、C に 0xc6 表現以外にも 「0b11000110」とかあればもっといいんだけどさー。 この前、5bit ごとにデータをシリアル化したい、ていうお題がどこかであったけれども、そのときもビットフィールドを使いたいとか思わなかったなあ。 ここはビットフィールドじゃないとっ、ていうお題があるんだろうか?
34 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 03:13:04.97 ] 書けるのに読めない人にはわからないことかも
35 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 03:43:16.00 ] bool型がどうしたって?
36 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 05:09:09.58 ] 組み込みでは現役というか定石ですね。 マイコンメーカーが提供しているヘッダファイルにもバリバリ。
37 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 05:10:37.10 ] >>32 しかし、クズは使いようもないな。
38 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 07:20:33.81 ] >>33 いちいち定数切るのが面倒。
39 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 07:39:33.82 ] 質問です n個の配列を作りたいのですが、下のソースでは、int m[n];の行で constant expected と言われます。どうしたら良いでしょうか。 SHARPのPC-G850VSです。 main(){ int n = 2; int m[n]; }
40 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 07:50:35.47 ] nはdefine定義しろよ
41 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 07:56:26.66 ] >>39 ANSI-Cでは配列宣言の要素数は定数でなくてはなりません。 int m[2]; と書きましょう。
42 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/05(土) 08:04:01.82 ] ビット単位の操作が必要なケースでレイアウトを気にしないでいいケースっていうのはかなり稀だと思うんだよな。 まぁ、必要っていう人が居るなら要るんだろうけど、レアケースであることにかわりはない。 gcc と vc++ ではビットフィールドを配置する上位下位が逆ってことで一部のライブラリで問題が起こるってことも聞いたことあるし。 gcc にはオプションで vc++ に合わせるモードもあるんだけど、ライブラリとして使う性格上、他のライブラリとの兼ね合いで 一律に逆転してもまずいっていう。 具体的には gtk がそれ。 あと、久々に規格を見直していて気付いたんだけど、ビットフィールドはなるべく詰め込むことが must なんだな。 > 十分な領域が残っている場合、構造体内のビットフィールドの直後に続く別の > ビットフィールドはは同じ単位の隣接したビットに詰め込まなければならない。 > 十分な領域が残っていない場合、入り切らなかったビットフィールドを次の単位に入れるか、 > 又は隣接した単位の境界をまたがらせるかは、処理系定義とする。 (JISX3010:2003 の 6.7.2.1 から引用) ここで言う「単位」がバイトのことなのかどうかがわらないんだが、原文ではどーなってんだろ。 いずれにせよ >>8 のような1ビットが8個の状況では1バイトに連続して配置されることが保証されてる。 あと、ちょっと本質的じゃないがビットフィールドの変わり種の使い方として構造体の代入抑制がある。 幅ゼロで const なフィールドがあると代入できなくなるんだと。 struct A { … const int : 0; }; てな感じ。
43 名前:NAS6 ◆n3AmnVhjwc mailto:sage [2012/05/05(土) 08:20:47.91 ] DirectXでビットフィールドはバリバリ現役だったりする
44 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 08:27:22.09 ] で、貴様らは入門スレで何を話してるんだ おっさんだろ
45 名前:デフォルトの名無しさん [2012/05/05(土) 08:56:49.82 ] > ANSI-ANSI-Cでは配列宣言の要素数は定数でなくてはなりません。 c言語に限らずこういうのを他の言語でも見かけるが、これって何で? >>39 の例の方が柔軟で良さそうに思えるのだけど。
46 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/05(土) 09:13:36.47 ] >>45 ローカル変数はスタックに取るのが普通だから、 コンパイル時に配置を決めてしまいたいんだよ。
47 名前: ◆QZaw55cn4c mailto:sage [2012/05/05(土) 10:33:19.72 ] >>36 んー。定石ですか。
48 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 11:19:57.15 ] >>46 配置を決めたいのが理由じゃねーよ。 隠れて何かしないってのがCのポリシーだからだろ。 決めなくても実現できるのはわかるよな。
49 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 11:23:05.84 ] つーか、c99なら普通にできるだろ。
50 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 11:24:42.88 ] 前スレでも出たが制限はあるけどな。
51 名前:デフォルトの名無しさん [2012/05/05(土) 14:45:42.23 ] 質問おねがいします for文の中で、下のように10倍、100倍、1000倍、10000倍のような計算を 変数”i ”を使って一つに纏める簡単な方法はありますか? よろしくお願いします。 for(i = 1・・・ x = x * 10; -----------ここから下を省略したい-------------------- x = x * 100; x = x * 1000; x = x * 10000;
52 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 14:52:11.70 ] >>51 この程度がわかんなかったら 後々の学業に支障をきたすレベル 有体に言えば脳障害と見間違う程にひどい
53 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 14:53:54.19 ] for (i = 1; i < N; i *= 10) { x = x * i; }
54 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 14:56:40.57 ] i *= 10;
55 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 14:57:15.92 ] >>52 お前が脳障害だろ。 >>51 まず日本語を勉強しろ。
56 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 14:57:57.95 ] >>55 ホンモノの脳障害の糞詰まりのクソ野郎がお出ましかw 巣にこもってでてくんなアホ
57 名前:デフォルトの名無しさん [2012/05/05(土) 14:58:11.12 ] >>52 ごめんなさいorz プログラムのプの字も知らず、あるきっかけで数日前にC言語というものを触り始めたばかりですorz >>53 ありがとうございます。 "i*"が味噌なんですね? ちょっとやってみます
58 名前:51 [2012/05/05(土) 14:59:27.28 ] >>55 すみませんどこか日本語おかしかったでしょうか?
59 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 15:00:03.52 ] やりたいことと例示している内容が違ってる気がする 32bit整数だとオーバーフローしてるし
60 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 15:01:36.33 ] >>51 x = x * 10; -----------ここから下を省略したい-------------------- x = x * 100; x = x * 1000; x = x * 10000; をそのまま解釈すれば x = x * 10000000000; だが、お前がしたいこととは違うんじゃないのか? 日本語ができないならせめて元のコードを示せ。
61 名前:51 [2012/05/05(土) 15:04:07.61 ] >>59 >>60 ああ、そういうことですか 100億なんて数字は使わないし、計算できないですもんね 本当はこうでしたすみません x = x * 10; -----------ここから下を省略したい-------------------- x = x * 100; x = x * 1000;
62 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 15:06:06.55 ] だからそれならx = x * 1000000; でいいだろが。
63 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 15:13:42.39 ] for (i = 10; i <= 1000; i *= 10) { x += (x * i); } こういうことだろうか
64 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 15:22:17.36 ] ここはこの程度と宣う>>52 に自分が脳障害じゃないってことを示して欲しいとこだな。
65 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 15:42:05.10 ] やべぇw 脳みそにクソが詰まった人間同士がクソの垂れ流しあいをしてるwww 素晴らしいw 相手はズブズブのシロートなんだから やりたいことくらい察してやれよwww ンなことだからオマイラは脳みそに怪しい部分をお持ちですね とか言われんダよww
66 名前:デフォルトの名無しさん [2012/05/05(土) 15:42:37.04 ] もう全部ソースを晒せばいいと思うんだ。
67 名前:デフォルトの名無しさん [2012/05/05(土) 15:47:12.87 ] やりたいことは察してやるのではなく、引き出してやればいいのだ。
68 名前:デフォルトの名無しさん [2012/05/05(土) 16:36:13.95 ] うんこがなんか言ってるな。
69 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 16:38:18.94 ] しゃべるクソなんだからしょうがない
70 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 16:58:04.18 ] >>51 行き詰まったから質問してるんだろうけど、もっと手前で道を間違ったから行き詰まってるんだよ。 例えて言えばお前の質問は「どうやったらこの道を進めるんですか?」と言ってるようなもんだ。 行き止まりの進み方を聞いたってこっちは知らんがなとしか言えない。 そこは進めない。 「どうやったらxxに行けるんですか?」と聞いてくれれば、 xx がどこか言ってくれれば回答しようがあるんだよ。 要は「自分が行き詰まっているところ」じゃなくて「目的地」を示せってこと。
71 名前:デフォルトの名無しさん [2012/05/05(土) 17:14:44.10 ] 日本語でおk
72 名前:39 mailto:sage [2012/05/05(土) 20:02:31.92 ] >>48 というと、n個の配列を作る方法はあるのでしょうか。(n=2とは限らない)
73 名前:デフォルトの名無しさん [2012/05/05(土) 20:08:19.73 ] mallocなりcallocでええやん
74 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 20:08:26.24 ] >>72 無い そういう方法は標準では用意されてない 最初に配列の個数を決めたら後で変えることはできない こういうのを静的配列と呼ぶ 実行時に配列の長さnを変えられるのは動的配列、 Cは動的配列を標準では提供していない 「C 動的配列」で調べれば出てくる
75 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 20:14:41.58 ] コテで無能自慢するのが流行りなんかね
76 名前:デフォルトの名無しさん [2012/05/05(土) 20:21:28.26 ] 知らなかったの?おっくれてるぅ
77 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/05(土) 20:26:13.72 ] >>72 C99 ではかなり条件が緩和されてる。 seclan.dll.jp/c99d/c99d04.htm ただ、ポケコンだと新しい処理系を使うってのも簡単じゃないだろうし…。 普通は malloc でメモリを確保して使うんじゃないかな。 int main(void){ int n = 2; int* m = malloc(sizeof(int)*2); //ここで m を使った処理 free(m); // ←メモリの解放 }
78 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 20:27:13.18 ] コテなしの無能発言よりはまし。NGできるコテつきは良心的ともいえる。
79 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 20:32:00.56 ] >>78 自己紹介お疲れ様です これからも駄文の垂れ流し、よろしくお願い致します無能様
80 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 20:39:01.94 ] >>78 こういう内容の発言なのに自分がコテ付けてないってのは かなり自家撞着なアホwww 「わたくし、アホでございます」と宣言してるようなモンだw
81 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 20:48:44.01 ] 自己紹介はやめろ
82 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 21:04:27.71 ] ____ / \ /\ キリッ . / (ー) (ー)\ / ⌒(__人__)⌒ \ コテなしの無能発言よりはまし。NGできるコテつきは良心的ともいえる。 | |r┬-| | \ `ー'´ / ノ \ /´ ヽ ___ / \ /ノ \ u. \ !? / (●) (●) \ | (__人__) u. | クスクス> \ u.` ⌒´ / ノ \ /´ ヽ ____ <クスクス / \!?? / u ノ \ / u (●) \ | (__人__)| \ u .` ⌒/ ノ \ /´ ヽ
83 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 22:42:35.88 ] >>51 同じく初心者が頭振り絞って考えたけど こういう事かな? #include <stdio.h> int main() { int x; int i; int j=10; printf(" 整数を入力\nx="); scanf("%d",&x); for(i=0; i<=3; i++) { x = x*10; printf("x * %d = %d\n", j,x); j=j*10; } return(0); }
84 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 22:47:44.92 ] GNUスタイルは久々に見た 初心者向けの本やサイトでそのスタイルは余りにも見かけない 本当に初心者なのかが疑問に残る 初心者が何もせずに何も見ずにそのスタイルに行きついたなら ある種の教祖的な素質がある
85 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/05(土) 23:02:00.16 ] >>84 へぇー。 手元にある本をざっと見たら確かにその通りだわ。 でも、俺も昔は >>83 みたいに書いてた。 初心者的には括弧の位置が対応してた方が安心できるんじゃないかなぁ。 エディタの支援がある状況だとちゃんとインデント付けてくれるけど、 初心者はそれに慣れてないわけだし。
86 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 23:17:37.35 ] 最初に使ったコーディングエディタがEmacsでショーも無い書籍を避けて進化すれば素養も昔は書いてたもクソもないよ
87 名前:デフォルトの名無しさん [2012/05/05(土) 23:22:42.18 ] 日本語でおk
88 名前:39 mailto:sage [2012/05/05(土) 23:23:16.24 ] >>73 ,74,77 有難うございます。とても勉強になります。 私は取り敢えず入門書を大体読み終えたのですが、まだまだですね… 以下のソースでテストしてみたところ上手く動作したので、今自分の作りたいものを作れそうです。 main(){ int n = 2; int *m = malloc(sizeof(int)*n); *m = 1; *(m +1) = 3; printf("%d, %d",*m,*(m+1)); }
89 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/05(土) 23:27:57.12 ] >>86 因みに俺が最初に C のコーディングに使ったエディタは Vz だったよ。 教員もめんどくさいから最近だと VC++ 選ぶと思うけどな。 C の初心者に Emacs から指導するのは手間なだけだろ。
90 名前:39 mailto:sage [2012/05/05(土) 23:28:20.64 ] free(m); 忘れてました
91 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/05(土) 23:29:00.84 ] >>88 free するかどうかの議論がまた始まるよー。
92 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 23:39:40.17 ] for( P=Root, Last=NULL; P != NULL; Last=P, P=P->Next ) この手のfor分は行数ケチスタイル?
93 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 23:45:01.47 ] そんな変なの見たことねぇ。
94 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 23:45:41.53 ] うん
95 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/05(土) 23:48:18.69 ] >>92 意味的にループのための初期化、判定、インクリメントになってるなら、 ケチとかどうとか言う類のものじゃないと思うけどな。 俺はアリだと思うし、実際に書くよ。
96 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 23:57:19.78 ] リークの意味がわかってないアホにはうんざり
97 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 23:58:17.23 ] それはコードゴルフスタイル
98 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 00:00:21.67 ] LastとRootの語をどう使い分けてんのかわけわからん
99 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 00:19:46.98 ] とりあえず変数名を大文字で始めるのは気持ち悪い
100 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 00:36:28.99 ] 気持ち悪いね
101 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 00:37:16.01 ] キャメルケース アッパーキャメルケース ローワーキャメルケース スネークケース あなたはどれ?
102 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 00:46:42.90 ] レッドスネークカモン
103 名前: ◆QZaw55cn4c mailto:sage [2012/05/06(日) 00:48:36.65 ] >>84 ,85 pascal の begin / end の段付けを意識した書き方だとこうなるよね。
104 名前: ◆QZaw55cn4c mailto:sage [2012/05/06(日) 00:49:54.57 ] >>88 ,91 おっと信者の出番がきましたか霧
105 名前: ◆QZaw55cn4c mailto:sage [2012/05/06(日) 00:51:03.93 ] >>96 勝手にリークを定義されても霧
106 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 00:51:19.83 ] 質問おながいします unsigned int abc; ↑ この変数の中身を指定したビットだけ取り出したり操作したりするのはどうすればいいのでしょうか? 例えば、abc = 0b0000000000000000 として、10ビット目だけを反転したり取り出したりしたい場合です。 よろしくおながいします
107 名前: ◆QZaw55cn4c mailto:sage [2012/05/06(日) 00:53:06.28 ] >>101 ごめんなさい。もしよろしければそれぞれ教えてください。
108 名前: ◆QZaw55cn4c mailto:sage [2012/05/06(日) 00:55:24.72 ] >>89 demacs が遅くて Vz も便利に使ってたけど、どこぞのemacsバインドマクロを早々にいれちゃったなあ。
109 名前:デフォルトの名無しさん [2012/05/06(日) 00:57:56.53 ] >>106 https://www.google.co.jp/search?source=ig&hl=ja&rlz=&q=C+%E3%83%93%E3%83%83%E3%83%88%E6%BC%94%E7%AE%97&oq=C+%E3%83%93%E3%83%83%E3%83%88%E6%BC%94%E7%AE%97&aq=f&aqi=g6g-m2&aql=&gs_l=igoogle.3..0l6j0i5l2.131.2350.0.2892.12.12.0.0.0.0.125.1076.9j3.12.0...0.0.
110 名前:デフォルトの名無しさん [2012/05/06(日) 00:58:51.17 ] んげ ロケール情報までURLに・・・糞Googleが
111 名前: ◆QZaw55cn4c mailto:sage [2012/05/06(日) 01:06:03.88 ] >>106 codepad.org/1GkrqfnM 最小のビットを 0 として大きい方向に1, 2, 3, ... 10 と数えたときの10番目です。 最小ビットを 1 から開始するときは mask = 1 << (10-1) にしてね
112 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 01:09:25.07 ] >>107 ローワーキャメル lowerCamel アッパーキャメル UppterCamel スネークケース snake_case キャメルケースはローワーやアッパーのジャンル名だった。 めんご
113 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 01:10:44.82 ] へぇ google様はロケール情報まで付け足してくれるのか こりゃあいいこと知ったw ありがとうありがとう さっそく情報抜き出すよ!
114 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 01:13:30.53 ] #define GETBIT(a,b) ((a)&(b1)?1:0) #define XORBIT(a,b) (a)^=(1<<(b1)) int main(void) { unsigned int abc=123; int bit; XORBIT(abc,10); bit=GETBIT(abc,10); return(0); }
115 名前:デフォルトの名無しさん [2012/05/06(日) 01:19:04.69 ] なんだその・は。
116 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 01:41:51.19 ] 彼の脳内にしか存在しえない 素晴らしい演算記号なのだろう きっと
117 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 01:51:20.12 ] >>115 iPhoneだとゲタに見える 文字コードいくつの文字なんだろ
118 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 01:52:53.96 ] これじゃね? ≪
119 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 01:57:11.76 ] 114です。 マイナス(-)のつもりが全角で化けてたみたい、すまん。 それと #define GETBIT(a,b) ((a)&(b-1)?1:0) は #define GETBIT(a,b) (((a)&(b-1))?1:0) の方が良いのですね。
120 名前: ◆QZaw55cn4c mailto:sage [2012/05/06(日) 02:02:00.60 ] >>119 不精せずにcodepad 等で動かしてみれば?
121 名前:106 mailto:sage [2012/05/06(日) 03:00:44.55 ] みなさんレスありがとうございます とりあえず、>>111 さんのコードに変数 x を追加して、 x = a & mask; if(x == 0){printf("10th = 0");} if(x > 0){printf("10th = 1");} これでやりたいことができました。 C言語をかじって1ヵ月しかないですが、このスレでは質問すれば有用な返答が頂けて感謝しています。 どうもありがとうございます。
122 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 04:34:36.13 ] >>121 下のif分はelseにまわした方がよくないか? というか111がやってるのと逆のシフトを行えば ifすらいらないぞ
123 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 06:23:57.73 ] 別にシフトすら要らないぞ。 printf("10th = %d\n", !!(a & mask));
124 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 06:27:00.01 ] printf("10th = %d", (a >> n) & 1);
125 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 12:43:15.68 ] すいません(つA`)教えてください。 int a,b; dobule c; a = 7; b = 4; c = b / a; と書いたのですが、 %f表記でも、cに値が入っていません。 使っているcは、オブジェクティブcなのでスレチかもしれませんが、教えていただけると助かります。
126 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 13:08:02.71 ] c言語はよくしらないけど c = (double)a / (double)b; じゃないの?
127 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 13:15:14.09 ] >>126 ありがとうございます。 早速試してみます。助かりました。
128 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 14:11:17.74 ] お礼なんていらないよ
129 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 14:11:43.53 ] >>126 キャストは一つだけで十分 codepad.org/KyBPyoJA
130 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 22:33:24.41 ] Cソースに、関数内に特定の文字列が入っているかどうかを検索し、リストアップできるツールって知ってますか?教えてえらい人。
131 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 22:39:35.34 ] >>130 >Cソースに、関数内に特定の文字列が入っているかどうか これ、だいぶぼやっとしていて、何がしたいのかよくわからないが、、、。 grepとか範囲内検索では足りないのかな? 具体的に例を上げてくれれば、レスもらえるかも。 どっちにしてもCの話ではなさそうだが、、、。
132 名前:デフォルトの名無しさん [2012/05/06(日) 22:43:01.00 ] 質問があります。 ディレクトリの監視をするのに、inotifyだと、inotify_eventのnameに監視してるファイルを作成/削除/変更 したファイルの名前が入ってると思うのですが、kqueueの場合は、どのように監視しているファイル名を 取得すればよいのでしょうか? よろしくお願いします。
133 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 22:45:42.96 ] >>131 例えば秀丸だと、grepでは、ソースファイル名とライン数はわかるけど、grepした文字列がどの関数にはいっていたかどうかは、grep先を目視しないとわからないですよね。 私は、ある文字列が、どの関数にある、ということをそういった手間をかけないで調べたいのです。
134 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 22:59:37.87 ] >>133 >文字列がどの関数にはいっていたか その「文字列」って具体的に何? スタック変数なら、関数内だから無関係だよね。 グローバル変数なら、カプセル化がヘボすぎて、管理できなくなってるだけの気がするが。 リストアップしたくなる時点で設計が良くない気がする。 それ以外の文字列なら、用途が想像できない。
135 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 23:13:26.33 ] まァやるとしたらperlでやるけどね、 どちらにせよ関数の中の変数名を調べたいってのは プログラミングとしては末期症状だとは思う そういうのが必要になる状況てのは かなり切羽詰まっている、 有体に言えばそのソースコードはクズでしょう、捨てなさい
136 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 23:17:33.31 ] シングルスレッド前提で書いてたコードをマルチスレッド対応に書き直しとか 関数の仕様が変わったので書き直しとかかね
137 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 01:02:14.28 ] >>133 秀丸は関数一覧を表示していれば、検索でヒットした部分を含む関数もハイライトしてたよ。 grepではどうなるかわからないけど。
138 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 08:11:14.02 ] >>133 関数/変数ならクロスリファレンサを使えばいい。 ここまでその名前が出てきてないのにびっくり。 カスばかりだな。
139 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 08:32:35.16 ] 本来なら不必要だから。
140 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 08:35:32.45 ] >>138 何がしたいのかも分かってないのに偉そうな奴だな 察したのか?
141 名前:デフォルトの名無しさん [2012/05/07(月) 09:27:17.12 ] 日本語も理解できないカス>>140
142 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 11:13:36.95 ] 柴田望洋さんと猫でもわかるプログラム読んだけど、なんか極端すぎます・・・ この中間ぐらいの本や、サイト探しています 誰か知りませんか?
143 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 11:22:00.49 ] 何を紹介したって極端だと言うんだろ?
144 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 11:38:22.56 ] 大学が公開してるPDF読めば?
145 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 12:37:25.97 ] >>142 知りません >>143 うん >>144 うん
146 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 21:50:41.84 ] >>142 「苦しんで覚えるC言語」とかどう? ttp://9cguide.appspot.com/ 「C言語ポインタ完全制覇」も躓き安いところを抑えてある。 下のページを見て興味が湧いたら、どうぞ。 ttp://kmaebashi.com/programmer/pointer.html
147 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 23:02:33.27 ] Cでinterfaceってどう書くの? 純粋仮想関数的な書き方ってある?
148 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 23:04:20.63 ] 関数ポインタでごにょごにょ
149 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 23:09:24.14 ] どう書くの?って言うのは単にCでインターフェースっぽい動作をさせたいだけなのか C++とバイナリー互換を持たせて相互運用したいのかによって変わると思う。
150 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 23:21:48.75 ] >>149 すげ レスはや。 thx C++とは関連なかとです。 typedef struct _CAGE{ void (*hoge)(....); // = 0; とか入れたいところだが無理か w int (*hage)(....); } _CAGE; こんなのを次のクラス宣言に取り込めばええだけかな?
151 名前: ◆QZaw55cn4c mailto:sage [2012/05/07(月) 23:44:00.58 ] >>147 インターフェースは、多重継承をやりたくないけれども完全排除もしたくない、というジレンマの上にある妥協の産物。 継承の仕様の一部に制限をかけただけのもの。 C でインターフェースを書くということで、一次近似できたとしても、「制限をかける」ことはできないのでは? 制限なしなんでもありのCにインターフェースとかはなじまない。
152 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/08(火) 00:12:05.27 ] 実用を考えているならやめておいた方がいいとは思うよ。 インターフェイスがどう実装されているかを考察するとかなら あえて C でやってみるのもいいんじゃない? わかっている人から見れば不毛だろうけど。
153 名前:デフォルトの名無しさん [2012/05/08(火) 00:36:31.39 ] クズとうんこの罵り合いか。
154 名前:ビル・ジョブス mailto:sage [2012/05/08(火) 03:15:21.64 ] 無理矢理、externで宣言/ダミー呼び出しすればリンクエラーには出来るかもしれない。 関数全体をマクロに閉じ込めれば出来なくも無いが可読性最悪。 大昔のC++コンパイラが中間生成するCみたいな。
155 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 04:04:34.32 ] >>146 苦Cはダメになるぞ。
156 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 06:32:55.55 ] >>151 ,152,154 おは レス thx やはりそうなりますか。未実装を検出できなければインターフェースの意味がないもんね w 継承でやります。stateやcompositeやら書いていたらインターフェースで管理したくなってつい不毛な... w C++? Cortex-M3で、OO利用バイナリを最小にしたいのでちょっと...。
157 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 10:08:48.83 ] チェックマクロかませればいいだけじゃん。
158 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 12:00:48.44 ] >>157 assertの事? 入れてるよ w アグリゲート等の使う側の話じゃなくて、管理の話。 構造体系にも関係するかも? Mavenの方々 thx
159 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 12:03:24.04 ] なんだ構造体系て。 別にassertでもなんでもいいが、未実装の検出が目的じゃねーのか。
160 名前:デフォルトの名無しさん [2012/05/08(火) 12:56:21.38 ] www9.plala.or.jp/sgwr-t/c/sec10-2.html にある char st[10]="ABC"; p1=st とあり、p1=stについて これを「ポインタpはSTを指す」という&stではないことに注意とあるのですがよくわかりません。 printf("%p %p\n", &st, st); すると同じアドレスが表示されました。 どう違うんでしょうか?
161 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 12:56:57.46 ] 型が違う。
162 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 13:34:19.80 ] Shinayama Programming Change Compilerって何ですか?
163 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 14:51:00.00 ] >>162 俺にきくなよ 知らないっていってるだろ
164 名前:デフォルトの名無しさん [2012/05/08(火) 15:44:25.25 ] >>151 インターフェイスって多重継承の道を突き進んだ延長上にあるものだぞ それこそ Cargill が背理法として持ち出した「馬鹿げた想像」が皮肉にも現実化したもので # 本番稼働で ((void)0) になるだけなものを使って何がしたいんだろうね
165 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 16:05:27.27 ] C言語であることとインターフェースを使った設計が必要であるかは 全く別問題な気がする。 C++やJavaみたいなオブジェクト指向言語でインターフェースを使った設計が 広く使われているって事はC言語しか使えない環境でインターフェース的なことをやりたい 欲求も当然あるんじゃ無いかな C言語でインターフェースの型情報を持てないのは、言語使用としてサポートしていないと言うだけで それを実装できないというわけでは無いと思う。 例えばインターフェース型の構造体に静的に宣言された型識別子を割り当てて管理することも出来る。 当然可能であればC++で書いた方がよっぽど楽って事にはなると思うけど。
166 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 16:07:20.36 ] >>160 そこもダメになるサイト。「ポインタp1はstを指す」のではなく、stの先頭要素を指している。 つまり、stは配列そのものではあるが参照されると先頭要素を指すポインタ型になる。 &stとした場合はstは配列だから当然に、配列を指すポインタ型になる。 そのサイトを書いた奴はその辺りを判っていないと思われる。
167 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 16:19:20.87 ] >>160 例えばそこのページの最後にある、 >このとき str == str[0] == &str[0][0] はナンセンス。 str[0]と& str[0][0]は型が等しいから比較できるが、strは型が違うので比較しても意味が無い。 敢えて比較したいのならば、(void *) str == (void *)str[0]とするべき。 言葉で書くなら、strとstr[0]は(型は違うが)アドレスは等しくなるとするか。 そもそも、初心者は「アドレスの概念を強いられているんだ!」と怒ってもいい。
168 名前:デフォルトの名無しさん [2012/05/08(火) 16:34:59.80 ] なんのこっちゃ。
169 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 16:37:08.22 ] C言語を強いられているんだ! 的な?
170 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 17:09:11.84 ] やばい、つまんないこと書き込んでたらご飯のスイッチ入れる忘れてた
171 名前:uy mailto:sage [2012/05/08(火) 17:54:57.30 ] >>170 しねよくず
172 名前:デフォルトの名無しさん [2012/05/08(火) 18:15:44.09 ] 言語解析(コンパイラ)の授業大学でやってるけど、さすがに Cのアルゴリズムコード出して試験はしないよね? オートマンとか、左再帰とかそういうのしかやってない....
173 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 18:21:09.82 ] おっ盛り上がってるな! >>164 純粋仮想関数をnewすると実行でアサーションエラーになります。 使う話で恐縮だが。 それでも、インターフェース機能が存在するのは、マストな存在だからです。 チップ組込みも肥大化しつつありますが、それに増してPC上でビッグプログラムを開発すると、 構造設計段階での有難みが身に染みます。 しかし...、CでのOOPは慣れれば快適 w もちろん、メッセージドリブン、イベントドリブンや仮想関数テーブルのライブラリを完成させてからの話だが w
174 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 18:30:51.79 ] このスレ見てると、単なるCの文法の話なのか、ソフトウェアやネットワークと C言語の関連の話なのか全然分からない。
175 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/05/08(火) 18:33:05.07 ] >>165 ReactOSでC言語でCOMオブジェクトを実装しているのは見たことある。
176 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 18:35:31.36 ] C言語でインターフェース作らなくても、javaにあるんだからそれ使えばいいじゃん。 既成機能のほうが優れているし早いんじゃないの?
177 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 18:37:13.33 ] >>173 お前はいったい何が言いたいんだ。 日本語に不自由なのか?
178 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 18:40:26.15 ] C言語の知識深すぎる人ここ多いけど、そんだけ知識あるなら エンジニアでもなればいいのに。
179 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 18:43:23.54 ] 高級言語って機械語を指示する言語なんだから、理論的には 他言語の機能だって、あらゆる手段を組み合わせて実装できるんじゃないの?
180 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 18:48:41.96 ] 別に実践的になんでも実装できるがどうかしたか。
181 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 18:55:01.76 ] 高級言語で機能実装したら絶対スピード遅くなるだろ。
182 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 19:05:22.94 ] 今時のCコンパイラより速く書くのは大変だぞ?
183 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 19:10:57.76 ] >>178 医者なんで... 今日は非番。
184 名前:164 [2012/05/08(火) 19:18:18.01 ] >>173 それはもしかして C++ の話? だとすると純粋仮想関数は new できないんだが・・・ # スレチすまそ >ALL > CでのOOPは慣れれば快適 ここは同意 C しか知らないと他の言語を漁りに行く動機がなかったりなw # 知人にいるんだこれが
185 名前:デフォルトの名無しさん [2012/05/08(火) 19:32:27.61 ] このスレ絶対初心者スレじゃない。 東大生でも理解できんぞ。
186 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 19:34:34.73 ] 上級者ほど理解できないとも思うがw
187 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 19:34:44.53 ] C言語なら俺に聞け(応用編)って作ればよくね?
188 名前:デフォルトの名無しさん [2012/05/08(火) 19:43:14.48 ] 上級者は次元が違うってか? 馬鹿よせよ。 C言語のコーナーじゃ文法の本がほとんどじゃ。 俺の知ってるC言語じゃない!
189 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 19:44:46.53 ] 俺の知ってるC言語じゃない! (このスレはね。)
190 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 19:45:40.70 ] 専門的な奴でも、親切に噛み砕いて教えてくれる人と、 自分本位で専門知識ひけらかすアホがいるよな。
191 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 19:46:33.09 ] まったく、どうしてアホはこうも傲慢なのかね。
192 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 19:50:09.67 ] インテリ傲慢は講師になるなよ
193 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 19:51:46.67 ] 難しい事でも噛み砕いて教えてくれる本があれば、1万ページでも 1か月で読める。
194 名前:デフォルトの名無しさん [2012/05/08(火) 20:02:55.58 ] K&R をガチ幼稚園児を前提に書くと何ページくらいになるかな
195 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 20:03:36.85 ] いい加減、つまらんから間抜けなことばかり言うのよせや。
196 名前:デフォルトの名無しさん [2012/05/08(火) 20:05:16.61 ] その言葉、そっくり返すぜ C の話をしろや
197 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 20:06:30.26 ] アホは黙ってろよ。
198 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 20:07:49.76 ] 親しみにくいからソフトウェア離れが増える。 あまりに基礎技術が進みすぎると誰もやりたいと思わん。 そういう意味で90年代後半のほかほかITブームの流れにのったやつは運がいいよな。
199 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 20:13:12.88 ] プログラマーとかなりたいやつ皆無だろ。 汗流すほうが健康にもいいし楽しい。
200 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 20:20:58.12 ] 全く雇用が守られてないからな 文理不問で学歴不問で未経験者OKで 数年毎に新しい技術が出てきて蓄積が無意味になるんじゃ 若くて素直で人件費の安い奴隷が優先されてコストのかかる頑固な年寄りは切られるよ その方が企業にとって都合がいいからそういうシステムになってるんだろうね全く人間がモノ扱いだよ
201 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 20:22:37.77 ] プログラマーはつまらんよ 趣味で好き勝手やるのが一番
202 名前:デフォルトの名無しさん [2012/05/08(火) 20:33:21.85 ] 好き勝手は別に趣味でなくてもできるぞ かみ砕いてやると創造性の発揮というやつだ これができない奴は PG 以外でも結局同じこと
203 名前:デフォルトの名無しさん [2012/05/08(火) 20:35:38.37 ] >>197
204 名前:デフォルトの名無しさん [2012/05/08(火) 20:44:44.92 ] ブーメランw
205 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 20:57:35.76 ] ここ 入門スレじゃない
206 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 21:15:28.53 ] すみません、質問です。 codepad.org/XAPbYL9u のコードが、コンパイラによって処理が出来たり出来なかったりします。 これは、このプログラムのなかに問題があるのか、それともコンパイラ側に問題が有るのでしょうか? 因にコンパイラはandroidアプリのc4droidとc/c++コンパイラです。 前者では失敗(十進数では~の下りが表示されない)、後者では成功しました。 プログラムが汚いのはスマートフォンで組んだからです。お許しを。
207 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 21:18:37.50 ] よくわからんがcontを初期化しないで使ってるな
208 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 21:19:22.97 ] あ、良いのかなスマン、スルーしてくれw
209 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 21:22:39.03 ] >>207 さん ありがとうございます! あんな事に気づけないとは... 下らない質問失礼しました。
210 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 00:40:35.47 ] QをNGにするとすっきりするよ
211 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 01:42:57.87 ] #defineについてお聞きしたいことが御座います。 とある環境のソースを別の環境で移行する為に、変数の値の置き換えを行いたいです。 Aプロジェクトで「Mouse.Trg&_lMOUSE」と書いているソースを、 Bにて「System.touch.trgFlag」で呼び出せるようにしたいです。 #define Mouse.Trg&_lMOUSE System.touch.trgFlag #define Mouse.Py System.touchPos.y と書いてみたのですが「Mouse.Trg&_lMOUSE」の「.」と「&?」が原因でエラーが出てしまっております。 このようなことはできないのでしょうか。 警告 warning: missing whitespace after the macro name エラー error: expected primary-expression before '.' token
212 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/09(水) 01:48:49.24 ] >>211 マクロ名は「識別子」であり、識別子として有効でない名前を指定することは出来ない。
213 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 01:51:22.00 ] >>211 日本語がわからんがきっとこんな感じか。 #if PROJECT_A # define MouseLButton() (Mouse.Trg & _lMOUSE) #elif PROJECT_B # define MouseLButton() System.touch.trgFlag #endif
214 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/09(水) 01:54:29.41 ] 識別子についての詳細はこれ。 freedeai.180r.com/up/src/up11133.png
215 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 01:55:14.23 ] 皆様、ご回答ありがとうございます。 やはりこのようなことは#defineでは出来ないのですね・・・。 >>213 様 アドバイスありがとうございます。 その場合、両方のソースでMouseLButton() に置き換える感じなのでしょうか? 変数だけで指定することが出来ない場合、その方法を使用させて頂くかもしれません。 ありがとうございます!
216 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 02:01:35.24 ] >>215 Bでstruct Mouoseを用意して適当に値を詰めるって手もあるが。
217 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 02:02:02.29 ] ないな。
218 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 02:02:38.83 ] お前がな。
219 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 11:39:17.60 ] 「return 0;」と「return (0);」の記述の仕方見るんで 違いやどっちがより正しいとかでもあったりするのかちょっと気になって 検索で調べたんだけどこれと言って見つけられないんだけど 何か知ってる人いるかな?
220 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 11:41:28.71 ] 文法上括弧は不要。 つけてるのは勘違いしてる間抜けだけ。
221 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 11:49:12.28 ] return 0; は普通。 return (0); は神経質。 return(0); はおっちょこちょい。
222 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 12:21:20.58 ] retrun(0); は救いようがない。
223 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 12:36:29.83 ] #define retrun return
224 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 12:48:18.84 ] void retrun(int x); が死ぬ。
225 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 13:27:17.23 ] >>219 "カーニハン リッチー return" を検索 「K&R (第1版) でも return 文の後の式を括弧で囲っていた(中略) if/while/swtich のように、他の式を一つ取る構文は全て () が必須なのだから、return もある方が自然」(?) ttp://blog.kmckk.com/archives/1242942.html
226 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/09(水) 17:45:00.00 ] >>225 alohakun かwww
227 名前:デフォルトの名無しさん mailto:// [2012/05/09(水) 18:22:58.01 ] フリーのcコンパイラっていろいろあるみたいですけど おすすめとかってありますか?
228 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 18:27:10.07 ] >>227 WindowsならVisualStudio Express(C++) MacOSXならXcodeフリー版 その他Unix系OSならgcc でおk
229 名前:227 mailto:// [2012/05/09(水) 18:40:21.19 ] ありがとうございました
230 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 23:23:22.31 ] いえいえ
231 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 01:20:40.21 ] フリーのcコンパイラ Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland Digital Mars Compiler Version 8.42n Copyright (C) Digital Mars 2000-2004. All Rights Reserved. Written by Walter Bright www.digitalmars.com/ctg/sc.html Open Watcom C/C++32 Compile and Link Utility Version 1.9 ( Open Watcom C32 Optimizing Compiler Version 1.9 )
232 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 01:23:08.33 ] フリーのcコンパイラ License LCC is free for personal use ... LCC (compiler) - Wikipedia
233 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 01:34:28.92 ] 日本語つかえるのか?
234 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 01:34:37.88 ] これでいいだろ。 codepad.org/
235 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 07:41:16.21 ] ワロス
236 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 08:09:18.65 ] C machineはもう公開してないんだな。
237 名前:濡鼠 [2012/05/10(木) 11:39:31.82 ] はじめまして。 今、H8マイコンでC言語を勉強しているのですが、 実際に現場で使うのでしょうか?
238 名前:デフォルトの名無しさん [2012/05/10(木) 11:51:18.37 ] VisualC++での話ですが、コードを書いてデバッグなしで開始で実行 した際に、消したにも関わらず、一回前に書いたコードが何故か実行され、新しく書いた 方が実行されません。何故でしょうか?
239 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 11:55:24.98 ] いっぺんくりーんしてみろ
240 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 12:29:33.18 ] >>238 プログラムの使い方はスレ違い。 C++の話でもスレ違い。 ビルド失敗したんじゃないの? >>237 現場でH8を使うかどうかはスレ違い。 H8の開発現場でCを使うかどうかもスレ違い。
241 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 12:35:49.11 ] H8は生産が終わったので今更やっても無駄 現場じゃ使えない せめてSH-2かARM系
242 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 12:50:47.32 ] >>237 使うぞ >>241 C言語の勉強と書いてあるじゃないか。 H8かどうかなんて関係無い。 よく見てレスしろ! カス!
243 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 13:09:38.35 ] うるせーカスだな。
244 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 13:59:43.43 ] もう手に入らないものの勉強したってしょうがないのにね
245 名前:デフォルトの名無しさん [2012/05/10(木) 14:04:53.78 ] へえ
246 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 14:31:38.73 ] ふーん
247 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 14:37:16.46 ] ルネサスも品種減らしたいので統合前の製品を色々切ってるんだよな H8じゃなくH8Sなどならまだしばらく売るだろうけどね 量産なら一円でも安いものを選択するだろうが 入門なら後々まで役に立つものを選びたいね RXはかなり微妙だったが…
248 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 15:25:24.07 ] ふう
249 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 17:42:06.72 ] そういえば VAIOのキーボードコントローラー IO EXPANDERに H8S2149使ってたな〜
250 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 21:55:11.28 ] C言語のプログラム全部提出しないと単位くれないって鬼畜なん?
251 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 22:02:11.36 ] そんな学校入るなよ
252 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 22:21:30.23 ] 必修単位ならどうせ簡単な問題だろ
253 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 22:26:40.97 ] C言語のおかげで留年しましたよ。 本当に恐ろしいわ。
254 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 22:31:46.75 ] >>194 数学の参考書で一行ごとに丁寧な説明があるのとかあるが C言語の解説書もそうして欲しいよなww 馬鹿馬鹿しいと思うことでもビギナーにとっちゃ永遠に分からない事かもしれんし。
255 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 22:54:22.59 ] C言語に触れて、初めてプログラミングっておもしれぇって思った
256 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 22:57:00.53 ] と同時にめんどくせえって思った
257 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 23:43:29.11 ] C言語に触れて、 ・彼女が出来ました! ・宝くじがあたりました! ・昇進しました! ・道端で500円を拾いました! ・
258 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 04:27:39.32 ] K&Rってどうなの?
259 名前:デフォルトの名無しさん [2012/05/11(金) 07:20:52.42 ] KuriとRisu ?
260 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 07:47:59.16 ] >>244 C言語の勉強でH8をたまたま使っているだけだろ。 それともなにか、C言語は手に入らないってこと言ってるのか?w
261 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 08:54:45.98 ] IDE無かったら絶対に再帰なんてトレース出来んかったわ。
262 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 08:59:31.53 ] IDEの意味知ってる?
263 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 09:15:05.25 ] ハードディスクだろ?
264 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 09:43:42.58 ] SASI/SCSI/IDE
265 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 09:46:49.88 ] しょーもねーやつだな。
266 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 22:10:49.93 ] だなw。
267 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 22:55:42.98 ] Integrated Development Environment
268 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 23:45:59.08 ] >>206 で下らない質問をした者ですが、またも質問です。 codepad.org/UAQSRi2n がvisual c++2010では実行できて、Tiny C compilerを利用したIDE(学習用c言語開発環境)では実行できません。 具体的には、37行目からのprintf文に問題があるようですが、その警告文がよくわからないです。 警告文:unknown escape sequence: 'x81' どなたか宜しくお願いします。
269 名前:デフォルトの名無しさん [2012/05/11(金) 23:53:18.43 ] 全角空白
270 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 23:59:09.98 ] さいきんのコンパイラさんは全角スペースも半角スペースに変換してくれるのかい?(" "内の全角スペースを除いて)
271 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 23:59:28.13 ] 全角空白を消して実行しましたが変わりませんでした。 そもそもエラーが起きるのが37行目なので全角空白にも問題はあると思いますが、解決にはなってないみたいです。すいません。
272 名前:261 mailto:sage [2012/05/12(土) 00:02:35.50 ] >>271 は261です。
273 名前:268 mailto:sage [2012/05/12(土) 00:02:54.53 ] >>271 は268です。
274 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 00:06:00.59 ] >>271 時々あるのが、エディタ上の文字エンコーディングの設定によるエラー
275 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 00:06:12.45 ] メンドクセーから コマの名前全部アルファベットにしろ FuとかOuとか
276 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 00:12:34.31 ] そこで再帰ですよ。
277 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 00:13:11.40 ] にゃ?
278 名前:268 mailto:sage [2012/05/12(土) 00:16:25.54 ] もう少し考えてだめだったらアルファベットにします。 ありがとうございました。
279 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 00:19:21.54 ] 再帰の宿命はよ
280 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 00:20:07.86 ] にゃにゃ?
281 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 00:36:50.30 ] >>278 問題は31行目と54行目。 puts("−−−−−−−−−−−−−−−−−−−−−−−−"); に変えれば解決する。
282 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 00:37:20.83 ] >>278 いえいえ お礼なんていらないよ
283 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 00:38:39.18 ] >>281 理由を教えてあげなよ
284 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 00:42:24.85 ] なんで?
285 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 00:49:42.02 ] いやまあいいけどさ別に そこまで教えてあげたなら、ね
286 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 00:50:12.83 ] お前が教えろよ。
287 名前: ◆QZaw55cn4c mailto:sage [2012/05/12(土) 00:50:43.88 ] >>283 "―" はシフトJIS では 0x81, 0x5c。 0x5c は '\' (バックスラッシュ)で、これは C のエスケープシーケンスの始まりを示すね。 で、問題のコンパイラは、一文字目の "―" の後ろに続く、二文字目の "―" の最初の 0x81 をエスケープシーケンスの2バイト目と解釈してしまった。 無論、\ + 0x81 に相当するシーケンスは定義されていないから、エラーとして表示された。 こんなところでいいかな? >>268 玉方と王方の区別は?
288 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 00:51:38.58 ] 単にそのコンパイラが日本語に対応してないからだろ。
289 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 00:54:55.18 ] >>287 さすがだね 出来るやつは後進の育成にも積極的なのは世の常
290 名前:デフォルトの名無しさん [2012/05/12(土) 00:56:19.60 ] 出た、クズの自演。
291 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 00:58:01.88 ] >>290 >>287 と>>289 のIPおせーてくださいって運営に言ってみれば?w
292 名前:デフォルトの名無しさん [2012/05/12(土) 00:58:48.26 ] ト リ プ ル 自 演 乙。
293 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 00:59:45.45 ] なんか自演妄想してる人がとってもかわいそうに思えてきた いいんじゃないですか?そう思っておけば
294 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 01:03:03.13 ] そうだね、クズはクズだし。
295 名前: ◆QZaw55cn4c mailto:sage [2012/05/12(土) 01:10:27.04 ] 出た! 自演を演出するための自演。 シフトjis なんて fat32 が現れた時点から死滅する運命だろうなと思っていたんですが、現実には10年を超えた今でも長生きしていますね。
296 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 01:11:41.53 ] 海外のオープンソースのプロジェクトに参加してみたいんですが、どう探せばいいですか? 停滞しているプロジェクトにいきなりアプローチしても反応がなさそうなので、 活発そうなところを探したいです。英語はできます。
297 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 01:12:43.96 ] スレ違い。
298 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 01:13:31.98 ] ありがとうございました。よかったらどこへ投稿したらいいか教えてくださると幸いです。。
299 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 02:00:40.01 ] include <stdio.h> void main(void) { printf("C言語始めました。"); printf("先輩方よろしくお願いします。"); }
300 名前:299 mailto:sage [2012/05/12(土) 02:05:31.38 ] // \nがねえワロス
301 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 02:34:10.05 ] #もねぇ。。
302 名前:299 mailto:sage [2012/05/12(土) 02:45:38.93 ] クソッ クソッ 手元にビジュアルスタジオさえあれば間違いなんてすぐ分かるのにヘタレすぎワロタ
303 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 03:09:02.00 ] >>302 >>1 codepad.org/ ideone.com/
304 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 05:31:58.12 ] BS11 報道原人「“ネット右翼"の素顔を見た」 2012年5月12日(土) 8時30分〜9時00分 ゲスト:安田浩一(ジャーナリスト) 中国や韓国などに対して過激な批判を展開する「ネット右翼」。 会員数1万人以上を誇り右翼団体の中でも最大規模となっている組織も存在する。 実際にネット右翼を取材したジャーナリスト・安田浩一氏は、一人ひとりに会ってみると、 おとなしい今どきの若者たちが多いという。 www.bs11.jp/news/1349/
305 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 09:50:30.59 ] >>299 C:\>gcc test.c test.c: In function `main': test.c:4: warning: return type of 'main' is not `int'
306 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 10:26:28.06 ] >>305 // 理解不能です // printf scanf if whileしか理解できません
307 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 10:52:49.44 ] >>305 よく見たらWindows環境だったけど gcc test.c なんて書かれてると不安を覚えるなあ… いや、コンパイル後の扱い次第なのはそうなのだが
308 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 10:57:26.84 ] >>306 [int] main() mainの前のintは省略可能≠void
309 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 14:10:07.86 ] RPGとかのキャラ情報って全部構造体に入れるんでしょうか? HPや攻撃力などの要素がかなり多い場合、どうやって管理するんでしょうか 何百行にも渡ってtypedef struct〜とか書くんでしょうか
310 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 14:12:19.92 ] その手のデータはcsvファイルにまとめといて そこから読みだす できれば、そのcsvデータを作る別のプログラミも作る
311 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 14:59:11.24 ] csvよりはYAMLっぽい表記をパクるなりしてkey=value なのを階層的にずらずら並べていったほうが柔軟性、拡張性は高い。 敵: 名前=毒スライム 属性=毒,混乱 毒: 確率=10% ダメ=1-8 備考=3回刺されたら即死 てな感じで。 例えば備考のような項目はデータとして存在していてもプログラム側ではとりあえず無視して 将来対応するようにしても良い。 何にしても型に頼らずデータで表現するというのが重要。
312 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 19:14:59.41 ] アクションですらかなり項目があるからRPGとか管理で死ねそう
313 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 20:04:49.46 ] 最も評価の悪い国 1位 イラン 2位 パキスタン 3位 北朝鮮 4位 イスラエル 5位 ロシア 6位 韓国 ←←←←←←←←←←← 最も評価の高い国 1位 日本 2位 ドイツ 3位 カナダ 4位 イギリス 5位 中国 6位 フランス BBC世界世論調査2012 www.globescan.com/images/images/pressreleases/bbc2012_country_ratings/2012_bbc_country%20rating%20final%20080512.pdf
314 名前:268 mailto:sage [2012/05/12(土) 20:14:21.81 ] >>281-287 自分が見ていないときに回答されていて驚きました。 実際にputs関数の中を変更したら、実行できました。 これは、要するに全角記号だとコンパイラによって処理がかわるから、全角記号は避けたほうがいいということでいいでしょうか? >>287 とりあえず表示したかっただけなので、まだ区別は考えていません。
315 名前: ◆QZaw55cn4c mailto:sage [2012/05/12(土) 20:17:28.91 ] >>313 toro.2ch.net/test/read.cgi/tech/1333095907/785-786
316 名前: ◆QZaw55cn4c mailto:sage [2012/05/12(土) 20:27:16.59 ] >>314 >全角記号だとコンパイラによって処理がかわるから、全角記号は避けたほうがいいということでいいでしょうか? 今回、コンパイルできなかったときのコンパイラは、シフトJIS に対する作りこみがなかったんですね。 まあ、それが普通でしょう。 確かに日本語とか全角とかある種の半角カタカナとかはやめておいたほうがいいかもしれません。 シフトJIS - CP932 は、さまざまな問題をはらんでいるにもかかわらず Windows やその前から使用されているですが、一概に反旗をかかげるわけにもいかなくて。 ユニコード騒動での誰得感が払拭できないのは、私がふるーい人間だからかなあ?
317 名前:268 mailto:sage [2012/05/12(土) 20:39:14.27 ] >>316 理解できました。いい経験になったと思います。 ありがとうございました。また質問に来るかもしれませんが、よろしくお願いします。
318 名前:デフォルトの名無しさん [2012/05/12(土) 22:55:09.04 ] プログラミングの単位2年連続落として1留した。 腸煮え繰り返る思いだ。 説明悪すぎるんだよクソ教授。癌になってしんでほしい。
319 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 23:02:03.42 ] >>318 そんなに難しいことやってるの?
320 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 23:11:29.51 ] >>318 わかんなかったら、わかるためのあらゆる努力はしたのかい? 受け身の学習法では、今後社会に出てから困るよ
321 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 23:15:40.14 ] >>318 ここにたむろする連中の大半は独学だ。学校の授業など糞だと思っている奴らばかりだ。 単位だけほしいのなら toro.2ch.net/test/read.cgi/tech/1335517816/ にお題を投下すれば、大概はネタ thanks とばかりに適当に片付けてくれる、あー気分次第という面々も多いが。 後で困ることがあるかもしれんが。
322 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 00:03:11.08 ] >>320 社会に出たら、単位取りゲーム得意な人間程うまくのしあがるんだよ。 大学の勉強何かで無駄に頭使いたくないね。
323 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 00:07:00.56 ] 確かに正論ではある。 プログラムの知識ない奴プログラミングの腕はすごいw
324 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 00:30:14.79 ] アンドロイドアプリ難しすぎ。
325 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 00:33:04.19 ] アプリ作るのがホントに難しいのか、それとも……
326 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 00:58:07.48 ] >>322 つまらん、必要ねーだろこれっていう知識がどこで生きてくるかわからない セレンティピティーとはそういうもの まあ、人それぞれ考え方はあるけどね
327 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 00:58:29.26 ] ×セレンティピティー ○セレンディピティー
328 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 01:02:30.17 ] >>326 おっぱいぼよよーん
329 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 02:08:03.40 ] インターネット無し時代に独学した人スゴいな。
330 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 02:17:38.56 ] インターネット時代の現代では、知識も均質化してきてるので 厳しい時代だのう。。
331 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 02:21:38.06 ] >>329 書籍とか処理系のマニュアルとかで勉強してたよ
332 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 03:42:40.87 ] borland の日本語WinAPIヘルプはものすごく使いやすかった MSDNのヘルプもあれくらい軽量高速なヘルプにするべき
333 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 04:28:08.12 ] 今はヘルプどころかOSも統合環境も重いからな
334 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 08:17:02.49 ] >>324 そうか?
335 名前:デフォルトの名無しさん [2012/05/13(日) 08:37:39.24 ] >>330 そう思い込んでるやつが増えただけ わかってない奴が使えない点は何も変わってない
336 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 08:43:45.47 ] 1行目と無関係な結論の例です。 1 そう思い込んでるやつが増えただけ 2 太陽が東から昇る点は何も変わってない
337 名前:デフォルトの名無しさん [2012/05/13(日) 08:55:28.24 ] 均質化なんかしてねえってことだよ (こんなとこで挙証する気はねえぜ) Wiki の丸暗記で天狗になってるだけで、何かやらせようとするたびまたネットサーフィンだけで自分の創造をしないやつはいらねえ そういうクズと10を要求したら12くらいやってくる逸材が全然ちがうのは今に始まったことではない # やれやれ、ここまでかみ砕いかにゃわからんとはな 2ちゃんにもググレカスと鳴くだけでそいつ自身は空っぽなやつがごまんといるだろ
338 名前: ◆QZaw55cn4c mailto:sage [2012/05/13(日) 09:02:28.93 ] >>327 >セレンディピティー 凡人もはげましてくれるいい言葉ですね。ともかくもガラクタでもクズでもいいから探求しなければ物事は始まらない。 >>322 嫁 つja.wikipedia.org/wiki/%E3%82%BB%E3%83%AC%E3%83%B3%E3%83%87%E3%82%A3%E3%83%94%E3%83%86%E3%82%A3 あと、ここ20年のデフレ下では「なにもしないこと」が最善最強の戦略であった。今後はいずれインフレになり、この戦略は使えないことを教えてあげよう。
339 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 09:26:02.77 ] >>337 >(こんなとこで挙証する気はねえぜ) すれって。 「いらねえ」やつが「いらねえ」という当たり前のことにスリカえとらんで。
340 名前:デフォルトの名無しさん [2012/05/13(日) 09:27:09.34 ] >>339 何のためにだよ
341 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 11:10:17.07 ] >>335 そうかねぇ、 本で勉強しないで、ネット検索してわかったつもりになってるやつが 増えてきてる気がする
342 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 12:19:18.55 ] 凄く初歩的なことなんですが、for文の条件って計算してから分岐するんですか? それとも終わった時に計算するんでしょうか? 例えばfor ( a=0; a=5; a++ )の場合、何回分↓の処理を実行することになるんでしょうか
343 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 12:21:03.76 ] for (0;1;3){2}
344 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 12:22:28.18 ] >>342 それだと無限ループかな
345 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 12:23:20.78 ] >>342-343 計算してから分岐する。while(){}
346 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 12:27:24.51 ] continueの挙動が関わってくるからwhileじゃ表現しきれないんだよバーカ!
347 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 12:35:02.09 ] >>281-286 誰がbakaだって!
348 名前: ◆QZaw55cn4c mailto:sage [2012/05/13(日) 12:42:58.84 ] >>342 試せばいい。 codepad.org/2RkwEaI0 >>344 codepad.org/NAmGXnvF 0回 codepad.org/IQ6Aljn6 5回
349 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 13:01:25.32 ] qzaのだけはrunしないほうがいい
350 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 13:03:28.52 ] >>349 なんで? >>344 も勉強になったでしょ。
351 名前:344 mailto:sage [2012/05/13(日) 13:14:43.81 ] なんで俺がいまさらfor文の書き方を勉強せにゃいかんのか?
352 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 13:46:24.42 ] for(A;B;C)D; の場合、ABD;CBD;CBD;CB... Bの条件で終了するなら、ABD;CBD;CBD;CB 間違っても 決して、ABD;BCD;BCD;BC... ではない。 >>344 語尾に「?」つけてみればわかる。
353 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 14:02:31.26 ] a = 0; START: if(a = 5) goto END; ... a++; goto START; END:
354 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 14:11:15.07 ] >>353 × a = 5 ○ a == 5
355 名前:デフォルトの名無しさん [2012/05/13(日) 14:16:37.53 ] 相変わらず簡単な問題のときにしか出てこないクズにワロタwww
356 名前:344 mailto:sage [2012/05/13(日) 14:17:13.39 ] >>352 俺が断定しなかったのは、コンパイラの設定によってはビルド自体ができないからだよ まあ、こんな質問にそこまで考慮する必要はないんだろうけどね
357 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 14:19:07.76 ] >>354 >>342
358 名前: ◆QZaw55cn4c mailto:sage [2012/05/13(日) 14:26:54.04 ] >>355 hibari.2ch.net/test/read.cgi/tech/1289715349/ hibari.2ch.net/test/read.cgi/tech/1295273862/ hibari.2ch.net/test/read.cgi/tech/1309527259/ toro.2ch.net/test/read.cgi/tech/1313183984/
359 名前:デフォルトの名無しさん [2012/05/13(日) 14:33:20.32 ] そんなうんこスレばかり貼るな。
360 名前:デフォルトの名無しさん [2012/05/13(日) 14:38:34.38 ] C言語プログライング能力試験1級のコツ
361 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 16:17:30.15 ] ttp://codepad.org/azeRjUXt
362 名前:デフォルトの名無しさん [2012/05/13(日) 17:21:53.86 ] >>346 それは「goto だけは使わない」人が自らを詰ませている滑稽な図式だ for の continue に代わる動作くらいどうにでも作れるさ
363 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 17:29:30.75 ] オナニストに子作りの方法語られてもニントモカントモ
364 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 17:40:06.66 ] main.cpp(40) : warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 1>c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(237) : 'fopen' の宣言を確認してください。 #include <stdio.h>を宣言してあるのにfopenしたらこんなのが出てくるんだけど何が原因でしょうか?
365 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 17:41:06.82 ] >>364 読めよ
366 名前:デフォルトの名無しさん [2012/05/13(日) 17:48:36.26 ] 子作りの方法は全然ちがうんだが よっぽどひどい育てられ方をしたんだな そんなに重篤な精神分裂を来すとは
367 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/13(日) 17:52:12.34 ] >>364 > This function or variable may be unsafe. Consider using fopen_s instead. この関数、または変数は安全ではありません。 かわりに fopen_s を使うことを検討して下さい。 > To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 非推奨を無効にするには _CRT_SECURE_NO_WARNINGS を使って下さい。 詳細はオンラインヘルプを参照のこと。
368 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 18:24:22.48 ] >>364 そもそもスレ違いだ。
369 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 19:07:37.73 ] c言語ってスレ違いなの?
370 名前:344 mailto:sage [2012/05/13(日) 19:17:44.18 ] MS独自拡張はスレ違いじゃね?
371 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 19:23:20.02 ] /) ///) /,.=゙''"/ / i f ,.r='"-‐'つ____ こまけぇこたぁいいんだよ!! / / _,.-‐'~/⌒ ⌒\ / ,i ,二ニ⊃( ●). (●)\ / ノ il゙フ::::::⌒(__人__)⌒::::: \ ,イ「ト、 ,!,!| |r┬-| | / iトヾヽ_/ィ"\ `ー'´ /
372 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 19:24:34.61 ] その切り分けが可能な人はここに聞きに来ないよ。
373 名前:デフォルトの名無しさん [2012/05/13(日) 19:46:19.68 ] >>372 んだ
374 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 23:52:35.63 ] いや、C++がスレ違いだ。
375 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 04:44:35.22 ] #include <stdio.h> #include <stdlib.h> int main(void) { int t; system("cls"); for(t=0;t<12;t++){printf("\n");} for(t=0;t<19;t++){printf(" ");} printf("中心"); for(t=0;t<12;t++){printf("\n");} for(t=0;t<40;t++){printf("_");} return 0; } DOS画面の真ん中に「中心」って文字を表示するのに 変数tを複数のforで使いまわして作ってみたんだけど コンパイルでエラーは出ないものの使い方としてはどうとかあるかな? 検索でダメってのは見かけないけど大丈夫とも見なくて不安がある
376 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 04:55:37.65 ] 問題ないお
377 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 06:39:56.53 ] curses
378 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 06:41:54.72 ] PDCurses (Public Domain Curses)は UNIX以外の DOS、Windows、OS/2など向けに作られた curses とほぼ同じ機能を提供するライブラリである curses - Wikipedia
379 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 06:44:15.35 ] >for(t=0;t<19;t++){printf(" ");} >printf("中心"); for(t=0;t<19;t++){printf(" ");} printf("%*s", 42, "中心");
380 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 06:50:41.70 ] IBM PC やその互換機では、BIOSとMS-DOSシステムコールが画面に文字を出力する手段を提供しており、 ANSI.SYSドライバでANSIエスケープシーケンスを処理できる ja.wikipedia.org/wiki/ テキストユーザインタフェース
381 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 06:58:57.89 ] Windowsならここらへんを使うんだけど 面倒だから位置とか色とかは考えないほうがいいよ msdn.microsoft.com/ja-jp/library/cc429123
382 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 07:06:40.45 ] 単にループ変数の使いまわしについてしか聞いてないのに、 そこまでして知ったかぶりたいものかねえ
383 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 07:38:19.66 ] >>375 構文としては意図した意味になっているし、 賢いコンパイラを使うのであれば、性能上の問題はないと期待できる だからあとは、書き方としてお行儀がいいのかという問題だが、 「スコープは最大限狭める」という原則に従うなら、こう書くこともできる for(int t=0;t<12;t++){printf("\n");} for(int t=0;t<19;t++){printf(" ");} printf("中心"); for(int t=0;t<12;t++){printf("\n");} for(int t=0;t<40;t++){printf("_");} しかし、これはC89ではできない書き方であるし、 ほとんど差がないのも間違いないので、提示のように書いたとしても問題ないと思う
384 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 08:14:46.00 ] 衒学的に考えるなら、桁方向のループ制御変数と行方向のループ制御変数を分けるべきと言う意見もありそうだ。
385 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 09:42:15.15 ] エスケープシーケンスでカーソル移動は駄目なの?
386 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 09:52:06.33 ] >>380 「ANSI.SYSドライバでANSIエスケープシーケンス」
387 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 09:56:58.23 ] CにもRubyにもcursesライブラリがあるよ
388 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 11:38:47.53 ] マジックナンバーをどうにかしる!
389 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 14:28:45.45 ] for文の条件式の部分で、例えば int i,a; scanf("%d",&a) for(i=1;i<=a;i++){ } とかってできないんですか?エラーがでてしまいます。 これができれば指定した数分の掛け算表ができて便利なんですが... やっぱり一々ソースを書き直したりしないといけませんか?
390 名前:デフォルトの名無しさん [2012/05/14(月) 14:32:07.77 ] エラーなのはお前の頭だろう。
391 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/05/14(月) 14:33:47.41 ] >>389 ;がない。
392 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 14:42:47.50 ] あ、セミコロン(´;ω;`) 教えてくれてありがとうございます!
393 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 15:11:35.82 ] いえいえ
394 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 15:43:56.26 ] >>390 みたいに煽るだけのカスはいらね
395 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 15:53:16.68 ] お前みたいなただのカスのがもっといらねぇだろwww
396 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 15:55:30.48 ] 質問です。 画像を移動したいんですが、真横や真縦はx,yをそれぞれの値になるまで足して描画を繰り返すのは分かるんですが、 少しずれたところに移動させるのはどういう式になるんでしょうか。 例えば、x0,y0からx200,y0は出来ますが、x0,y0からx200,y45が分かりません。
397 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 16:07:24.69 ] わからないぷー
398 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 16:10:58.46 ] 0,0と200,45を結ぶ直線の傾きは? yを1増やすにつき、xをいくつ増やせば良い? 少数が必用なので、少し頭を使うかもしれんが。 プログラムじゃなくて、算数の問題。
399 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 16:12:36.28 ] >>396 簡単にするには座標を浮動小数点で持って1回に動かしたい量をそれぞれに 足しこんでいけばいい。
400 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 17:01:08.69 ] ああ、やっぱり小数点の公約数なんですね…特別な関数があるかと思ってました。 ありがとうございます。
401 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 17:13:25.28 ] おまえらってC言語に関しては天才なの?
402 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 17:16:55.21 ] 今時は小数点に公約数があるのか...
403 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 17:32:07.36 ] >>401 天才じゃないと答えられないような質問あったか?
404 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 17:42:43.52 ] >>400 いえいえ
405 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 18:14:43.31 ] 最近は A:xxxについて教えて。 B:yyyだよ A:ありがとうございます C:いえいえ という返信をする変人がいるらしい。
406 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 18:19:49.22 ] >>396 (0, 0)から(200, 45)に滑らかに移動したいと言うこと? (200, 0)を経由していいなら横と縦に分割できるじゃん。
407 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 19:13:05.98 ] x+20、y+4,5とかね
408 名前:デフォルトの名無しさん [2012/05/14(月) 19:48:15.34 ] 一様乱数教えてくださいな
409 名前:デフォルトの名無しさん [2012/05/14(月) 20:00:06.95 ] randam()
410 名前:デフォルトの名無しさん [2012/05/14(月) 20:14:45.18 ] 混合合同法ってなんですか
411 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 20:15:12.90 ] >>408 Mersenne Twister: A random number generator www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/mt.html
412 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 20:49:48.61 ] #include <stdio.h> int sum(int,int); int main (void) { int value,Left,Right; scanf("%d,%d",Left,Right); value = sum(Left,Right); printf("%d\n",value); return 0; } int sum(int min,int max) { int num; num = (min + max) * (max - min + 1) / 2; return num; } scanf("%d,%d",Left,Right); この部分にエラーが出ました... 何が悪いのでしょうか?
413 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 20:57:05.22 ] &
414 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 20:58:38.72 ] あ、&(´;ω;`) またまた凡ミスしていまいました どうもです...
415 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 21:01:49.12 ] いえいえ
416 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 22:38:53.08 ] いえいえ禁止!
417 名前:デフォルトの名無しさん [2012/05/14(月) 22:58:41.47 ] C言語で円周率を10桁求めるプログラム作りたいです。 ソースコード教えてください。 このプログラム作るの簡単ですか?初心者です。
418 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 23:00:10.55 ] >>417 ググって貼り付けるだけ
419 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 23:00:47.54 ] >>417 マクローリン展開 円周率でぐぐる
420 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 23:04:27.38 ] printf(”3.141592653”);
421 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 23:07:50.29 ] >>417 ぐぐってこぴぺ。マチンの公式、うっふぇ。 ttp://ideone.com/cebSY
422 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 23:12:42.67 ] >>420 それだめらしいです。 もう一つ 二次方程式の解を√つきで実数だけ全て求めるプログラムも教えてください。 実行例 a.out x^2 ? ←出力 1 ←入力 x ? ←出力 1 ←入力 定数 ? ←出力 -1 ←入力 x^2+x-1の解は ←出力 y=(-1+√5)/2 y=(1+√5)/2 みたいな感じのプログラムです。 期限は円周率とこの二次方程式のプログラムセットで3週間です。 後4日です...徹夜で考えてるけど特に二次方程式のプログラムは 思いつきません...
423 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 23:16:11.09 ] >>422 アホかお前 出直してこい 何もわかっちゃいねーーーーーーー プログラムの前に中学生の数学からやり直せ ミジンコ
424 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 23:18:07.10 ] 徹夜ワロタwww
425 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 23:20:53.07 ] πの計算は、>>421 が終わると、今度は多倍長計算がやってみたくなる ライブラリ一切使わずに加減乗除だけで自力で組んでみるとなかなか面白いよ
426 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 23:23:49.34 ] 円周率は、可能なら10桁ってことで、3.14以上、つまり4桁以上を出せれば とりあえずOKらしいです。(という噂) 二次方程式は、解が無しなら、この解無しみたいな出力もするプログラムです。 後4日。お願いします'--'(手)
427 名前:422 mailto:sage [2012/05/14(月) 23:24:51.29 ] y=(-1+√5)/2 y=(-1-√5)/2 でしたね。すいません
428 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 23:37:42.49 ] >>422 くっそ適当wwwwwwwww 間違いがあったら自分で直してねwwwwwwwww ttp://ideone.com/z1q8Z
429 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 23:39:27.29 ] >>428 お前も勉強しなおし
430 名前:428 mailto:sage [2012/05/14(月) 23:41:01.12 ] ソースみりゃわかるとおもうが、例えば√4とか平気で表示すっからなwww あと、小数(分数)になっても、小数点以下完全無視だからwww それがいやなら、これをベースに徹夜するのだwww
431 名前:428 mailto:sage [2012/05/14(月) 23:52:28.29 ] それから重解表示もふつーに√0なwww まあ、がんばれwww もしかしたら、プロさんがすばらしい式整形盛りこんだやつ作ってくれるかもね
432 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 00:13:10.26 ] >>431 根本的に間違ってるよw
433 名前:428 mailto:sage [2012/05/15(火) 00:18:27.64 ] >>432 wwwwwwwwwww くっそソースをくそ修正wwwwwwww ttp://ideone.com/jBBTX
434 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 00:42:26.71 ] >>433 どこへ向かってるんだwww
435 名前:428 mailto:sage [2012/05/15(火) 00:44:59.36 ] >>434 >>428 で、>>427 の答えを出すにはどう式を立てればいいかちょっと悩んだぞwwwwww
436 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 01:20:13.92 ] #include <stdio.h> void check(int y[]) { printf("check : %d\n", sizeof(y) / sizeof(y[0])); } int main() { int x[5]; printf("main : %d\n", sizeof(x) / sizeof(x[0])); check(x); return 0; } 両方とも5が出力されると思っていたのですが mainは5でcheckが1になります。 check関数のyはmainのxそのものを別名でアクセス出来るものかと思っていたのですが checkが1になる理由は何なのでしょうか。よろしくお願いします。
437 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 01:21:16.66 ] >>436 ポインタだから
438 名前:436 mailto:sage [2012/05/15(火) 01:29:13.51 ] >>437 なるほど。そうなるとmainの中のxは配列を指しているわけではないという事でしょうか sizeof(x)ってやって5になるってことはそうなんですよね・・・ 今まで配列の名前自体は配列を指してるってイメージだったんでちょっと頭こんがらがってきました 解答ありがとうございます
439 名前:436 mailto:sage [2012/05/15(火) 01:31:09.17 ] ポインタだと思ってるんだったら1になるのが当たり前って思うべきなんですよね なんか言ってる事めちゃくちゃでごめんなさい。
440 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 01:47:24.31 ] >>438 main の中では配列だけど 関数の引数で渡された時点でポインタになる
441 名前:436 mailto:sage [2012/05/15(火) 01:52:10.42 ] >>440 すいません。ありがとうございました。 勉強し直してきます。
442 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 20:50:20.17 ] >>438 >>441 いえいえ、お礼は結構ですよ
443 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 21:20:18.65 ] VisualStudio2010 ver 10.0.40219.1 sp1relを使用しています。 少しポインタを復讐しようと思いまして、入力した文字から最大値と最小値を出力するプログラムを書きました。 ソース(きたなくてすいません) #include<stdio.h> void maxmin(int *array,int *max,int *min); int main(void){ int array[10]; int max,min,i=0; do{ scanf("%d",&array[i]);i++; }while(array[i-1]!=-1 && i<10); maxmin(array,&max,&min); printf("最大値:%d\n最小値:%d\n",max,min); } void maxmin(int *array,int *max,int *min){ *max=0;*min=100; for(int i=0;*(array+i)!=-1 && i<10;i++){ *max = (*(array+i) > *max) ? *(array+i) : *max; *min = (*(array+i) < *min) ? *(array+i) : *min; } return; } これをVisualStudioで実行すると構文エラーが起きてしまいます。ただ、bcc?ではエラーは起きませんでした。 maxmin関数内のiの宣言をforの中ではなく、一番上で宣言するとVisualStudioでもエラーは起きませんでした。 少し良くわからないので、教えてくれる方いたらお願いします。
444 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 21:34:09.11 ] >>443 ANSI-Cでは変数の宣言は複文の先頭にしかかけません。 これは予想ですけどVC++ではCとしてコンパイル、BCCではC++としてコンパイル しているのでは? もう一つ、mainが戻り値を設定していないので、警告が出ます。 コードの中身はチェックしていませんので、悪しからず。
445 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 21:40:08.01 ] >>443 VS側はコンパイラのオプションでエラーを出さない様に出来る。
446 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 21:40:29.59 ] >>438 配列名は式中では配列の先頭要素へのポインタとなる。 ただしsizeof, &のオペランドになったときは例外。
447 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 21:59:34.84 ] >>444 すべて仰るとおりです。すごいですね!! VisualStudioでcppで作成し、mainにreturn 0;を追加したところコンパイルできました。ありがとうございました。 >>445 ありがとうございます。 オプションがどこにあるかよくわからなかったので、cppとして作成しました(^_^;)
448 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 23:01:41.01 ] いえいえ
449 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 23:32:19.49 ] いいぇいいぇ
450 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 23:35:06.28 ] イェイイェイ
451 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 23:36:05.52 ] 君と ウェイ! ウェイ! ウェイ! ウェイ!
452 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 23:57:44.68 ] いっつだってワークワーク
453 名前:デフォルトの名無しさん [2012/05/16(水) 04:02:50.68 ] 通常正であるコストを、無限のコストとして-1を設定したときに コスト同士の比較で、コストが最小となるものを求めるときに //cost1,cost2,minはint min=cost1; if ((unsigned)min > cost2) min=cost2;・・・(1) 上のif文と(完全にではないですが)同等の条件として if(min == -1 || (min > cost2 && cost2 != -1) ) min = cost2;・・・(2) (1)のような(unsigned)-1 = INT_MAXを使った書き方は推奨してよいものなのでしょうか? 標準Cでは、符号あり→符号なしの変換はbit列を維持することが保証されているようですが、 具体的には(unsigned)-1のような使い方は、一般的に使われているのかが知りたいです
454 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 04:08:33.93 ] Cの仕様としては保証されないが使われてるね。
455 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 04:09:27.02 ] そもそも (unsigned)-1 = INT_MAX が成り立つ保証がない。
456 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 04:40:31.68 ] >>454 裏技みたいなものなのですかねえ 手持ちのC参考書には signed X → unsigned Yにおいて X=Y、x < 0 のとき y=x + (1 + Y_MAX) と書かれており、 調べてみたら JIS X3010 www.jisc.go.jp/app/pager?id=90394 の 6.3.1.3項にも同様のことが書かれているのですが JIS規格と、Cの仕様って必ずしも一致しないのですかね
457 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 11:06:09.34 ] entryの宿命はよ。
458 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 11:15:43.81 ] >>456 それは見えないが処理系依存と書いてるんじゃないのか? そもそも符号付整数を1の補数であらわすのか2の補数であらわすのか あるいは別の形式かも処理系依存だろ。
459 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 13:15:05.20 ] だろ。!
460 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 13:23:31.11 ] >>458 しつこい
461 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 14:03:02.10 ] 理解できないからって恥ずかしいやつだな。
462 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 14:16:53.92 ] 処で、どっかにLinuxのtmpfile()のソース落ちてないかな。
463 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 14:18:45.67 ] このスレと何の関係が?
464 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 14:22:53.45 ] Cの標準関数やから。
465 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 15:27:35.21 ] handle closeとファイル消去の紐付け方法を 判んない思いつけないんでしょ462は
466 名前:462 mailto:sage [2012/05/16(水) 16:34:47.06 ] いや、単にファイル名をどう生成しているか知りたいだけ。 creat()してすぐunlink()していることは想定内。
467 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 20:13:55.04 ] >>462 オプソなんだからそりゃどっかにあるだろ glibcでググればいいと思う
468 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 22:39:20.09 ] Cの仕事ってあんの?
469 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 23:23:43.25 ] うん
470 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 00:36:39.95 ] C言語のプログラム上からpythonのプログラムを実行したいです
471 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 00:47:19.40 ] はい、すれば良いかと思います。
472 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 08:29:37.48 ] >>467 あ、盲点だった。 ってことで、早速glibcのgitwebを見てみた。 stdio-common/tmpfile.cを見たら、中で__gen_tempname()を呼んでいた。 で、tempname.cを見ると……中身が__set_errno()だけだった(TT
473 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 10:57:56.52 ] >>471 教えてください
474 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 11:00:25.25 ] LinuxでCの勉強をする場合定番のコンパイルは何ですか? VC++2010無料版のcl.exeしか知りません
475 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 11:06:32.50 ] つgcc
476 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 11:10:58.93 ] わかりました gccで勉強します
477 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 11:30:36.12 ] >>473 system("python yourProgram.py");"
478 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 17:35:04.16 ] gccしか使わなくね?
479 名前:デフォルトの名無しさん [2012/05/17(木) 18:59:16.56 ] 一様に乱数が発生していることを検証するプログラムを コードに追加すること. 確認方法は,生成した乱数の発生度数を階級毎にカウントし, その各度数を表示する. また,発生した乱数が一様になっていない場合は, 改めて一様乱数を生成する部分の修正を行うこと.
480 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 19:50:13.35 ] いえいえ
481 名前:デフォルトの名無しさん [2012/05/17(木) 20:47:00.97 ] ある数列が一様乱数であることの証明ってすげー難しそう どのような予測も未来永劫すべて退けるってどうやるんだ
482 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 20:59:13.93 ] それが出来ればチューリング賞もフィールズ賞も夢じゃない! ガンバれ! おれはやらんけど!
483 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 21:19:24.54 ] ふう はら減った
484 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 21:50:07.96 ] ideone.com/HE5Qg 剰余を求める関数で、 このシフト演算の意味がわからないんですが、 何のためにやるのでしょうか
485 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 21:53:34.13 ] >>484 2進法で筆算してみるよろし
486 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 22:39:59.41 ] うん
487 名前:デフォルトの名無しさん [2012/05/17(木) 23:30:52.93 ] #include<stdio.h> int main(){ int num1, num2, num3, num4; printf("整数1 : "); scanf("%d", &num1); printf("整数2 : "); scanf("%d", &num2); num3 = num1/num2; num4 = num1-(num3*num2); printf("%d を %d で割ると %d 余り %d\n", num1, num2, num3, num4); printf("%d を %d で割った小数値は %f\n", num1, num2, (float)num3); return(0); } で、num1に17、num2に5と入力して、%fの所に3.400000と表示したいんだけど3.000000と表示されるのは何故?
488 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 23:34:15.70 ] なんでintで割り算してんだアホ
489 名前: ◆QZaw55cn4c mailto:sage [2012/05/17(木) 23:38:47.15 ] >>487 ideone.com/bcE0W
490 名前: ◆QZaw55cn4c mailto:sage [2012/05/17(木) 23:39:46.81 ] >>488 ×なんでintで割り算してんだ ○なんでint を intで割り算してんだ
491 名前:デフォルトの名無しさん [2012/05/17(木) 23:41:34.86 ] >>489 キャスト(だっけ?)について教えてくれますか?
492 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 23:54:38.10 ] intを変えろ あとは分かるな
493 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 23:54:49.30 ] 以下は同一ですか? sizeof(array) / sizeof(*array) sizeof(array) / sizeof(array[0])
494 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 23:58:13.02 ] >>493 Just try and you can find out.
495 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 00:05:37.70 ] ためしてみな、そうすればわかるさ
496 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 01:12:29.68 ] >>487 floatは必要に迫られない限り使うのは避けよう。 %fより%gを使おう。
497 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 01:27:00.23 ] >>481 このケースだと階級毎にカウントとか書いてるんだから 単純にカイ二乗検定すればいいんでしょ 数列のテスト方法は大量にあって、TAOCPはそれだけで一章使ってた気がする
498 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 07:50:21.45 ] >>496 やはり風呂よりdouble?
499 名前: ◆QZaw55cn4c mailto:sage [2012/05/18(金) 07:58:11.20 ] >>496 >%fより%gを使おう。 これはお勧めできない。%g は値によって出力結果が大幅にかわり事前に予測できないのが非常に問題。 安易につかって破綻し泣ごにょごにょごにょ
500 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 09:52:36.05 ] あほすぎwww
501 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 11:15:14.49 ] >>499 printf("%f, %f\n", 1e10, 1e-10); printf("%g, %g\n", 1e10, 1e-10); どっちが自然?
502 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 11:18:03.75 ] C言語の入門者向け練習問題サイトってありませんか?
503 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 11:19:05.43 ] 問題1)1から10までの数値をランダムに生成せよ 問題2)大吉 中吉 末吉 吉 凶を表示するおみくじを表示せよ こんなやつ
504 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 11:22:22.34 ] ステマかよ 宣伝したいサイトが出てくるまで粘るんだろどうせ アホはさっさと立ち去れよ
505 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 11:28:32.60 ] 出た出たw過剰反応w
506 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 11:34:05.83 ] どっちにしろここで聞くよりググった方が早いな
507 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 11:34:50.33 ] とりあえず Project Euler はやっておくかな
508 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 12:15:10.47 ] ダメなサイトなら紹介してる。 ttp://www.nslabs.jp/c_pointer.rhtml
509 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 12:15:55.70 ] プロジェクトオイラーは簡単な奴なら入門レベルでも解けるけど、 難しいのだと数学的知識がないとどうにもならない
510 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 12:25:33.14 ] すみません構造体のことで教えてください、あるサイトで main.h struct Images{ int hero; 以下省略 }; main.cpp int LoadFiles(){ //ファイル読み込み処理をここに書く g_images.hero = 以下省略 } とあるんですが、「images.hero」でそのまま使えないんでしょうか? なぜg_を付けているのか、何の意味があるのか分からないです
511 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 12:44:34.07 ] >>510 それだけ提示されても何のことやら。めんどくさいから全部貼れ。 ついでに質問もよく判らん。 まぁ、g_で始まっているからにはグローバル変数とでも言いたいのではないかと思うが。
512 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 12:52:00.02 ] 変数名とタグ名の区別がついてない
513 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 12:57:17.48 ] タグ名はImagesだぞ。目は大丈夫か?
514 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 13:16:51.40 ] 標準ライブラリの質問はココで質問してもいいですか?
515 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 13:54:09.79 ] >>510 構造体はただの鋳型 使うにはそこから変数などの形で実体を作る必要がある たぶんソースのどっかでg_を付けた名前で変数宣言してるだろ? >>514 おk
516 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 15:34:27.50 ] お前らのおかげですっげーお手軽なお遊びゲームできたwwww 数字の1を入力するだけで戦闘できて、しかも自分のHPは減らない、うは面白www これで毎日暇潰せるwww お前ら本当ありがとうwww しんでくる
517 名前:デフォルトの名無しさん [2012/05/18(金) 16:04:56.62 ] argvの内容を4番目以降消して、 (argvの要素数は4以上あるものとする) 後でその領域を使えるようにしたいです。 void main(int argc, char* argv[]) { while (argc>3) argv[--argc]=NULL; } これでは文字列の内容がちゃんと消去されてないし、 指していたメモリが開放されていないと思うのですが、 正しい方法を教えてください。
518 名前:デフォルトの名無しさん [2012/05/18(金) 16:19:08.24 ] 二次元配列を渡す時の仮引数の書き方を教えてください。 二次元配列を渡す時、受ける側はポインタの配列で受けるのでしょうか。 また、二次元配列を渡す時の実引数は、何を渡したらいいのでしょうか。
519 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 16:25:00.64 ] typedef struct{int hairtsu[SIZE][SIZE2];}hairetsu2jigen; void f(hairetsu2jigen a);
520 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 16:31:21.48 ] >>517 汎用性のある手段はない。一般的には、メモリ解放を意識する必要もない。 >>518 配列を渡したいのか配列へのポインタを渡したいのか要素へのポインタを渡したいのかはっきりしろ。 つーか、その辺りが判らないなら具体的にやりたいことを書け。
521 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 16:33:05.66 ] >>517 検索して調べてみた感じだと、 argvがどういうふうに確保されるかは環境依存だから、 freeしようとするのはやめとけって感じでした。 freeしないとしたら空文字列を代入すればいいのかな?
522 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 16:34:56.28 ] >>520 ありがとう。 逆にいうとargvのために確保された領域が 勝手に他から読まれる心配はしなくていいってことですか? セキュリティの観点からも気になるんだけど。
523 名前:デフォルトの名無しさん [2012/05/18(金) 16:37:25.05 ] >>519 それだったら始めからグローバルな二次元配列を書きます >>520 上位の関数で二次元配列を宣言して、下位の関数にアドレスを渡して、下位の関数で二次元配列の処理をしたいのです。
524 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 16:37:46.05 ] >>521 の質問は、 while (argc>3) argv[--argc]=NULL; と while (argc>3) argv[--argc]=""; だったらどっちがまとも? っていう内容です。
525 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 16:48:19.96 ] 519に対してグローバルがどうとか言い出すあたり全然わかってない割合の方が高そうだな
526 名前:デフォルトの名無しさん [2012/05/18(金) 17:00:08.05 ] >>519 さんのやりたいことがわからないのですが。 構造体を返そうとしてるつもりなのでしょうか。 そうだとしたら何故return値がvoidなのでしょう。 Cは値渡ししかできないですよね。 もしそうでないとしても、それなら何故仮引数が構造体を指すポインタじゃないのでしょうか。 構造体はreturn出来るから構造体のメンバーに二次元配列を宣言したのでしょうが、何をしたいのかわかりません。 教えてください>>525 さん
527 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 17:06:44.15 ] 自分の中の理屈で逆切れかます欠陥人格
528 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 17:07:58.93 ] >>526 二次元配列とか、そこらの本見れば書いてあるだろ。 人のミスにつけこむような、つまんない議論やめれ。
529 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 17:10:08.70 ] void f(int a[2][2]); void f(int a[][2]); void f(int (*a)[2]);
530 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 17:11:44.88 ] 「仮引数の書き方」の話が「値を返す書き方」に変わっているような気がする。 自分の無知を棚に上げて挑発的な態度を取っているように見えるのは気のせいか?
531 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 17:13:19.55 ] >>526 >525じゃないけど答えてみる。 >518では「二次元配列を渡す」と書いてあって二次元配列を参照渡しした意図はどこにも書いてない。 従って、値渡ししている>519のやりたいことは自明。 配列を戻すことを考慮する必要がないのだから、戻り値がvoidなのも至極当然。
532 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 17:15:34.50 ] フルボッコw
533 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 17:16:27.80 ] >>524 どっちもまともじゃない。 引き数リストは使用しないのなら放っておけばいい。 「勝手に他から読まれる」のは何を想定しているのか判らないが、 それを心配するなら>524のどちらであろうとも全く無意味だ。
534 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 17:17:21.17 ] >>531 s/参照渡しした意図は/参照渡ししたいとは/
535 名前:デフォルトの名無しさん [2012/05/18(金) 17:25:03.78 ] >>520 さんに指摘されたように、もっとはっきりとやりたいことを書くべきでした。すみません。 本買って勉強してきます。 プログラミングの本と常識の本を。
536 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 17:33:53.77 ] >>535 一転して素直で、今度は人格が心配になる。 まあガンバレ。
537 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 17:41:36.59 ] ふう
538 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 17:53:23.75 ] >>533 argv[1]=argv[3] argv[2]=argv[4] の後に、argv[1]とargv[2]を使った操作 をやるので、argv[3]とかargv[4] をどっかでいじられると困るわけです。 strcpy使えばいいのか?
539 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 17:59:43.92 ] 判らん人だなぁ。何の保証もないコードを幾ら捻っても詮無いだろうに。 関数に渡すために無駄な心配をしているのなら、 オリジナルのargvを渡さずローカルにコピーしたlocalArgVでも渡せばいいだろうよ。
540 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 18:01:49.16 ] いじろうとしてるのはお前だけのような気がするが
541 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 18:09:53.74 ] >>538 勘違いかもしれんが、それだとコピーじゃなくてポインタのすげ替えにしかなってないんじゃね? たしかに危なっかしいな。
542 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 18:15:49.03 ] >>538 誰から守ろうとしてるの? デバッガでアタッチされて改変とかの心配?
543 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 18:20:50.50 ] >>542 mainを起動した本人以外が文字列の内容を読む心配。 argv[3]='\0' したところで、argv[3][1]以降に入ってた文字は残骸としてメモリに残ってるんでしょ? C++だと勝手にデストラクタが発動するからライブラリの責任だけど、 Cだとゼロ埋めとか自分でするの?
544 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 18:23:27.19 ] 543だけど、C初心者なんで、まずは慣習的な方法を教えて欲しいだけなんだ。 うっとうしかったらすまん。
545 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 18:27:59.13 ] んなつまらん事気にするなら main/argvじゃなくてmainCRTstartupをまづ如何にかしようとするべきだな
546 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 18:40:57.46 ] >>545 やっぱC系はわけがわからんな。危ない橋をわたらされてる感が・・・。 嫌味じゃなくて素朴な疑問なんだけど、不安で夜も眠れないとかならないの?
547 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 18:49:20.37 ] argvに書きこみなんてしないのが慣習 自分でゼロ埋めたって、埋める前に読まれたらおしまい プロセスの保護とかOSの話 言語関係ないだろ
548 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 18:55:48.65 ] >>547 ふむふむ、argvに関しては納得。 いろいろ見てたら memset(str,'\0',sizeof(str)) ってのが出てきた。 たしかにゼロ埋めじたいはやるみたいね。
549 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 19:00:06.56 ] strcpyってセキュリティホールの源泉みたいね。 機会があったら使わせてもらうわ(笑)。
550 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 19:09:36.21 ] (馬鹿は)何使っても一緒だから心配すんな
551 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 19:10:40.57 ] argvに入ってるってことはプロセス起動した側も同じものを持っているということ。 受け取り側だけどうこうしても片手落ち。 送り側にも手を入れられるのならコマンドライン引数では渡さない。 受け取り側のプログラム差し替えられたらダダモレでしょ?
552 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 19:20:07.91 ] おまえらってC言語どのくらい出来るの?
553 名前:デフォルトの名無しさん [2012/05/18(金) 19:29:29.24 ] 質問お願いします。 入力された金額に対して、最も少ない紙幣と硬貨の数になるように計算せよ。 という課題に取り組んでいるのですが、なかなかうまくいきません。 現状では以下のようにしているのですが何が間違っているのか分かりません。 アドバイスをいただけたら幸いです。 codepad.org/JVbJI7BZ
554 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 19:40:01.33 ] javascriptでいう var d = new Date(); d.getFullYear(); みたいなオブジェクトとメソッドをピリオドで結んだ形で書くのはどうやって書けますか?
555 名前: ◆QZaw55cn4c mailto:sage [2012/05/18(金) 19:41:08.25 ] >>501 %g がいかなるものか正確無比に把握できているのであれば %g を使用すること、%gの方がわかりやすい結果を出力するという事実に依存はない。 しかし、%g が、あるときは固定小数点表示、あるときは浮動小数点表示に切り替わる、その切り替わりタイミングは正確に記述されているのだろうか? あるいは正確に記述されているとしてパンピーに把握できる内容だろうか? 凡人の私には codepad.org/9vnPdoW3 の結果をあらかじめ予想することは不可能。ましてや自分のコード変更がめぐりめぐってどこぞのコードに影響することなど、把握不可能。 したがって、あるときから素性が比較的わかる %f にしておくのが無難という考え方に組することにしている。 この問題、wsprintf() 等で現実に直面する場合もあると思う。 どこかのだれかがなんの理由かしらないが、すべての実数値に 1e7 をプラスすることにしたために、めぐりめぐって泣ごにょごにょごにょ
556 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 19:41:48.00 ] >>553 プログラミング以前に、中学・高校あたりの数学からやり直したらどうかな。 あなたは、数学的に物事を考える能力が無いよ。
557 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 19:43:06.96 ] >>554 「構造体 ドット演算子」でggる
558 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 19:44:38.77 ] >>554 structのフィールドに関数ポインタぶっこめば可能は可能だけど 結局a.foo(&a);とself/this相当を引数で渡さないといけないアホなことになるw
559 名前: ◆QZaw55cn4c mailto:sage [2012/05/18(金) 19:45:35.32 ] >>517 posix/execv*() 群を使用するとき、「argv を malloc() していいの?malloc() した argv はどうなるの?free() しなくていいの?」とこちらできいたことがある。 答えは、「ほっとけ」。 なぜだろう?
560 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 19:50:02.01 ] >>559 えっ 質問者本人だけど、まだ見てるから回答ヨロ。
561 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 19:59:36.84 ] exec()系は自分自身は存在しなくなるのだからfree()できるわけないじゃん。 malloc()したポインタをexec()する先に引き継げるなら別だけど、普通そんなことしない。 従って、exec()した先のプロセスがお亡くなりになるときにOS側に引き取って貰えばいいよ。
562 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 20:03:20.63 ] >>561 一理あるけど、現代的なプログラミング言語しか触ったことのない俺にとっては、 Cの常識ってお行儀悪いなーって思う。 ただ、それだけ。べつに歯向かおうとは思ってない(笑
563 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 20:07:19.56 ] >>555 そうか? 実に判り易いと思うが。 6桁で丸めた結果が整数なら小数点を省略する。それだけだ。 まさかとは思うが、製品版のアプリにまで適応する話と思ってないだろうな。 製品版なら、値域を厳密に判断してから出力するからそれこそ適材適所だ。 学習目的で実験的に使うと言う前提だからこそ、必ず小数点以下6桁も0が並ぶ方が不自然だろ。 そうそう、極小値で割った結果をそのままsprintf()で%fを使って出力するプログラムがあったよ。 結果は、スタックを食い潰して落ちる最悪なものだったがね。
564 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 20:09:22.40 ] >>562 それはあんたが低レベルの振る舞いに慣れていないからだろ。 システムコールを直接扱おうとしたらその手の問題にはしばしば直面するぞ。
565 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 20:14:02.96 ] >>564 それは自覚している。 ハイレベルのことだけやってて困らない。 だから唯一困るのがargvとかIOまわりなんだよね。 そこでどうしてもCと相互作用しないといかんくて。 これから勉強しようと思うんだ。 ヘネシー・パターソンとか読めばいい?
566 名前: ◆QZaw55cn4c mailto:sage [2012/05/18(金) 20:19:06.93 ] >>563 製品でなくても >値域を厳密に判断してから出力するからそれこそ適材適所だ に深く同意します。
567 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 20:39:05.78 ] >>556 確かに、私は数学が苦手で数学的に考える能力は乏しいです。 おっしゃる通り、プログラミング以前の問題だと思います。 しかし、学校の授業の関係でやらなければならないので困っております。 また、これからもこの課題の考え方が必要になってくると思うので この掲示板に書き込みさせてもらいました。
568 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 20:42:19.30 ] まずはこの板の宿題スレを探しだすんだ
569 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 20:43:54.33 ] 枚数はxを割って求める
570 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 20:45:47.61 ] >>568 ワロタ 「どこですか?」ってきそうw
571 名前: ◆QZaw55cn4c mailto:sage [2012/05/18(金) 20:49:23.26 ] >>563 >極小値で割った結果をそのままsprintf()で%fを使って出力するプログラムがあったよ。 %f といえども大きいほうには無限にひろがるから‥‥
572 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 20:57:46.86 ] 無限に広がるわけないだろ。
573 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 21:01:43.21 ] 事前に値をチェックすることなしに、バッファオーバフローを避けられないのが%fの宿命。
574 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 21:05:16.20 ] いまさらだけど、なんだ、 strcpy(argv[1],argv[3]) って普通にヤバイじゃんw argv[1]=argv[3] でargv[3]を消さずに放置するのが正解だな。 このスレ的にはargvをいじるなボケ、という感じだろうが、許してくれぃ。
575 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 21:05:52.40 ] >>567 ttp://codepad.org/aIaYJhvH
576 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 21:07:19.70 ] 演算を細切れにして都度OF見ればいいだけの話し
577 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 21:08:06.12 ] >>568 宿題スレに丸投げしたら答えだけ分かりそうで、意味は理解できない かなと思ったのでこちらに書きましたが、556さんの言う通り数学的 思考力がないと意味がない気がしてきました・・・。 >>569 ありがとうございます。割り算を使ってこれから試行錯誤してみます。
578 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 21:09:40.37 ] しかし、つくづく2000円札って影薄いな。
579 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 21:28:30.62 ] >>578 誤爆かと思ったら553からかw
580 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 21:43:54.34 ] ゲームボーイアドバンスのゲームをC言語で作りたいと思うのですが 一般のC言語入門の本を読んでも全くわかりません。 何を学べばいいですか。
581 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 21:46:15.52 ] gbspec.txt
582 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 21:58:35.09 ] 僕らのゲームボーイとかいう本が出てるからそれ買え 組み込み系の良い教材になるよ
583 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 22:16:22.63 ] >>582 その本は持ってますが、入門書とその本とのギャップが大きすぎてサッパリ。 その間のギャップを埋めるにはどうしたらいいでしょうか。
584 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 22:33:17.86 ] 割り込みとかレジスタを叩くあたりは組み込み系の入門書を読まないと分からないかもしれないな リンカとかローダあたりの知識もあったほうがいいなそれはエキスパートCプログラミングあたりに書いてあった気がする グラフィック処理はインデックスカラー形式だからそれはファミコンのプログラミングとか調べたら分かるかもしれない あとはネット上でサンプルコードを漁ったり試行錯誤するといいんじゃね
585 名前:デフォルトの名無しさん [2012/05/18(金) 23:23:46.91 ] 思うんだが、ネットってプログラミングの知識ですら書籍に適わないよな。 ネットは浅く広過ぎ。
586 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 23:26:07.87 ] ソレは >>585 自身が語録不足だからだと思うよ
587 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 23:27:10.64 ] ひょっとして語彙のことか?
588 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 23:27:36.54 ] 語彙
589 名前:デフォルトの名無しさん [2012/05/18(金) 23:32:07.93 ] >>586 体系的に教えているサイトは浅い。 深い事載せてるサイトは、単にユーザーが気になって 実験してみました的な事。 定説的に深い事言ってるサイトって無い。
590 名前:デフォルトの名無しさん [2012/05/18(金) 23:35:28.31 ] 定説的ってなんだ。
591 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 23:40:54.52 ] 詳しい事ほどヒットしないからな だいたいネットに情報載せたら本売れなくなるじゃん。 専門的な事や創造的な事はネットに書くわけ無い。
592 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 23:41:09.11 ] >>587-588 は586の指摘に痛みを感じた者供
593 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 23:41:41.00 ] 質問がないなら帰ってくれないか
594 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 23:44:00.07 ] 語録ww
595 名前:デフォルトの名無しさん [2012/05/18(金) 23:49:57.57 ] アホスwww
596 名前: ◆QZaw55cn4c mailto:sage [2012/05/18(金) 23:59:39.36 ] 末尾再帰について教えてください。 宿題スレにて、toro.2ch.net/test/read.cgi/tech/1335517816/497 が末尾再帰でないとの指摘があり、いろいろと考えていました。 思うに、toro.2ch.net/test/read.cgi/tech/1335517816/505 を理由に末尾再帰でない、ということになれば、よくある階乗の再帰関数 int f(int n) { return (n == 0) ? 1 : n * f(n - 1); } ですら末尾再帰ではないことになるのでしょうか? 末尾再帰であるために int f(int n, int i, int p) { return (n == i) ? p : f(n, i + 1, p * (i + 1)); } codepad.org/OSvQa0ni と書かねばならないのでしょうか? 主観的な表現になりますが、なんだかつまらなくなってしまいました。 コメントをいただけるとうれしいです。よろしくお願いいたします。
597 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 00:30:30.91 ] >>584 組み込み系の専門書読んだけど10pくらいで挫折した。 もっと分かりやすく書いて欲しいな。
598 名前:デフォルトの名無しさん [2012/05/19(土) 00:35:48.28 ] >>596 アホスwww
599 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 00:44:08.10 ] なんで末尾再帰を区別するのか、理由すら考えたことがないんだろうね。
600 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 03:22:05.75 ] >>596 >int f(int n) { >return (n == 0) ? 1 : n * f(n - 1); >} > >ですら末尾再帰ではないことになるのでしょうか? 末尾再帰では有りません。 「ループに変換可能か」と言うより 「ジャンプ最適化可能か」です。 なお、c言語では末尾再帰最適化を行わない処理系も多いので、 処理系依存度を下げたいなら、末尾再帰に拘る必要は有りません。 >末尾再帰であるために > >int f(int n, int i, int p) { >return (n == i) ? p : f(n, i + 1, p * (i + 1)); >} >codepad.org/OSvQa0ni >と書かねばならないのでしょうか? Yes。 ただしgccなどの一部の処理系では上記部分を関数内関数で書けるので、 呼び出し側からはint f(int n)で済ませることが出来ます。
601 名前: ◆QZaw55cn4c mailto:sage [2012/05/19(土) 06:39:29.09 ] >>600 >「ループに変換可能か」と言うより「ジャンプ最適化可能か」です。 call A end A: ... ret ... call A ret ならば A: ... ret .... jmp A になるということですか。昔、せこいことに call A / A: ... call B ret / B: ..... call C ret / C: ... ret を call A / A .. jmpB / B: ... jmp C / C: ... ret にしていた、というやつですね。 もう少し考えて見ます。コメントありがとうございました。
602 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 08:28:12.59 ] a
603 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 08:55:21.96 ] >>556 >>553 は日本語もやり直した方が良いひとだろ。 質問をお願いしますとか…
604 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 08:56:32.25 ] >>580 まずは任天堂と開発者ライセンスの契約を結ぶところからかなー
605 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 09:25:04.60 ] >>601 Schemeの継続の考え方が参考になると思う。
606 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 09:39:58.58 ] >>584 ありがとうございました。 ただそういった知識を身に付けても、例えばDSだったりPSPだったり 対象が変わるとまたARM9とかMIPSとか調べないといけないですよね? C言語というのは文法とか構文みたいなのは同じでもそういう ハードウェアの知識が必要なのですか?
607 名前: ◆QZaw55cn4c mailto:sage [2012/05/19(土) 09:40:51.15 ] >>605 コメントありがとうございます。
608 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 09:47:21.70 ] ハードウェアの知識がまったく必要とされない分野で Cを使うのはあまりにも生産効率が悪すぎる。
609 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 09:52:41.35 ] >>606 C言語自体は本当に言語としての土台の部分しか規定してない その土台の上に何が乗っかるかで学ぶべきことが変わるなんてザラよ とは言え、その土台がしっかり出来てりゃ乗っかるモノが変わっても対応しやすいけどね
610 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 09:53:53.23 ] 外人が作った開発環境があったような気がするけど それの使い方調べればハードのこと考えなくても作れた気がするけど
611 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 10:33:52.66 ] #include<stdio.h> int main(void) { char h1[4][3] = {"あ","い","あ","い"}; char h2[2][3] = {"い","あ"}; int a=2,b=1; if(h1[a]==h2[b]){ printf("成功! [%s],[%s]",h1[a],h2[b]);} else{ printf("失敗! [%s],[%s]",h1[a],h2[b]);} return 0; } 配列使って文字の比較やりたいんだけど エラーはでないものの「あ」「あ」の組み合わせでも 「失敗!」になってしまって困ってます。 配列使っての文字の比較ってどうすればいいでしょうか?
612 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 10:37:45.53 ] >>611 ==で比較したらだめだよ アドレスの比較になってしまう strcmp()で比較しないと
613 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 11:06:54.44 ] >>610 結局それはC言語自体ではないと思う
614 名前:611 mailto:sage [2012/05/19(土) 11:37:32.28 ] >>612 ありがとうございます、解決できました
615 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 12:13:44.15 ] いえいえ
616 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 12:19:45.04 ] >615 気に入らん。もう一度やれ!
617 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 12:22:01.62 ] そりゃそうだろC言語単体じゃ役に立たないコンソールプログラムくらいしか作れないよ
618 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 12:36:07.42 ] >>617 ばかじゃねーの
619 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 12:43:29.52 ] >>617 お前が作るコンソールプログラムこそが役に立たないんだろw
620 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 14:35:45.26 ] 質問です #include <stdio.h> #include <stdlib.h> int main(void) { char *ip; ip = getenv("REMOTE_ADDR"); printf("%s\n", ip); return 0; } において(null)しか返ってこないのですが環境によって動作しない事もあるのですか?
621 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 15:15:10.25 ] >617 ハードの詳細な仕様書があってもライブラリが無いから使えないって言いそうなやつだな。
622 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 15:22:57.83 ] >620 >REMOTE_ADDR >REMOTE_ADDRは、アクセス元のIPアドレスを表します。 >つまりあなたのホームページやCGIに対してアクセスした人がつかんでいるIPアドレスです。 httpサーバー経由の実行でもなきゃNULLが普通じゃね?
623 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 15:41:40.09 ] >>622 単に”IPを取得する”ものだと勝手な先入観で思い込んでしまっていました ありがとうございます ちなみにC言語において実行元のIPを取得する関数は存在しますか?
624 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 15:49:55.99 ] >実行元のIP これが全くもって意味不明なんだが
625 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 15:50:05.73 ] 環境依存
626 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 16:00:42.47 ] >>624 表現に悩みましたが、実行者のIPで伝わるのかな
627 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 16:06:09.03 ] C言語うんぬんよりも先に HTTPとかネット関係とか そっちの方をやった方が良いだろコイツ 今のままじゃあ話なんて通じねーよ ムダだよ
628 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 16:19:26.86 ] cgi作りたいならC言語よりPHPとかPerlとかのスクリプト言語の方勉強したほうがいいよ。
629 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 16:47:38.18 ] >620 IPアドレス持つにはTCP/IPプロトコルが必要。 TCP/IPプロトコルの無いハードなんていくらでもある。
630 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 16:58:18.34 ] すいませんLinuxとC言語の質問はどこでしたらいいですか?
631 名前:630 mailto:sage [2012/05/19(土) 17:01:14.05 ] Linuxでいいエディタがないので自分で作りたくて質問したいんです
632 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 17:06:16.64 ] vimでもemacsでもgeditでもだめってこと? 普段>>630 はどんなエディタ使ってるんだろ
633 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 17:07:43.29 ] >>629 調べて意味を理解できました、ありがとうございます 指摘通りネットワークの知識が薄いみたいなんで勉強してきます
634 名前: ◆QZaw55cn4c mailto:sage [2012/05/19(土) 17:34:34.37 ] >>608 つコンパイラ
635 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 17:47:23.61 ] 今は皆さんC初心者に優しいよね。Cマが増えても誰も困らないからかな。
636 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 21:21:40.19 ] >>635 そうですか?あいもかわらず冷たいと思っています、C がわからなければ人じゃない、っていう雰囲気はいつまでも払拭されない、という気が。
637 名前:630 mailto:sage [2012/05/19(土) 21:49:40.05 ] >>632 秀丸 vimとemacsは難しすぎてエディタの使い方を覚えないといけないから時間がかかります geditは機能が足りないので不満です そこで秀丸にある機能で自分で使いたいものを自分で実装して使いたいんです
638 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 21:54:48.55 ] その理想のエディタを開発するためにもまずはIDE使いこなせ
639 名前:デフォルトの名無しさん [2012/05/19(土) 21:57:02.97 ] 現在公立の中学生(1年)なんですが、C言語を始めたいと思っています。 中学の時点でC言語の理解は難しいでしょうか? 日本で小学校高学年や中学生でC言語というかプログラミングやってる 人は少ないですか?周りにいないので。
640 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 21:59:13.83 ] BASICみたいな使い方なら出来るだろう でもポインタとか構造体を使うにはちょっと難しいかもな 高校生になればだいたいできると思う しかし小学生でプログラム組んでた奴もいるから結局は個人差か
641 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 21:59:16.77 ] 厨房がC言語やるなんて早いんだよ。 部活やったり友達と遊んだりする事に時間を使え
642 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 22:03:45.81 ] >>639 CDブートのknoppixをUSBから起動させれば あなたもたちまちCマスターどころかイッパシのハカーになれます はっきりいって年齢は関係ありません 適性だけです
643 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 22:11:26.13 ] プログラミングなんかやったって何にもならないただの徒労で終わるよ 学生なら部活やら人付き合いやら勉強やら資格の勉強やらに費やすべき プログラミングなんかやったって受験で有利になるわけでも良い会社に入れるわけでも 出世競争で有利になるわけでも金が儲かるわけでもなんでもない プログラミングに時間を費やすというのは完全に人生をドブに捨てるのと同じで愚かな行為 受験勉強を頑張りなさい
644 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 22:12:18.29 ] >>643 うざいです><
645 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 22:24:33.13 ] >>637 だったら自分で新しいエディタ書くよりpythonでgeditプラグイン書いたほうが速いと思うが
646 名前: ◆QZaw55cn4c mailto:sage [2012/05/19(土) 22:42:53.30 ] >>639 先輩たちがここにいるよ。 当時の話をきくと面白いかもしれないよ。 ikura.2ch.net/test/read.cgi/i4004/1334408350/
647 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 22:47:19.05 ] >>646 オッサンは嫌
648 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 22:49:07.44 ] タイトルの俺って誰ですか?
649 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 22:50:01.57 ] Cの最大の難関はこんな役立たず言語覚えてどうするんだという疑問が払拭できず モチベーション維持が極めて難しいということだな。 そこさえ乗り越えられれば何歳だろうと習得は簡単。
650 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 22:51:50.76 ] 言語を作りたいのですがそういう場合でもC言語を覚えるのはやめたほうがいいですか?
651 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 23:08:14.06 ] 初歩的なことで申し訳ないんですが、 1〜40までの整数があって 1〜20を白、21〜40を赤 みたいにしたいとき、 1〜20 の ”〜”の部分は どう表現すればいいんですか?
652 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 23:08:43.52 ] >>649 ちがうんじゃねーの? Cで出来ることがほとんどやりつくされてるからじゃね デガラシいじくりまわしても楽しくないじゃん
653 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 23:25:18.64 ] ・覚えるの 早めた方がいいですか? ・覚えるのは 止めた方がいいですか? どっちなのかと。
654 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 23:27:22.88 ] >>651 あなたの質問は、if文の条件の書き方を知りたいと言うことですか? でとすれば、if (整数 >= 1 && 整数 <= 20) 白();のようにすればよろしいかと。
655 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 23:27:59.05 ] >>651 >1〜20 の ”〜”の部分は >どう表現すればいいんですか? 「波線」。
656 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 23:41:55.43 ] >>654 ありがとうございます! >>655 勉強になりましたwww
657 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 00:25:16.23 ] いえいえ
658 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 00:49:25.18 ] >>657 いやお前に言ってないからwww
659 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 00:55:35.76 ] 俺に言ってんだよ。
660 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 01:10:07.47 ] >>659 誰にも言ってないんですけど
661 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 03:56:57.85 ] >657 が壁に向かって言ってるんだろ。
662 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 03:59:53.21 ] Yeah Yeah
663 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 07:15:58.09 ] iPadで授業の動画を見ながらプログラミング学習 ソフトバンクがシリーズ展開 iPad 向けアプリ「赤松先生のIT講座シリーズ」の第1弾としてリリースされたのは、『速解C 60分でわかる「構造体」「ポインタ」』(1500円、発売記念価格800円)。 markezine.jp/article/detail/11865 static.shoeisha.jp/mz/static/images/article/11865/11865.jpg
664 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 08:19:55.81 ] イェーイェー
665 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 08:23:16.86 ] ドットインストールで充分だろ。
666 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 10:34:29.62 ] ドットインストールは中身薄くてダメだ そこで動画公開してる低レベル野郎のステマか?
667 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 10:51:41.38 ] どーせ動画で見に付くわけないんだ、本人が判った気になるだけのために金を出すのは馬鹿馬鹿しいってこと。 それこそドットインストールがどうこうって、ソフトバンクのステマかっての。
668 名前:デフォルトの名無しさん [2012/05/20(日) 12:00:05.03 ] >>649 役立つ言語がもしあると今度は立場がなくなるやつが何か吠えてるなw
669 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 12:10:49.11 ] C言語が身に付くレベルの理解力があれば他の言語の取得も容易っていう目安になる。
670 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 19:20:02.56 ] なるね。
671 名前: ◆QZaw55cn4c mailto:sage [2012/05/20(日) 20:06:22.08 ] なるかなあ?
672 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 20:15:42.94 ] とりあえずここが人が多そうだからここにきたんですが 総合的な質問スレってありませんか?
673 名前: ◆QZaw55cn4c mailto:sage [2012/05/20(日) 20:20:54.34 ] toro.2ch.net/test/read.cgi/tech/1316013463/
674 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 20:57:23.25 ] >>672 ここが総合的な質問スレに見えるならそういうことにしておけ
675 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 21:53:35.00 ] double nanashi(double MAX,double MIN) //MINからMAXまでの実数乱数を返す {return ((double)(rand()%(int)((MAX-MIN+1)*POINT))+MIN)/POINT;} 実数の乱数を返す関数を作りましたが思ったような動作を行いません 記述を間違えているのでしょうか POINTは10^4くらいです
676 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 21:56:40.57 ] >>675 (MAX-MIN)*rand()/RAND_MAX+MIN;
677 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 22:01:51.28 ] >>676 0から1までの乱数を生成して、大きさ(MAX-MIN)をかけMINの分を底上げするんですね 助かりましたありがとうございます
678 名前:678 [2012/05/21(月) 01:47:42.52 BE:950591227-2BP(0)] rot13暗号を解読するプログラムでEOFを使わないプログラムが分かりません。
679 名前: ◆QZaw55cn4c mailto:sage [2012/05/21(月) 02:11:52.61 ] >>678 ideone.com/6G1HG
680 名前:678 [2012/05/21(月) 02:20:17.16 BE:678993825-2BP(0)] >>679 getchar使わない文でお願いします。すいません
681 名前: ◆QZaw55cn4c mailto:sage [2012/05/21(月) 02:21:49.50 ] >>680 fgetc(), fputc() は使っていいかい?
682 名前:678 [2012/05/21(月) 02:24:58.37 BE:678993825-2BP(0)] >>681 すいませんが、習い始めで getcharを習い出したばっかりで、 ちなみに自分で作った文だとデバッグエラーが出るんです。 #include<stdio.h> int main(void) { int rot; while(rot >= 'a'&&rot <= 'z') { if('a'<=rot && rot<='m') rot = rot+13; else if('n'<= rot && rot<='z') rot = rot-13; } return 0; } こんな感じです。
683 名前: ◆QZaw55cn4c mailto:sage [2012/05/21(月) 02:33:31.68 ] >>682 >自分で作った文だとデバッグエラーが出るんです。 「デバッグエラー」、というのは具体的にどんな状態になるのかな?なにかメッセージがでるとか。
684 名前:678 [2012/05/21(月) 02:41:48.37 BE:814792526-2BP(0)] Debug Error! Program: C:\Users\名前 \Desktop\ROT13\Debug\ROT13\.exe Module: C:\Users\名前 \Desktop\ROT13\Debug\ROT13.exe File: Run-Time Check Failure #3-The cariable'rot'is being used without being initialized. (Press Retry tu debug the application) っていう表示のウィンドウが出ます。。。。
685 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 02:48:58.17 ] int rot=0;
686 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 02:49:16.73 ] >>684 hello world の表示は出来た?
687 名前:678 [2012/05/21(月) 02:53:16.56 BE:407396423-2BP(0)] >>685 int rot = 0; だと、終わってしまいます。 >>686 出来ました。 なんでもかんでも出来ないわけではないそうです。
688 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 02:56:07.55 ] >>687 そりゃそうだろ >>682 はrotの入出力やってないもん でもエラー出なくなったろ? >>684 のエラーはそういう意味 どこかで入出力文があれば初期化も不要なはずなんだが
689 名前: ◆QZaw55cn4c mailto:sage [2012/05/21(月) 03:01:32.04 ] >>684 それは rot に値がはいっていないよ、ってことですね。 たしかに、>>682 では rot の値がきまっていない。(rot をどう処理するかはかいてあっても。) で rot に値をいれればいいのですが、どんな感じにしますか?getchar() で標準入力から掘り込み、printf() で表示するとかが適当だとおもいますけど。 なにか希望があれば教えてください。 あとプログラムを作成している環境(コンパイラの種類とか)もわかるのなら教えてください。もしかして web でやっているのでしょうか?
690 名前:678 [2012/05/21(月) 03:03:44.46 BE:4888750289-2BP(0)] >>688 #include<stdio.h> int main(void) { int rot; while(rot >= 'a'&&rot <= 'z') { printf("%c\n",rot); if('a'<=rot && rot<='m') rot = rot+13; else if('n'<= rot && rot<='z') rot = rot-13; } return 0; } これでprintfを足したんですが、同じエラー文?が出ました。
691 名前:678 [2012/05/21(月) 03:09:58.26 BE:3327066277-2BP(0)] >>689 希望はないんですが、あまり複雑なモノはまだ習ってないので遠慮したいです。
692 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 03:13:10.20 ] なんちゅーか プログラム云々の前にチラシの裏にでも理解出来たと思う部分を書き出してみて 自分の頭ん中をデバッグするところから始めるべき
693 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 03:15:07.11 ] >>689 あと任せた 寝る
694 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 03:17:06.88 ] >>690 最後に一つだけ 「入出力文」と書いたのは悪かった 「入力文」の方が正しいな エラーの理由はrotを初期化しないでいきなり while(rot >= 'a'&&rot <= 'z') なんてやってるから undefined、つまり「鼻から悪魔が出てきても知りませんよ」という事
695 名前: ◆QZaw55cn4c mailto:sage [2012/05/21(月) 03:20:25.52 ] >>691 ideone.com/0H11v 一文字しかできませんが、手始めにこんなのはどうですか? /* 1 */ と /* 3 */ で入力、/* 2 */ で出力しています。 あと rot13 の処理が「実は」正しくないですね。
696 名前: ◆QZaw55cn4c mailto:sage [2012/05/21(月) 03:21:00.90 ] >>693 日食までがんばりませんか?
697 名前:678 [2012/05/21(月) 03:32:42.36 BE:3259166786-2BP(0)] #include<stdio.h> int main(void) { int rot,loop; loop = 1; scanf("%c\n",&rot); while(loop <=100) { if('a'<=rot && rot<='m') rot = rot+13; else if('n'<= rot && rot<='z') rot = rot-13; scanf("%c\n",&rot); } return 0; } ここまでいったんですが、+13とか-13がされません。。。
698 名前:678 [2012/05/21(月) 03:52:08.79 BE:4277656297-2BP(0)] 一応友達のアドバイスもあって、 プログラムが出来ました。 ありがとうございました。 #include<stdio.h> int main(void) { int rot,loop; loop = 1; while(loop <=100) { scanf("%c",&rot); if('a'<=rot && rot<='m') rot = rot+13; printf("%c",rot+13); if('n'<= rot && rot<='z') rot = rot-13; printf("%c",rot-13); } return 0; }
699 名前: ◆QZaw55cn4c mailto:sage [2012/05/21(月) 03:57:26.90 ] >>697 手が加わったのはいい感じです。 rot13 の処理に問題はありますが、とりあえず >>697 に沿って動くように訂正すると codepad.org/ikiHqIJW scanf("%c\n", &rot) の rot は char rot; でないとうまくうごきません。 int rot; だと'c' を入力したつもりでも、実は場合によっては rot が 'c' にならないことがあるのです。
700 名前: ◆QZaw55cn4c mailto:sage [2012/05/21(月) 03:59:53.20 ] >>698 ありま? でも、それ、うごいているようにみえるのは偶然ですよ、たぶん。 int rot; じゃなくて char rot; じゃないと‥‥‥
701 名前:678 [2012/05/21(月) 04:06:51.43 BE:1357986454-2BP(0)] >>700 そうなんす。 変な文字まで現れて・・・ charでやってみます。
702 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 04:15:12.14 ] >>701 >変な文字まで現れて・・・ X printf("%c",rot+13); O printf("%c",rot); X scanf("%c",&rot); O scanf(" %c",&rot);
703 名前:678 [2012/05/21(月) 04:32:59.41 BE:1222188629-2BP(0)] >>702 変な文字は出なくなりました。 あとは+と‐がされなくて 'a'を入力すると'aT'と表示されたり・・・
704 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 04:54:51.59 ] >>703 今のソースをそのままideoneに貼れ。