スレを勃てるまでもな ..
[2ch|▼Menu]
2:デフォルトの名無しさん
09/05/14 20:52:06
これはポニーテールがなんちゃらかんちゃら

3:デフォルトの名無しさん
09/05/14 21:15:47
std::invalid_argument
は「意味的に正しくない引数に対する例外」ということなのですが、
この「意味的」という意味が分かりません。
具体的にどのような場合が「意味的に正しくない」のでしょうか?

4:デフォルトの名無しさん
09/05/14 21:36:12
例えば引数で何月かという値をもらうとする。
1-12以外が渡されたら、意味的におかしいだろ?

5:3
09/05/14 21:48:32
>>4
ありがとうございます。

1-12以外が渡されたら、それは想定範囲外だから std::out_of_range であると思っていました。

6:デフォルトの名無しさん
09/05/15 02:32:50
                          刀、           , ヘ
                  /´ ̄`ヽ /: : : \_____/: : : : ヽ、
              ,. -‐┴─‐- <^ヽ、: : : : : : : : : : : : : : : : : : : : : : }
               /: : : : : : : : : : : : : :`.ヽl____: : : : : : : : : : : : : : : : : : /
     ,. -─「`: : : : : : : : : :ヽ: : : : : : : : :\ `ヽ ̄ ̄ ̄ フ: : : : :/
    /: :.,.-ァ: : : |: : : : : : : : :    :\: : : : :: : : :ヽ  \   /: : : :/
    ̄ ̄/: : : : ヽ: : : . . . . . . . . . . .、 \=--: : : :.i  / /: : : : :/
     /: :     ∧: \: : : : : : : : : : ヽ: :\: : : 〃}/  /: : : : :/         、
.    /: : /  . : : :! ヽ: : l\_\/: : : : :\: ヽ彡: : |  /: : : : :/            |\
   /: : ィ: : : : :.i: : |   \!___/ ヽ:: : : : : : :\|:.:.:.:/:!  ,': : : : /              |: : \
   / / !: : : : :.ト‐|-    ヽ    \: : : : : l::::__:' :/  i: : : : :{              |: : : :.ヽ
   l/   |: : :!: : .l: :|            \: : : l´r. Y   {: : : : :丶_______.ノ: : : : : :}
      l: : :l: : :ト、|         、___,ィ ヽ: :| ゝ ノ    '.: : : : : : : : : : : : : : : : : : : : : : /
      |: : :ト、: |: :ヽ ___,彡     ´ ̄´   ヽl-‐'     \: : : : : : : : : : : : : : : : : : イ
        !: :从ヽ!ヽ.ハ=≠' , ///// ///u /           ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
      V  ヽ|    }///  r‐'⌒ヽ  イ〉、
              ヽ、______ー‐‐' ィ´ /:/:7rt‐---、       こ、これは>>1乙じゃなくて
                  ィ幵ノ ./:/:./:.! !: : : : :!`ヽ     ポニーテールなんだから
              r‐'T¨「 |: | !:.∨:/:./: :| |: : : : .l: : : :\   変な勘違いしないでよね!
               /: : .|: :| !:.!ィ¨¨ヾ、:.:/ !: : : : l: : : : : :.\

7:すげーどーでもいい質問
09/05/15 03:23:23
class Hoge {
private:
int h;
public:
Hoge(int h) : h(h) {}
};
俺、上みたいなとき、いつも仮引数の名前とメンバ変数の名前同じにしてるんだが、
(特に問題なく動くので)そういうコード見たことない。混乱するから?それともたまたま
動いているだけで何か問題あるの?
俺にとっては毎回変数と違う名前を思いつく方がよっぽど紛らわしいんだが。

8:デフォルトの名無しさん
09/05/15 03:24:23
始めて3日の初心者です。
初項1、公比1/3の等比数列の4項までの和を求めたいのですが
(もちろん普通に計算すればできますが)
どうにも上手くいかなくて困っています。助けてください。
自分が書いたのはこんな感じです。


#include <stdio.h>
#include <conio.h>

int main(void ){
int l;
double m,n;
l=0;
m=0;
n=0;
for(l=0;l<5;l++) {
m=1/3^l;
n=n+m;
}
printf("%f",n);
getch();
return 0;
}

どこがいけないのかさっぱりわかりません。どなたかご指摘お願いします。

9:デフォルトの名無しさん
09/05/15 03:38:03
>>8
C言語ではべき乗演算子はない
^はXOR演算子

だから m = 1 / pow(3, l); とすればいいはず

10:デフォルトの名無しさん
09/05/15 03:40:57
あ、#include <math.h> を忘れずにな

powがdouble型を返す事を前提にしてるんで
そうしないと整数÷整数という意味のない事をする事になってしまう

11:デフォルトの名無しさん
09/05/15 04:09:31
>>8
問題あるよ。
その問題とはお前が低脳ってこと
普通の脳なら、int m_h;とかする。

12:デフォルトの名無しさん
09/05/15 04:50:04
>>11
おまえ番号ちがうくらいだからもっと低能だな

13:デフォルトの名無しさん
09/05/15 04:52:48
m_って何の略?

14:デフォルトの名無しさん
09/05/15 05:25:09
staticの意味を調べコードを書いたのですがコンパイルエラーになります
どこがおかしいのでしょうか

#include <iostream>
class Test {
public:
static int x;
int y;
Test() {}
~Test() {}
void show();
static void s_show();
};

void Test::show() {
std::cout << "y=" << y << std::endl;
}

void Test::s_show() {
std::cout << "x=" << x << std::endl;
}

int main() {

return 0;
}

15:デフォルトの名無しさん
09/05/15 05:28:03
int Test::x; が抜けてる

16:デフォルトの名無しさん
09/05/15 05:45:40
#include <iostream>
class Test {
public:
static int x;
int y;
Test() {}
Test(int i = 0) : y(i) {}
~Test() {}
void show();
static void s_show();
};

int Test::x = 1;

void Test::show() {
std::cout << "y=" << y << std::endl;
}

void Test::s_show() {
std::cout << "x=" << x << std::endl;
}

int main()
{
Test t(2);

t.show();
t.s_show();
}

17:デフォルトの名無しさん
09/05/15 06:05:17
えっグローバル変数とstatic変数は宣言と同時に自動的に0に初期化されるのではないのでしょうか?
例)
#include <iostream>
int global;
int main() {
static int staticint;
int local;
std::cout << local << std::endl;
std::cout << global << std::endl;
std::cout << staticint << std::endl;
return 0;
}
(結果)
-1881141193 ←ゴミ
0 ←きちんと0で初期化されてる
0 ←きちんと0で初期化されてる


18:デフォルトの名無しさん
09/05/15 06:09:29
>>17
クラスのstatic変数は例外です
というのもクラスのインスタンスを複数作ってもstatic変数の
実体は一つしか作られない上にコンストラクタでも初期化不可能
なため、どこかで定義してやる必要があります。

もちろん = 1 を省略すれば 0 で初期化されます。

19:17
09/05/15 06:23:33
>>18
わかりやすい説明ありがとう。

20:デフォルトの名無しさん
09/05/15 10:03:13
>>7
メンバー変数と仮引数と局所変数を区別するプリフィックスをつければいいんじゃないかな。同じ意味で記憶クラスが異なる変数を人目で見分けられるし、名前を増やさなくて済む。
例えば、メンバーはm、仮はkとか何とか

class Hoge {
private:
int mh;
public:
Hoge(int kh) : mh(kh) {}
};


21:デフォルトの名無しさん
09/05/15 10:08:37
>>7
私は小さいコンストラクタに限り、同じ名前でやってるよ。まぁ、別に問題ないな。

>>10
解釈がおかしい。プロトタイプ宣言のないpow()を使った場合、引き数のそれぞれがintのまま引き渡されてしまいおかしなことになる。
又、戻り値もdouble値として戻されるのにintとして受け取ろうとするからやはりここでもおかしなことになる。

x86みたいにintとdoubleで格納するレジスタが異なるような環境の場合、一見巧く動くから厄介だ。

22:デフォルトの名無しさん
09/05/15 10:14:13
等比数列で前の数を使わないでいちいちpowするような間抜けなやり方なんてどうでもいいだろw

23:デフォルトの名無しさん
09/05/15 12:22:26
自作のヘッダファイルは二重にインクルードしてしまうと再定義のエラーになりますが、
よくよく考えると<iostream>のような標準ヘッダはインクルードガードしないで何度もインクルードしているような
気がしますが、なぜエラーにならないのでしょうか?

24:デフォルトの名無しさん
09/05/15 12:29:45
>>23
標準ヘッダもインクルードガードしてるだろ。

25:23
09/05/15 12:43:11
>>24
あ、そっか。独自のヘッダファイルでインクルードガードするんじゃなくて、
標準ヘッダ側にインクルードガードが書かれてるのか。ところで標準ヘッダファイルを見た事がないのですが、
標準ヘッダってどこのディレクトリにあるんでしょうか?iostreamでCドライブ検索したけどヒットしませんでした。
Visual Studio2008使ってます

26:デフォルトの名無しさん
09/05/15 13:13:44
includeの下。

27:23
09/05/15 13:19:27
やっぱりなかった。iostreamもistreamもostreamも。
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include
ですよね!?

28:デフォルトの名無しさん
09/05/15 13:24:30
#include <iostream>で右クリックして
ドキュメントを開くを選んで
開いたらタブで完全パスのコピー

29:23
09/05/15 14:09:23
こんな機能あったんだ。。
ヒットしなかったのは違うドライブにインストールしてたからだった。。
大変失礼しやした。ありがとー

30:デフォルトの名無しさん
09/05/15 14:39:22
URLリンク(www.geocities.jp)
ここにインライン関数はソース側に記述できないと書いてあるのですが(ヘッダに書けってことですよね)、
試したらソースファイル(cpp)にインライン関数を書いてもエラーになりませんでした。
僕の読み違いでしょうか?

31:デフォルトの名無しさん
09/05/15 16:08:38
>>30
>僕の読み違いでしょうか?
いいえ、間違いです。

32:デフォルトの名無しさん
09/05/15 16:33:30
>>31
どっちなんだよww

33:デフォルトの名無しさん
09/05/15 16:48:14
「インライン関数はソース側に記述できない」のは正しいが、「エラーにならない」のも事実。
従って「読み違い」ではなく、「検証方法の間違い」だ。

34:デフォルトの名無しさん
09/05/15 17:22:25
共用体ってどんな時に使うのでしょう?
メンバの値がどれも同じになるなら、変数と同じ気がするんですが…

35:デフォルトの名無しさん
09/05/15 17:37:31
メモリが足りない時等にに変数を共有してメモリ節約したい時

36:デフォルトの名無しさん
09/05/15 17:44:56
すいません、わかりません…。
同じデータだけどデータ型が頻繁に変わるゆうな時に使う、という認識ですか?



37:デフォルトの名無しさん
09/05/15 17:50:18
変数で考えるな
メモリで考えろ

38:デフォルトの名無しさん
09/05/15 17:52:37
>>36
>同じデータだけどデータ型が頻繁に変わるゆうな時に使う、という認識ですか?
データ型が変わるという認識は間違い。
例えば
2つの変数char cとint iに対して同時にアクセスしないなら
それをunionにすれば同じメモリ上に配置できるから節約できるでしょ?
ただしそのunionの値を読み出す時は
どちらの値が入っているかに気を配りながら使う手間が必要。



39:デフォルトの名無しさん
09/05/15 17:53:06
#include <stdio.h>

typedef struct
{
  int sampling_rate;
}AAC;

typedef struct
{
  int sampling_rate;
}AC3;

typedef struct
{
  union{
    AAC aac;
    AC3 ac3;
  }u;
}SOUND;

int main(void)
{
  SOUND sound;
  // なにかの処理
}
みたいな?

40:38
09/05/15 17:53:18
>>36
これでもわからなければ諦めろ
つーかググれ。

41:デフォルトの名無しさん
09/05/15 17:56:48
ありがとうございます!よくわかりました


42:デフォルトの名無しさん
09/05/15 18:17:13
こんなのはありそうだね。
typedef union {
struct foo {
int x;
int y;
} s;
int array[sizeof(struct foo)];
} coord_t;

43:デフォルトの名無しさん
09/05/15 18:28:25
C99のソースを書く奴は単なるオナニー

44:デフォルトの名無しさん
09/05/15 18:45:31
unionは二分木の実装で見かける気がする。


45:デフォルトの名無しさん
09/05/15 20:16:52
通信では、普通に使う

46:デフォルトの名無しさん
09/05/15 20:23:11
クラスを配列にすることはできますか?

47:デフォルトの名無しさん
09/05/15 20:42:34
できます

48:デフォルトの名無しさん
09/05/15 20:50:55
C言語で、linux のioポートのアクセスを行う実装を行いたくて
#include <linux/types.h>
#include <linux/config.h>
#include <asm/system.h>
include <asm/io.h>
これらのファイルがないと怒られます、どうしたらいいのでしょうか?


49:デフォルトの名無しさん
09/05/15 21:03:31
Redhat系なら、kernel-headersとかその辺のパッケージを入れる。
それ以外なら Linux板で聞け。

50:デフォルトの名無しさん
09/05/15 21:15:04
>>49
Thx
slacklwareなんでlinux板で聞きます、因みにkernel-headersはインストールしているのですが
カーネルを 2.6.29.3に上げているためだと思います、 2.6.29.3用のkernel-headersをインストールしないといけないのでしょうかね?


51:デフォルトの名無しさん
09/05/15 21:15:52
>>47
ありがd
クラス覚えた手だけどこりゃ便利そうだ

52:デフォルトの名無しさん
09/05/15 21:18:50
プログラム板から、誘導されました
C言語で、linux のioポートのアクセスを行う実装を行いたくて
#include <linux/types.h>
#include <linux/config.h>
#include <asm/system.h>
include <asm/io.h>
これらのファイルがないと怒られます、どうしたらいいのでしょうか?
因みに、鳥はslacklware12.2でkernel-headersはインストールしているのですが
カーネルを 2.6.29.3に上げているためだと思います、 2.6.29.3用のkernel-headersをインストールしないといけないのでしょうか?

53:デフォルトの名無しさん
09/05/15 22:52:38
C言語で一つの処理?を終えるまでにかかる時間を計算する方法ってありますか?
CPUが100Mhzだとすると、
たとえば、*buf = 1000 とか一つ処理するのにどれくらいかかりますか?

54:デフォルトの名無しさん
09/05/15 22:54:14
1/100000000秒じゃね?

55:デフォルトの名無しさん
09/05/15 22:57:17
>52
J 釣りか ?
それくらい解決できないようではC言語を使わないでもらいたい。
昔の人は考えた、無ければ作ればいいと。
findでgrepのviだろjk.

56:デフォルトの名無しさん
09/05/15 23:01:31
>>53
コンパイルしてアセンブラのコードを見ないと。
最近のCPUは複雑だから、それでも難しいと思うけど。

57:デフォルトの名無しさん
09/05/15 23:10:21
>>56
アセンブラのコードみたらわかるというわけでもないのですね

そういうのって計算できないものなのかな
おおよその計算ができるプログラムなりあったりしないのでしょうか?

CPU作ってる人たちはそういうの計算してるんですよねやっぱり

58:デフォルトの名無しさん
09/05/15 23:20:43
大体は判るよ。CPUが指定されているのならね。
アセンブラの判る人間なら、この処理はこんなコードに落ちるから、何クロックとか推測出来る。
同じ周波数でもCPUによってかかる時間が違うから単に100MHzとか言われても答えようがない。

もっと問題なのは
*buf = 1000;
なんてのはコンパイラの最適化でどうなるか判らないことだ。


59:デフォルトの名無しさん
09/05/15 23:22:09
>>57
10年くらい前に読んだアセンブラの本にはVTuneってツールで
プロファイルしながら、アセンブラのコードを最適化する例が
乗ってたよ。
ググったら、今でも売ってるみたいなんで、そういうツールを
使えばわかるんじゃないの?

60:デフォルトの名無しさん
09/05/15 23:22:27
最速のケースと、最悪のケースは計算できるだろうけど。
あとは、CPUのシミュレータがあるからね。

61:デフォルトの名無しさん
09/05/15 23:24:21
>>58
Mhz以外に何がわかればいいのでしょうか?

計算方法としては
Cのソースをコンパイル→アセンブラ見る→CPUから計算? という感じでしょうか

62:デフォルトの名無しさん
09/05/15 23:26:20
>>58
たとえ同じCPUでも、その前のコードによってキャッシュやパイプラインの状況が
異なってくるから何とも言えないというのはある。

63:デフォルトの名無しさん
09/05/15 23:28:09
>>62
大体はわかりませんか?

たとえば10000回ループさせたとして
これくらいだと、100ms〜200msかかるとか

64:デフォルトの名無しさん
09/05/15 23:28:58
>>63
それかなりの精度の読みを要求してるなw

65:デフォルトの名無しさん
09/05/15 23:29:43
あと、いい加減sageろ

66:デフォルトの名無しさん
09/05/15 23:32:08
>63
大体は判るって言ってるだろうが。
日本語に不自由してるのか?

アセンブラ勉強しろ。その範囲で判る範囲の推測は出来る。
それより実測した方が早いがな。


67:デフォルトの名無しさん
09/05/15 23:36:45
大体は判る

その大体すら教えてくれないのにそういわれても

68:デフォルトの名無しさん
09/05/15 23:39:53
>>67
CPUすら教えてくれないのにそう言われても。

69:デフォルトの名無しさん
09/05/15 23:40:42
>>63
実測するのが早い。
実測できないのなら、MIPS値がわかれば一秒間に実行できる大体の命令数がわかる。


70:デフォルトの名無しさん
09/05/15 23:42:36
環境によって変わり過ぎる
ハードウェア等の動かない前提のものならともかく、
OSやサービスパックの有無、画面のサイズなどの描画関係やアンチウィルスソフトなんかも走ってればかなり差も出る
ってか、実測すれば??

71:デフォルトの名無しさん
09/05/15 23:47:19
そのためのプロファイラだろ

72:デフォルトの名無しさん
09/05/15 23:50:22
アセンブラで局所的にパフォーマンスどうこうって話をしてるのに、
サービスパックの有無とか安置ウイルスソフトどうこうとかって話はないだろ。

73:デフォルトの名無しさん
09/05/15 23:54:23
だよねw

74:デフォルトの名無しさん
09/05/16 00:01:32
例えアセンブラでも、>>67の書いた情報だと、
「全フットプリント合計の最悪値以下」しか答えようがないでしょ。
キャッシュやらパイプラインやら環境要因/外的要因が多すぎる。

組み込み用のMMUもないCPUを割り込み禁止で使えば、
好きなだけアセンブラから完全な精度で値を割り出せるよw

75:デフォルトの名無しさん
09/05/16 00:50:28
みんなわかりきってて言及を控えた事だから書かなくていいよ

76:デフォルトの名無しさん
09/05/16 01:15:54
unionの話ちょっと前に出てるけど
unionをどんな時に使ってるんだ?

77:デフォルトの名無しさん
09/05/16 08:09:09
上にも出てたが、最有力はネットワークのパケット関連だろ。
あとは特定のファイル形式のヘッダとか。
俺は組み込みやらんから知らないけど、メモリの制約が大きい環境では勿論メモリ節約の意味で使うだろうし。

78:デフォルトの名無しさん
09/05/16 13:17:22
インストール完了して、ライブラリなどの参照先を全て設定してあるのですが
コンパイルで3回ほどやったら固まったり
ビルドですぐに固まったりして 何度も強制終了して困っています。

何か解決策はありますでしょうか?

使用 VC++6.0
OS WindowsXP Proffesional
メモリ 4GB
CPU Core2 Duo 3GHz

です。


79:デフォルトの名無しさん
09/05/16 13:50:07
それは C/C++ の質問とは言わん。が、まあいい。
>使用 VC++6.0
これを新しくするか
>OS WindowsXP Proffesional
これを古くする。

80:デフォルトの名無しさん
09/05/16 14:14:42
>>レスありがとうございます。

新しくするというのは
VC++ 2008にするという事ですか?

81:デフォルトの名無しさん
09/05/16 14:40:06
VC++6.0は時代の遺物じゃね。
もう使い物にならん。

82:デフォルトの名無しさん
09/05/16 17:21:57
小林健一郎さんの、「これならわかるC++」と
矢沢久雄さんの「C++クラスの継承」を読み終わって
平山尚さんの「ゲームプログラマになる前に覚えておきたい技術」を読んでみたのですが
最初のプログラムって、初心者が思いつくようなものなのでしょうか?orz
初心者向けと聞いて開いてみたのですが、難しくて挫折しそうです・・・。
平山さんの本を読むために、読んでおくべき本があったら教えてください・・・。

83:デフォルトの名無しさん
09/05/16 17:26:42
読むだけじゃだめ、何か作っていかないと

84:デフォルトの名無しさん
09/05/16 17:29:36
追加、本読めば作れるようになれっると思うのはひじょーーに甘い。
簡単なものからで良いから、数を作ることが必要。
例えば、マラソンの本を1万冊読もうがマラソン選手になれるわけではない。

85:デフォルトの名無しさん
09/05/16 17:35:44
>>83-84
即レスありがとうございます。
プログラムも自分なりに作ってはいるのですが
x軸やy軸などの基本書に書いてなかった概念が出てきて
何か足りない知識があるのだろうか、と思っています。

86:デフォルトの名無しさん
09/05/16 17:37:50
まて、それは数学の知識や物理の知識で、2Dなら中学程度でOKだけど。
本当に知りたいのはなに?

87:デフォルトの名無しさん
09/05/16 17:47:14
>>86
数学の知識があればいけるのでしょうか?
私の単なるプログラムの経験不足でしょうか・・・。
目にしたことない単語が多く出てきたので、難しく感じています。

数学は大学センター試験で1A,2B両方とも80点取れる程度です。

88:デフォルトの名無しさん
09/05/16 17:53:15
>>87
なんとなくスレ違だが、>>85の例題が悪い。
>私の単なるプログラムの経験不足でしょうか・・・。
これが答え。
易しく言うと、ある現象、キャラガX軸方向に歩いていきます。とした場合。
あなたなら、簡単に計算式が予想できると思う。しかしだ、
それをプログラムとした場合のモデル化が予想できない状態である。
この解決策は、ずばり、経験だけ。あなたなら経験すればすぐ作れるようになる

89:デフォルトの名無しさん
09/05/16 17:54:24
ゆとりの理想像にだいぶ近いな

90:デフォルトの名無しさん
09/05/16 17:56:46
>>88
レスありがとうございます。
やはり経験不足なのですね。
色々なプログラムに触れて勉強したいと思います。
どうもありがとうございました。

91:デフォルトの名無しさん
09/05/16 18:10:06
宿題スレの問題を自分の力だけで解けば、糸口が見えてくると思う。
解けない時は、他の人の回答を 手打ちで入れる。
コピペは駄目ぜったい

92:デフォルトの名無しさん
09/05/16 18:40:04
ゲーム作りたいのなら、HSPあたりがいいんじゃない?

93:デフォルトの名無しさん
09/05/16 23:41:39
誕生日を祝ってくれるプログラムを作りましたが何も表示されません。
やはり誰も祝ってくれないのでしょうか。

int main(void){
int i;
for(i=0;i>100;i++)
printf("お前、お誕生日おめでとう。\n");
return 0;
}

94:デフォルトの名無しさん
09/05/16 23:43:28
>>93
釣り?マジ?コマンドラインからそのプログラムを起動しろ

95:94
09/05/16 23:46:16
>>93
その前に
i>100
この停止条件がおかしいじゃん。


96:デフォルトの名無しさん
09/05/16 23:48:54
俺が祝ってやる
int main(void){
while(1) {
printf("お前、お誕生日おめでとう。\n");
return 0;
}

97:デフォルトの名無しさん
09/05/16 23:49:54
あーーーーーーーっ  }   何も言うな  orz  やはり祝えなかった

98:デフォルトの名無しさん
09/05/16 23:51:05
ありがとうございます。
しかしこういうエラーが出るんです。

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

99:デフォルトの名無しさん
09/05/16 23:53:37
まじで、コマンドプロンプトなのか? ちょっとOS何か言ってみ

100:デフォルトの名無しさん
09/05/16 23:57:08
OSはウインドウズです。
もしかしてウインドウズだとできないんですか?

101:93
09/05/17 00:01:30
解決しました。
一年後よろしくお願いします。

102:デフォルトの名無しさん
09/05/17 00:01:36
>>100
んなわけがない
まさかソースを直接実行してないよね?
コンパイルはしてるよね?

103:デフォルトの名無しさん
09/05/17 00:10:25
コンパイルはコマンドラインでするんですよね?
ちゃんとプログラムを打ち込んでるつもりなのですが・・・

104:デフォルトの名無しさん
09/05/17 00:12:42
DOS窓でコンパイルか、なにC使ってるか疑問だ

105:デフォルトの名無しさん
09/05/17 00:13:03
>>98
拡張子はcだぞ。batじゃ無いぞ

106:デフォルトの名無しさん
09/05/17 00:14:41
おまえら全力で釣られてていいの?

107:デフォルトの名無しさん
09/05/17 00:15:50
int main(void){
printf("今日、僕ね、万個からこんにちはしたんです。\n");
main();
return 0;
}

108:デフォルトの名無しさん
09/05/17 00:24:22
コマンドラインで
int main(void){
って入力するとそのエラーになるなw

109:デフォルトの名無しさん
09/05/17 09:24:08
>>107
関係ないけど
>万個からこんにちはしたんです
「中に誰もいませんよ」を思い出した。

110:デフォルトの名無しさん
09/05/17 11:59:56
C++にて
unsigned x=10;
と言ったらxの型は何になるんでしょうか?
unsigned intですか?

111:デフォルトの名無しさん
09/05/17 12:04:29
yes

112:110
09/05/17 12:09:42
>>111
unsigned intと書かずに
unsignedとだけ書くメリットは短い以外に何かありますか?
今後の互換性とか何か?


113:デフォルトの名無しさん
09/05/17 12:12:59
なんのメリットもない気がする


114:デフォルトの名無しさん
09/05/17 12:32:51
省略かっこいい 俺すげー(゚∀゚)神のヨカーンな気分にひたれる

115:デフォルトの名無しさん
09/05/17 12:39:46
ギャル語みたいなもんか

116:デフォルトの名無しさん
09/05/17 12:48:36
R&K を厨二病だなんて言ってやるな。

117:110
09/05/17 12:56:34
まあ確かに
long intと書かずにlongで済ませたりしますが、そんな感じですか。
ありがとうございました。

118:デフォルトの名無しさん
09/05/17 13:07:04
ポインタ → 整数型(64bit) → ポインタの変換って仕様的に保証されていますか?
C で確保したリソースを他システムにハンドル値として渡し、他システム側からの
解放命令やセッション中断で解放したいんですが。

119:デフォルトの名無しさん
09/05/17 14:23:34
>>118
reinterpret_cast

120:デフォルトの名無しさん
09/05/17 14:28:23
thankyou

121:デフォルトの名無しさん
09/05/17 16:44:31
整数型への相互変換自体は保証されているが、それが64bitというのは保証されて無い

というのが建前で
そのためにわざわざintptr_tとかUINT_PTRとかが用意されているんだけど
まあC以外との通信なら仕方ないかな。
既に環境依存だし、64bitってのも問題ないんだろう。

キャストの方法(構文)はどうでもいい。

122:デフォルトの名無しさん
09/05/18 21:41:16
テキストの改行コード \r \n を削除して
バイナリファイルとしてファイルに出力後

メモ帳でみると1024文字目で改行されて表示されるのです

バイナリで開くと改行コードは取り除かれているのですが
これはWindowsのメモ帳の仕様でしょうか?

123:デフォルトの名無しさん
09/05/18 21:45:45
コマンドプロンプトから type [ファイル名] で改行されていなかったらメモ帳の仕様

124:デフォルトの名無しさん
09/05/18 23:03:54
質問です。

・・・
俺:「RSA暗号で暗号化されているので安全です」
上司:「RSA暗号とは?」
俺:「素数を使った暗号なのですが・・・要するに解読しようと思ったら何万年もかかってしまうから、
   実際には解読しようと試みる人はいないだろうという意味で安全な暗号なのです。」
上司:「高速なコンピュータを使ったら解けてしまうのではないか?」
俺:「TOP500という世界で一番速いコンピュータのリストがあるのですが、その上位のコンピュータでも私たちが生きている間には解けませんよ。
   まぁ、量子コンピュータなんかがあれば一瞬で解けてしまうと聞いたことがありますが、幸か不幸か量子コンピュータをまだ誰も完成させていません。」
上司:「でもお前が知らないだけかもしれない」
俺:「いえいえ、量子コンピュータなんかができたらすごいニュースになりますよ」
上司:「ほかの企業や組織が秘密裏に作っていたりしたらお前にわかるのか?」
俺:「・・・」

↑の「俺」がRSA暗号が安全だと上司を説得するにはこの後どのように続ければ良いでしょうか?
正論でお願いします。

125:デフォルトの名無しさん
09/05/18 23:09:04
「他の企業でも積極的に使われていますよ」

126:デフォルトの名無しさん
09/05/18 23:09:34
>>124
100%開かない鍵のかかった扉は、もはや誰にも明けられない扉だと思わなければなりません。
それと同じで、正当な手順で暗号を解除して元に戻すことが出来るようにしておく以上、
100%の確率で不正な解除を防げるようなことはありえません。

現行の規格で利用可能な現実的な意味で安全な暗号なんです。

これでどうだ?
つーかスレちがいじゃね?

127:デフォルトの名無しさん
09/05/18 23:42:44
>>124
2048ビット値の素因数分解してもらえ
もしくはできるプログラムを書いてもらえ

128:デフォルトの名無しさん
09/05/18 23:45:49
上司:「でも俺が書けないだけかもしれない」

129:デフォルトの名無しさん
09/05/18 23:48:41
つい最近始めた者です。
知り合いのサンプルコードをみてみると
グローバル変数に
OBJ gPlayer;
という欄があったのですが、これはどういう変数なのでしょうか?

130:デフォルトの名無しさん
09/05/18 23:52:56
OBJ型のgPlayerという名前の変数です

131:デフォルトの名無しさん
09/05/18 23:56:48
OBJ型っていうのが本に書いてないんですが
どういう型なんですか?

132:デフォルトの名無しさん
09/05/19 00:00:44
学校でUNIXでC++やってるんですが、
どうやってプログラム書く画面開くんですか?
lsとか色々入れてたんですが、どこに何を入れればテキストエディタ開けますか。
どうすれば、コンパイルかけれますか?

133:デフォルトの名無しさん
09/05/19 00:03:12
>>124
おまえは本当に俺の上司なのか?

134:デフォルトの名無しさん
09/05/19 00:06:35
>>132
先生に聞け。

135:デフォルトの名無しさん
09/05/19 00:06:52
>>131
サンプル内で定義されてる型だろ

136:デフォルトの名無しさん
09/05/19 00:15:47
>>134
教えてくださいよorz

137:デフォルトの名無しさん
09/05/19 00:22:26
>>136
プログラムを書く画面はviで開くよ。

138:デフォルトの名無しさん
09/05/19 00:22:45
>>135
なるほど
探してみます
ありがとうございましたー

139:デフォルトの名無しさん
09/05/19 00:22:47
>>132
lsとか打ち込む画面で、viと打ち込めばエディタが立ち上がる。
プログラム打ち込んだら、
cc プログラム
でコンパイルできる。

140:デフォルトの名無しさん
09/05/19 00:39:19
>>124
「見つけた人はCIAとFBIから消されますので、公的には発表できません。ですから安心です」

とでも言っておけ。

141:デフォルトの名無しさん
09/05/19 00:49:46
つまんね

142: ◆ZtXjKqCmiQ
09/05/19 05:38:02
>>132
% vi hello.c (プログラム)と打ち込めばviエディタが立ち上がる。
 [a]または[i]プログラム main(){} と打ち込んだら、
 [Esc][:][w][q][Enter] でエディターを終了する。
% cc hello.c (プログラム)でコンパイルできる。

143:デフォルトの名無しさん
09/05/19 10:11:12
バカな上司は持ちたくないですな

144:デフォルトの名無しさん
09/05/19 15:41:16
DOS窓に出力したいんですが、どうすればいいのですか?

145:デフォルトの名無しさん
09/05/19 16:05:40
>>144 = >>132 か?何処まで出来た?

146:デフォルトの名無しさん
09/05/19 20:14:59
AllocConsole

147:デフォルトの名無しさん
09/05/19 20:16:41
HTMLを解析するライブラリはないでしょうか?
言語はC/C++です

148:デフォルトの名無しさん
09/05/19 20:38:47
久しぶりにプログラムを行ったらすごく基本的なところで躓きました

double x;
x=2/5;
printf("%f\n",x);

この結果が0.0000になります
もちろん0.4000にしたいのですが何が悪いんでしょうか?

149:デフォルトの名無しさん
09/05/19 20:54:59
>>148
x = 2.0 / 5/0;

150:デフォルトの名無しさん
09/05/19 20:55:41
>>149
まちがえた。
x=2.0/5.0;

151:デフォルトの名無しさん
09/05/19 21:53:51
今ゲームや単純な練習用プログラムを作ってるんですが、
どこからどこまでクラスを使うべきか、等がよくわかりません
○○の場合は△△を使うのが良い、というようなことを書いてあるサイトなどはありますか?

152:デフォルトの名無しさん
09/05/19 21:57:26
>>151
デザパタの本でも読めばいいんじゃね?
って思ったけど、本読んでも試行錯誤した経験がないとピンとこないかもしれない。

153:デフォルトの名無しさん
09/05/19 21:59:32
OOPで作るなら、全部オブジェクトでつく霊

154:デフォルトの名無しさん
09/05/19 22:10:05
>>152
ありがとうございます
作りながらそういう分野も勉強してみます

155:デフォルトの名無しさん
09/05/20 00:50:51
float型の変数の値をRS-232で送りたいので8bitずつに分けたいんですが、どうすればできますか?
ビットシフトや論理積とろうとしてもエラーがでてしまいます。

156:デフォルトの名無しさん
09/05/20 00:52:50
union {
flaute fdat
struct {
char cdat[4];
}
} udat;

157:デフォルトの名無しさん
09/05/20 01:28:14
ありがとうございます。unionで出来ました。unionってこう使うものだったんですね
でも、何故structでchar cdat[4]を括ってるのか分かりません。何故ですか?

158:デフォルトの名無しさん
09/05/20 03:47:29
IDAという解析ツールのver5.2の体験版が欲しいんですが、誰か持ってませんか?

159:デフォルトの名無しさん
09/05/20 04:17:27
製品版買え

160:デフォルトの名無しさん
09/05/20 09:08:34
>>157
別に括りたくなければ括らなくていいよ。それと、unionを使うことは環境依存という修羅の道に進むことだと言うこともお忘れなく。
# 尤も、float値をバイナリのままシリアル伝送しようと言う時点で既に修羅の道だけど。

161:デフォルトの名無しさん
09/05/20 09:41:13
>>155
memcpyでいいじゃん

162:デフォルトの名無しさん
09/05/20 09:42:14
int i = *(int*)&f;

163:デフォルトの名無しさん
09/05/20 09:45:50
>>161
このケースでどのようにmemcpy()を使うのか、詳しく。

164:デフォルトの名無しさん
09/05/20 09:54:42
できた

unsigned char c[sizeof(float)];
float f;
f = 10000000.0f;
memcpy(c, &f, sizeof(f));
for (int i=0; i<sizeof(c);i++) {
printf("%#x,", c[i]);
}


165:デフォルトの名無しさん
09/05/20 10:13:59
memcpyしなくてもできた
float f;
f = 10000000.0f;
for (int i=0; i<sizeof(f);i++) {
printf("%#x,", ((unsigned char*)&f)[i]);
}


166:デフォルトの名無しさん
09/05/20 10:21:42
>>124
団塊世代の上司ってそんな感じのやつが多いよなあ。
解りもしないくせに説明しろだの言ってくるから困る。
解るためには自分で理解しようという努力が必要なのにその努力もせずに、
自分が理解できないのは説明しているやつが悪いからだ、と責任の押しつけまでしてくることもある。
んで結局は他の何人かが良いと思うか悪いと思うか聞いて直感で判断するわけなんだが、
解らないなら最初からそうしろ、と思うわけなんだよ。
結局のところ、団塊世代は対抗意識が非常に強くて教育者あるいは指導者しての能力が致命的に欠落していると言わざるを得ない。

167:デフォルトの名無しさん
09/05/20 10:25:30
ろくに説明もできないのに何言ってんだか。
内容が知りたいわけじゃなくて、当人がちゃんと理解してるか判断するために
説明させてるんだよ、たぶんw。

168:デフォルトの名無しさん
09/05/20 10:33:30
新しい暗号技術でも開発しろというのか?

169:デフォルトの名無しさん
09/05/20 10:45:23
>>167
つまり部下を信用していないということか。
社内にまで敵を作って大変ですね。
どうせムズカシイ理論とかは理解できないんだから、せめて成果で判断すりゃいいのにね。
最初は小さいことから成果を積ませて、だんだん大きいことをやらせれば良いのに。

170:デフォルトの名無しさん
09/05/20 11:08:12
>>164>>165
わざわざコピーする理由は? 元質は転送が目的なんだから、コピーしなければいけないなんて要件ないよね。

171:デフォルトの名無しさん
09/05/20 11:12:52
>>170
だからコピーやめたやーん

172:デフォルトの名無しさん
09/05/20 11:13:57
わざわざunionにする理由は? 元質は転送が目的なんだから、unionにしなければいけないなんて要件ないよね。

173:デフォルトの名無しさん
09/05/20 11:17:51
で、コピーするコストを掛ける理由は?

174:デフォルトの名無しさん
09/05/20 11:18:39
頭悪いな

175:デフォルトの名無しさん
09/05/20 11:21:20
またメモリ節約厨か

176:デフォルトの名無しさん
09/05/20 11:22:11
>>173
charの配列にコピーすれば取り出せるんじゃね?
って思ったけど、じゃあcharにキャストすればいいんじゃね?
という具合に思考が遷移したんだよ。
ごめんよ。

177:デフォルトの名無しさん
09/05/20 12:05:38
>>167
いや、技術的に正確かどうかなんてどうでもいいんだよ。
納得させられるかどうかだけが問われる。

178:デフォルトの名無しさん
09/05/20 12:08:56
>>177
だから、単に自分の権威を見せつけたいというのと対抗意識の現れでしかないんだよ。

179:デフォルトの名無しさん
09/05/20 12:12:13
団塊世代は技術もなければ精神性も低い。
社会のゴミですね。

180:デフォルトの名無しさん
09/05/20 12:14:42
>>178
うん、そうかもね。
だから?w
それで出世あきらめるの?

181:デフォルトの名無しさん
09/05/20 12:17:26
>>180
技術盗んだら海外におさらばするつもり

182:デフォルトの名無しさん
09/05/20 12:18:53
もう俺が悪いって事でいいからけんかはよせ

183:デフォルトの名無しさん
09/05/20 12:26:22
あーあ 団塊世代のせいでまた人材が日本から流出していく。
さすが社会のゴミ 国賊 団塊世代は日本をつぶす気か

184:デフォルトの名無しさん
09/05/20 12:30:53
何でも他人のせいにするところはどっかの民族とそっくりだな。

185:デフォルトの名無しさん
09/05/20 12:40:46
>>183
団塊世代が悪いかどうかは知りませんが、うちの会社でも団塊世代の天下りを受け入れない方針になったみたいですよ。
まぁ、最近の世論的に天下りはまずいからでしょうが。

186:デフォルトの名無しさん
09/05/20 16:43:34
Windows上でLinuxを起動させたいのですが
VMwareソフトウェアのどのシリーズを選んだらいいのでしょうか?

187:デフォルトの名無しさん
09/05/20 16:44:38
vmware serverをダウンロードしてインストールしる

188:デフォルトの名無しさん
09/05/20 17:14:03
ようしゃなく英語やったorz

189:デフォルトの名無しさん
09/05/20 17:18:15
日本人のくせに英語もできないのか

190:デフォルトの名無しさん
09/05/20 18:17:16
敵性言語として長く使用を禁じられていたので…

191:デフォルトの名無しさん
09/05/20 19:13:14
じゃぁ なでしこでWMwareと同レベルのものを作ってください

192:デフォルトの名無しさん
09/05/20 19:15:49
今は属国なんだからしっかりしる!

193:デフォルトの名無しさん
09/05/20 22:47:50
#include <iostream>
using namespace std;
int main(){
int tmppl;
cin>>tmppl;
int const pl=tmppl;
int php[pl];
return 0;
}

あらかじめ数字を入力して変数tmpplに入れておき
const plの初期化の際にtmpplを使おうと思ったのですがコンパイルエラーが出ます
これは無理なんでしょうか?

また配列の要素数をキーボードで入力した数字で決めたいのですが、どうすればよいでしょうか?

194:デフォルトの名無しさん
09/05/20 22:54:38
>あらかじめ数字を入力して変数tmpplに入れておき
>const plの初期化の際にtmpplを使おうと思ったのですがコンパイルエラーが出ます
>これは無理なんでしょうか?

無理です

>また配列の要素数をキーボードで入力した数字で決めたいのですが、どうすればよいでしょうか?

std::vector

195:デフォルトの名無しさん
09/05/20 22:58:06
int *php=new int [pl];

196:デフォルトの名無しさん
09/05/20 23:07:30
>>194>>195
ありがとうございます!
初期化と代入の違いが何となく分かりました

197:デフォルトの名無しさん
09/05/21 00:31:36
それは初期化とか代入の話じゃなくて
配列の添え字はコンパイル時定数でなければならないという仕様の話じゃないのかい?
っていうか、前にもまったく同じ回答をした気配がする。

198:デフォルトの名無しさん
09/05/21 03:35:38
extern就職誌というのを知らなかったので試してみたら疑問がでました。
(main.cpp)
#include <iostream>
int global = 100;
extern void func(); //ココをexternとっても動作する
int main() {
std::cout << ::global << std::endl;
::func();
return 0;
}

(another.cpp)
#include <iostream>
extern int global;
void func() {
std::cout << ::global << std::endl;
}

俺の理解している範囲ではexternをつけると「この変数もしくは関数はグローバルだ。ただし定義自体はこのファイルでなくて
別のソースファイルでしているから気をつけろ。」ということなのだが、上記のソースではどうも動作が違う。
最初にメイン関数内でグローバル変数のglobalを表示するのはいいだろう。
次にグローバル関数のfuncに突入するのだがfuncはexternがついているので別ファイル、すなわち
another.cppで定義されている。それで実行は可能なのだが試しにメインのextern void func()からexternをとってみた。それでも
動作したのだが、なんで動くんだ?

199:デフォルトの名無しさん
09/05/21 03:57:19
>>extern就職誌

素晴らしい

200:デフォルトの名無しさん
09/05/21 03:59:50
で、とりあえず、externは、「この名前がグローバルだ」とするためのもの。
そのコンパイル単位で定義されているかどうかは関係ない。

それと、関数はデフォルトでextern。
つまり、staticを付けないで宣言(定義も)されたものは、全てexternと同等となる。

201:デフォルトの名無しさん
09/05/21 04:00:00
海外転職誌みたいだな。

202:デフォルトの名無しさん
09/05/21 04:00:17
本題に答えろ

203:デフォルトの名無しさん
09/05/21 04:07:44
URLリンク(eow.alc.co.jp)

通勤医師の就職誌か。

204:デフォルトの名無しさん
09/05/21 04:12:30
おまえ、辞書引いたのか。。

205:デフォルトの名無しさん
09/05/21 08:10:30
>>200
んー、よくわからんのですがとりあえず関数はおいておいて変数については
「この変数はグローバルだ。ただし定義自体はこのファイルでなくて 別のソースファイルでしているから気をつけろ。」
この定義は間違っていますか?それとも合っている?今、同じソースファイルで宣言だけでなく定義もしたらエラーに
なったのですが。。わかりやすい説明モトム
(main.cpp)
#include <iostream>
extern int global;
int global = 4;
void func();
int main() {
std::cout << ::global << std::endl;
::func();
return 0;
}

(another.cpp)
#include <iostream>
void func() {
std::cout << ::global << std::endl;
}


206:デフォルトの名無しさん
09/05/21 08:20:02
どんなエラーだよ
まさか宣言しないシンボルを使おうとかしてないよな

207:デフォルトの名無しさん
09/05/21 08:24:49
another.cppの中ではglobalが何者かわからん。

208:デフォルトの名無しさん
09/05/21 08:45:54
動けばいいんだよ。動けば。

209:デフォルトの名無しさん
09/05/21 11:26:55
コンパイルできない なんでか教えて

#include <iostream>
class Point {
private:
int m_x;
int m_y;
public:
Point(int x = 0, int y = 0): m_x(x), m_y(y) {}
void show() {
std::cout << "m_x = " << m_x;
std::cout << ", m_y = " << m_y << std::endl;
}
Point *operator+(Point *p) {
m_x = m_x + p->m_x;
m_y = m_y + p->m_y;
return *this;
}
};

int main() {
Point *p1 = new Point(3, 4);
Point *p2 = new Point(5, 8);
p1->show();
p2->show();
Point *p3;
p3 = p1 + p2;
p3->show();
return 0;
}

210:デフォルトの名無しさん
09/05/21 11:50:47
>>209
Point *operator+(Point *p) {
...
return this;
}

p3 = *p1 + p2;

コンパイルするだけならこう変更する

211:デフォルトの名無しさん
09/05/21 11:53:23
ありがとうございます
仮にp3 = p1 + p2;
を計算させたい場合は関数定義はどうすればいいですか?

212:デフォルトの名無しさん
09/05/21 13:01:54
ポインタ演算をオーバーロードするのはオススメできない
どうしてもやりたいなら「フレンド関数 オーバーロード」あたりでぐぐれ

あと補足だけど>>210はp1==p3になるから気を付けてね

213:デフォルトの名無しさん
09/05/21 15:22:46
了解しました。

214:デフォルトの名無しさん
09/05/21 16:32:56
std::cout << "ABCDEFGHIJKLMN";
std::cout << "\r12345\n";

とすると12345ABCDEFGHIJKLMNと表示される。
\rは復帰、現表示位置がその行の先頭に移動する。

というのはわかるが、一体何の役に立つんだこれ?
マジで使ったことある人いたら教えてくれ

215:デフォルトの名無しさん
09/05/21 16:40:09
歴史的遺物

216:214
09/05/21 16:41:05
興味程度にどんな歴史的遺物か教えてくれ

217:デフォルトの名無しさん
09/05/21 16:42:37
コマンドライン上で簡易進捗バー出すのに便利。

218:デフォルトの名無しさん
09/05/21 16:49:36
>>205
externは、別のファイルで定義しているリソース(変数とか)を
このファイルでも流用するよ、っていう宣言。
C++では、変数名・関数名などは、その変数・関数を使用するより前に、
それが何なのかを同じファイル中でコンパイラに教えてやらないとエラーになる。

お前さんのソースの中で、グローバル的に使用されているのは、
void func()とint globalの2つ。
func()を使用しているのはmain.cppだが、ここではfunc()を使用するより
前に
void func();
と宣言してあるから無問題。
一方、another.cpp内で使用されているglobalは、定義はmain.cppでしているが、
another.cpp内で宣言していない。
だからコンパイラはanother.cppのglobalという識別子が何なのかという
情報を教えてもらってないのでエラーになる。


219:デフォルトの名無しさん
09/05/21 16:52:01
歴史というなら、それこそ5,60年代とかに遡れるんじゃね?

Wikipedia項目リンク

220:デフォルトの名無しさん
09/05/21 17:05:44
>>214
つか、それ12345FGHIJKLMNって表示されないか?
処理系依存なんかな。

221:デフォルトの名無しさん
09/05/21 21:03:52
すまん質問させてもらう

void *operator new(size_t size,const char *pname, int nline );
#define new new(__FILE__, __LINE__)

とnewを実行したソース名と行数を取ってるんだが
これのdelete版が出来ない
もしかしてdeleteの方は無理?
STL使ったら、妙なdeleteが増えて特定したいんだ


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5387日前に更新/231 KB
担当:undef