[表示 : 全て 最新50 1-99 101- 201- 2chのread.cgiへ]
Update time : 06/26 19:16 / Filesize : 63 KB / Number-of Response : 255
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

スレを勃てるまでもないC/C++の質問はここで 14



1 名前:デフォルトの名無しさん [2010/03/23(火) 00:57:51 ]
スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。

過去ログ
スレを勃てるまでもないC/C++の質問はここで
pc11.2ch.net/test/read.cgi/tech/1167476845/
スレを勃てるまでもないC/C++の質問はここで 2
pc11.2ch.net/test/read.cgi/tech/1178503366/
スレを勃てるまでもないC/C++の質問はここで 3
pc11.2ch.net/test/read.cgi/tech/1187521676/
スレを勃てるまでもないC/C++の質問はここで 4
pc11.2ch.net/test/read.cgi/tech/1221633708/
スレを勃てるまでもないC/C++の質問はここで 5
pc11.2ch.net/test/read.cgi/tech/1230516307/
スレを勃てるまでもないC/C++の質問はここで 6
pc11.2ch.net/test/read.cgi/tech/1231564903/
スレを勃てるまでもないC/C++の質問はここで 7
pc11.2ch.net/test/read.cgi/tech/1232983248/
スレを勃てるまでもないC/C++の質問はここで 8
pc12.2ch.net/test/read.cgi/tech/1235921779/
スレを勃てるまでもないC/C++の質問はここで 9
pc12.2ch.net/test/read.cgi/tech/1240022781/
スレを勃てるまでもないC/C++の質問はここで 10
pc12.2ch.net/test/read.cgi/tech/1242300936/
スレを勃てるまでもないC/C++の質問はここで 11
pc12.2ch.net/test/read.cgi/tech/1245059383/
スレを勃てるまでもないC/C++の質問はここで 12
pc12.2ch.net/test/read.cgi/tech/1248010352/
スレを勃てるまでもないC/C++の質問はここで 13
pc12.2ch.net/test/read.cgi/tech/1260842197/

72 名前:67 mailto:sage [2010/03/25(木) 10:41:55 ]
初期宣言時   char name[MAX_PATH] = {'\0'};
変数クリア時  memset(name, '\0', MAX_PATH);

解決しました、ありがとうございます。

73 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 14:26:32 ]
Modern C++ Designにpointeeって出てきたんですけどこれって何者なんですか?pointerの誤植じゃないですよね?

74 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 14:43:36 ]
employ 【動】雇用する
employer 【名】雇用主
employee 【名】従業員
とか言うのと同じ

75 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 14:48:29 ]
ポインタが示す先ってこと?

76 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 14:51:42 ]
int pointee;
int *pointer = &pointee;

77 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 14:55:01 ]
>>72
memset(name, '\0', sizeof name); の方がよくない?

78 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 14:58:42 ]
マクロ定数で決まってる配列のサイズを、sizeofにわざわざ変える必要はない。

79 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 15:46:16 ]
メッセージを表示させて時間が来たら消します

i= MessageBox(hwnd, Message, Title, MB_OK);
Set timer
時間経過→ SendMessage(?,WM_KEYDOWN,VK_RETURN,0);
Killtimer

SendMessageでMessageBoxにエンター入力して表示を消すつもりです。
WM_KEYDOWNにVK_RETURNを送るとエンターの入力になりますよね?
また、MessageBoxのハンドルをどうやって所得すればよいのか解りません。


80 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 15:48:39 ]
スレチ



81 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 15:54:32 ]
>>79
MessageBox 使わず、自分で CreateDialog すればいいじゃん。
SendMessage は控えよう!

82 名前:79 mailto:sage [2010/03/25(木) 16:18:07 ]
API向けのスレでした…すみません。
CreateDialogも調べてみます。

83 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 16:47:35 ]
>>74,76
thxです

84 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 21:32:49 ]
カンマ区切りの文字列sがあったとして

foo(strtok(s, ","), strtok(NULL, ","), strtok(NULL, ","));

なんて呼び出しをしたいんだけど、strtok は第一引数の場所から
順番に呼び出されるって保証がありますか?

85 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 21:34:34 ]
無い

86 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 21:34:40 ]
ない

87 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 21:36:03 ]
ない

実際の実装ではむしろ逆から呼ばれる傾向にある
(後ろの引数からスタックに詰むため)
これも必ずそうというわけではないが

88 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 21:40:22 ]
>>85-87
面倒でもいったん変数に取り出す必要があるんですね。
どうもです。

89 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 23:37:22 ]
fopen("1.txt",fp)後に while (fgets(s, 256, fp) != NULL) {Line++}で行数を読み込みます。
Lineが100あり、30行目の内容を読み込みたい時ですが、

int a=30,Line=0;
while (fgets(s, 256, fp) != NULL) {
Line++
if(Line=a) 適当な関数(s);


上の記述だと1〜30まで繰り返しますが、ダイレクトに30行目を読み込む方法ってあります?

for()

90 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 00:30:22 ]
1行の長さが不定なら前から見ていくしかないよ



91 名前:デフォルトの名無しさん [2010/03/26(金) 02:40:50 ]
BOOLEAN BOOL boolean bool
どれ使えばいいの?(´;ω;`)

92 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 03:06:31 ]
BOOLかbool

93 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 06:25:42 ]
ありがとう

94 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 10:41:27 ]
>>89
そのソースだと全行で関数が呼び出されるぜw

95 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 10:45:48 ]
algorithmのstd::remove()について質問です。

std::vector<int> v;
v.push_back(0);
v.push_back(1);
v.push_back(2);
std::remove(v.begin(), v.end(), 0);
std::remove(v.begin(), v.end(), 1);
printf("%d", v.size());

上記のようにすると、最後のvのサイズは1を期待するのですが3のままです。
でも、v[0]には本来の0ではなく2が入っています。
v[1]もv[2]も2が入っています。

std::remove()の代わりにvector::erase()を使用すれば、
v.size()は1を返します。

std::remove()はそういうモノなのでしょうか?

VC2008で確認しています。




96 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 10:55:20 ]
>>95
そうです
期待通りの動作をさせるには

v.erase(std::remove(v.begin(), v.end(), std::compose2(
std::logical_or<bool>(),
std::bind2nd(std::equal_to<int>, 0),
std::bind2nd(std::equal_to<int>, 1)))

とする必要があります

97 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 10:57:09 ]
あ、ごめん

v.erase(std::remove(v.begin(), v.end(), std::compose2(
std::logical_or<bool>(),
std::bind2nd(std::equal_to<int>, 0),
std::bind2nd(std::equal_to<int>, 1)),
v.end())

だった
removeは残す要素の候補を前に集めるだけで、実際の削除は
しませんのでstd::eraseもしくはメンバ関数eraseを使います

98 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 11:18:20 ]
>>97
erase 使うのならそんな面倒なことせず
remove を erase に置き換えれば良いだけだと思うけど。

99 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 11:56:46 ]
v.erase(std::remove(v.begin(), v.end(), 0), v.end());
v.erase(std::remove(v.begin(), v.end(), 1), v.end());

これでいいね
removeは第三引数にリファレンスを取るのでlogical_orが使えないな

100 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 12:00:18 ]
使うとしたらremove_ifとboost::bindを組み合わせるかだ



101 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 12:05:16 ]
やっと動いた
これは読みにくいわ(^ω^;)

v.erase(
std::remove_if(v.begin(), v.end(),
boost::bind(
std::logical_or<bool>(),
boost::bind(std::equal_to<int>(), _1, 0),
boost::bind(std::equal_to<int>(), _1, 1)
)
),
v.end());

102 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 12:08:36 ]
ちなみにboost::bindを使ったのは、標準C++にはstd::compose2が無いためです

103 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 15:02:28 ]
質問は

>std::remove()はそういうモノなのでしょうか?

であって、そういう汚いコードに興味はありません。

104 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 16:54:30 ]
boost使ったからまだ綺麗なんだぞ
もっと汚いコードは山ほど書いてきた

105 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 17:12:19 ]
>>104
だから、コード書いてくれなんて誰も頼んでないつーの。
オナニーはよそでやってくれ

106 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 17:23:03 ]
ときどき void main って書くやついるよね。
なんなんだろうね。馬鹿じゃないかと思うよね。

107 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 17:28:36 ]
まともな事には答えられないからって、同じ話題をループさせようとすんなよw

108 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 17:46:36 ]
オブジェクト(インスタンス)を生成するときに変数をポインタにするのとしない場合が
ある理由を教えてくださいませませ

Unko* unko_kusai

Chinko chinko_1

109 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 17:51:11 ]
>>108
生成パターンを使うと大抵ポインタにならないか?
それから仮想関数で使う場合もポインタにしなければならない

110 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 18:04:49 ]
別に参照でもいいよ



111 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 18:06:33 ]
>>108
変数にすると、生存期間をコントロールできない。

ポインタなら自由にコントールできる。
けど自由な分手間もかかるし、プログラマが責任を持つ必要がでてくる。

112 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 18:08:00 ]
>110
仮想関数の場合な
使う場面は限られるけど

生成パターンでもシングルトンだと参照の場合もあるし

113 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 18:16:56 ]
Hoge hoge;

{
HogeBase &h = hoge; h.vfunc();
}

ポインタじゃなくてもvtable参照してくれますよ

114 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 20:12:27 ]
>>113
知ってるから
わざわざ書かなくてよろしい

115 名前:108 mailto:sage [2010/03/26(金) 23:44:05 ]
レスありがとうございます
今勉強してるサンプルプログラムでポインタあ・なしの両方が出てきて、何故に使い
分けてるのか疑問だったのですが、一方は複雑なことやる必要があるからポインタ、
もう一方はその必要が無いなら安全なポインタ無し という風に使い分けてるという解釈で
おkですかね?

116 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 23:46:46 ]
>>115
自動で済ませられるなら自動に任せるって琴田

117 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 00:57:48 ]
>>99
初回のremove()の結果を二回目のremove()の第二引き数とすればerase()は一回でいいんじゃね?
>>101
だとすればわざわざそんなややこしいbind()するメリットもないんじゃね?

118 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 01:46:00 ]
>>115
メモリリークするバグを潰すのは大変だ。と前置きをした上で。

ポインタにしなかった場合、その変数のスコープから抜けるときに
変数の後始末を自動でやってくれる。つまりメモリリークの心配がない。
これは色々処理をする途中で、エラーが発生したら中断、みたいな処理をするときにはとても楽。
ポインタを使った場合、中断するときにnewしたオブジェクトを正しく全てdeleteしないと
メモリリークになるのでよく注意する必要がある。

一方で、>>109の言うようにオブジェクトの生存期間を自分で管理したい場合や、
継承を使ったオブジェクトを使いたい場合、
もしくは大きなオブジェクト(大きな配列など)はポインタを使う必要がある。

C++であれば、ポインタでありながら、メモリリークの心配がいらないスマートポインタという
仕組みがよく使われる。(boost::shared_ptrなど)
これを使うと普通のポインタよりも実行速度がやや遅くなるが、普通は気にするほどではない。

119 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 01:54:03 ]
速度気にならなければ、動的メモリ確保をすべて乗っ取って
ガベージコレクションした方が良い。
ヘッダ変更だけで済む

120 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 01:55:54 ]
はじめからnewを使わないという戦略もある
STLをうまく使えば、スマートポインタ、ガベージコレクション、new
はほとんどいらんだろう。



121 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 05:50:38 ]
>>117
>初回のremove()の結果を二回目のremove()の第二引き数とすればerase()は一回でいいんじゃね?

アホ
removeの戻り値は削除候補の先頭だ
前に集められた候補の中に次に削除したい値が含まれているので
その方法はダメ

>だとすればわざわざそんなややこしいbind()するメリットもないんじゃね?

だったらお前が何か書いて見せろや
口だけ出して何もしない奴が一番嫌いだな

122 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 08:34:09 ]
>>121
間抜けで頓馬で馬鹿と来ちゃ、どうしようもないな。

・間抜け
削除候補が集められるのは前じゃなくて後ろだよ。
つまり、「後ろに集められた削除候補の先頭」が戻されるって訳。

・頓馬
自分で確認すれば間違いに気付けたのにそれさえしないんだからな。

・馬鹿
その上、何か書いて見せろって自分が書けもしないのによく言うよ。

馬脚を現わした挙句に自ら墓穴を掘ったわけだ。

123 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 08:43:16 ]
>>122
間抜けのアホはお前だ

>削除候補が集められるのは前じゃなくて後ろだよ。
>つまり、「後ろに集められた削除候補の先頭」が戻されるって訳。

そんなもん常識だろ
>>121のどこにこれを否定するような文が書いてある?
>>117の通りにしたら1が削除されずに残ってしまうだろ
実行して試してみ

それとも図星を突かれて悔しくてファビョったのか?

124 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 08:52:48 ]
二人とも言い合いせずに特に>>122はプログラム例を書いて示せ
お前さんの言いたい事はこういう事だろ?

std::vector<int> v;

v.push_back(0);
v.push_back(1);
v.push_back(2);

v.erase(std::remove(v.begin(), std::remove(v.begin(), v.end(), 0), 1), v.end());

std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
std::cout << std::endl;

std::printf("%d", v.size());

125 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 09:35:13 ]
>前に集められた候補の中に

126 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 09:38:05 ]
>>125
合ってるじゃないか
前に集められた「削除から外される」候補の中にと文脈からは取れるだろ

>前に集められた候補の中に次に削除したい値が含まれているので

これをよく読め

127 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 09:39:47 ]
要するに>>122はイチャモン付けて喧嘩したいだけなんだよ
相手が誰であろうと構わないわけだ

だったら痛くも痒くもないネット内でのビビリ喧嘩などせずに
街に出てDQNに喧嘩吹っ掛けてボコボコに殴られてこい

128 名前:122 mailto:sage [2010/03/27(土) 09:51:16 ]
んじゃ、>123のために私の書いたのを貼っておく。
まぁ、>124と核は同じだね。
--
#include <algorithm>
#include <cstdio>
#include <vector>

int main()
{
std::vector<int> v;
v.push_back(0);
v.push_back(1);
v.push_back(2);
for (int ic = 0; ic < 10; ++ic) {
v.push_back(ic % 5);
}
v.erase(std::remove(v.begin(), std::remove(v.begin(), v.end(), 0), 1), v
.end());
for (std::vector<int>::const_iterator it = v.begin(); it != v.end(); ++i
t) {
printf("%d\n", * it);
}
return 0;
}
--
それはさて。
>>121のどこにこれを否定するような文が書いてある?
>121には「前に集められた候補」とあるんだけどな。
まぁ、「削除候補とは書いてない」と言い出すだろうからまぁいいや。

129 名前:122 mailto:sage [2010/03/27(土) 09:59:35 ]
うぉっ、80カラムでぶった切れているから難癖つけられる前に問題の行だけ再掲。
--
v.erase(std::remove(v.begin(), std::remove(v.begin(), v.end(), 0), 1), v.end());
for (std::vector<int>::const_iterator it = v.begin(); it != v.end(); ++it) {
--
つーか、書いている間に予想通りのレスがついてて笑えた。
無茶しやがって……

130 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 10:00:31 ]
>>128
>>126

お前の目はフシアナだ



131 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 10:44:25 ]
>>126
>removeの戻り値は削除候補の先頭だ
>前に集められた候補の中に次に削除したい値が含まれているので

一行前に削除候補って書いてあるのに、次の行の候補が「削除から外される」候補と
読むのはかなり無理がある

132 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 10:48:56 ]
>>131
お前の頭が悪いからだ
その分だとプログラムもバグだらけだろう

133 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 11:00:02 ]
>>132
いい加減見苦しい。
説明が下手か勘違いしていたのかは詳らかではないが、
そもそも>117で巧くいくことははっきりしている。
他人を嫌う前に、ご自身の言動を見直してみては如何?

134 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 11:03:36 ]
>>133
見苦しいのはお前の方
こちらの説明が間違ってないのに間違って言い張るお前は馬鹿

135 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 11:08:20 ]
>>120
STLをうまく使うにはスマポは必須だけどね。
スマポでもshared_ptrならmake_sharedを使えばnewもいらず例外安全性も確保されるようになるし。
STL+shared_ptrでnewもガベコレもいらなくなるね。


136 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 11:11:45 ]
>>117はせっかっく良いことをいったのに、挑発レスを受け流せずに台無しだ。


137 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 11:13:16 ]
>>117は単純馬鹿だからな
この分だと仕事場でも>>117は同僚とぶつかってばかりだろう

138 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 11:18:35 ]
>>121
> その方法はダメ
見苦しい弁解まだ〜w

139 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 11:31:30 ]
的外れな突っ込みをするバカが一番悪いだろw

140 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 11:33:44 ]
>>99
これで単純明快なのにケチを付ける奴が一番悪い



141 名前:115 mailto:sage [2010/03/27(土) 12:05:39 ]
皆様詳しいレスありがとうございました。
色々まだ自分の知らないワードが出てきたのでググって勉強しますぉ。

142 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 21:51:58 ]
SetTimerでタイムアウト後、タイマのプロシージャの中でKillTimerしても良いんでしょうか?
プロシージャ外じゃないと駄目なんて事は


143 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 22:13:10 ]
>>142
なんのSetTimer?
Win32ならWin32スレで聞くと詳しいぞ


144 名前:142 mailto:sage [2010/03/27(土) 22:21:24 ]
SetTimerはWin32でした、すみません。

145 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 23:14:51 ]
gnuplotでリアルタイム解析をするクラスを作りたいんだけど参考になるものなにかありますか?

146 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 23:16:26 ]
なんのリアルタイムかわからん
アクセス解析か

147 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 23:22:33 ]
物理の数値計算です
3次元での粒子の位置などを見ます

148 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 23:37:52 ]
gnuplotは表示ツールであって解析ソフトではないと思うが。
一応「gnuplot C++」あたりでググればそれっぽいページは出てくるな。

だが、もう少し本当にやりたいことは何なのか考えてみた方がいいと思う

149 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 23:49:26 ]
>>147
解析を行いたいのか、解析データはあるからプロットだけしたいのか?による。


150 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 00:13:05 ]
パイプ開いてコマンドを出力すればリアルタイムに描画してくれるよ
ただ糞遅いから結局のところ違う描画ライブラリ使うことになるだろうけど



151 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 01:02:21 ]
>>149
後者です

>>150
別にいいのがあるならどんなのがあるか教えてもらえるとありがたいです

152 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 01:11:06 ]
home.f08.itscom.net/okuya8/nnodysimulation.pdf

ここの5.8章みたいなことがしたいということです
説明下手ですいません

153 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:23:54 ]
C++とJavaの両方を勉強する意味ってありますか?何か範囲がかぶってる気がしまして。

154 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:36:05 ]
>>153
英語とフランス語の両方を勉強する意味ってありますか?

155 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:38:14 ]
意味はあるに決まってるが、
一方を勉強したらもう一方を勉強するのはかなり楽

156 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 17:07:03 ]
英語とフランス語というより
英語とドイツ語ってぐらいか

157 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 17:14:29 ]
スペイン語とポルトガル語くらいじゃないか

158 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 17:15:44 ]
例えが分かりにくくないかw
要するにどっちも覚えたら最強ってことだ

159 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 22:16:31 ]
>>153
> C++とJavaの両方を勉強する意味ってありますか?何か範囲がかぶってる気がしまして。
仕事がかぶってないからいいんじゃね?


160 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 23:47:57 ]
両方覚えてようやく半人前だと思うぞ。



161 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 23:53:23 ]
>>153
C++を学べばjavaもc#も軽い軽い

162 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 23:55:26 ]
いや重いよ

163 名前:デフォルトの名無しさん [2010/03/29(月) 00:25:58 ]
64bit PCでのドライバの操作を含むアプリを開発する場合。
32bitビルドのアプリ(wow64で動作)と64bitドライバの組み合わせで動作させることは可能でしょうか?

DeviceIoControlなどのドライバとのIOなど、その他動作面で問題ないでしょうか?

164 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 00:52:16 ]
VisualStudio2008でビルド後にVMware内で起動させてデバッグするにはどうすればよいでしょうか?
できればF5キー一発ぐらい自動的な方法でお願いします

165 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 08:55:43 ]
>>163
どちらも作り方しだいです。

>>164
VMware 内で VS を動かしてください。

166 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 10:00:54 ]
>>162
少しワロタ

167 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 16:00:33 ]
>>153
並行して設計できるようにならないと無意味

168 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 16:01:03 ]
訂正:設計できるように→設計もできるように

169 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 16:45:38 ]
>>165
すみませんが実機でビルドしてVMwareにロードさせる方法を教えてください

170 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 17:09:24 ]
実機でビルドしたならそのまま動かせばいいだろ。
開発機でビルドしたというなら話は別だが。



171 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 17:15:52 ]
>>169
逆に普段どうやってるんだ?
隣のPCで動かすのと同じだろ。

172 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 17:34:38 ]
プロジェクトフォルダごとDVCSのリポジトリにコミットして
VMWare上の環境でそれをcheckout

173 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 18:28:51 ]
それを自動化すればいいじゃん。

174 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 14:27:00 ]
public継承する場合、派生クラスは基底クラスについてよく知っていると考えておk?

175 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 14:35:56 ]
ある右辺を有する配列の番号?を得るにはどうしたらいいでしょうか?

例えば配列int x[3]の3つの要素がそれぞれ
1,3,5であるが、どのx[]がそれぞれ1,3,5を有するかわからない場合に、
maxたる5を有するx[?]の?を出力したいのです。

特に、これの2次元配列版の出力方法を教えていただきたいのですが


176 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 14:37:25 ]
普通に検索する

177 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 16:35:35 ]
配列の要素数がそんなに大きくなければ、for文で先頭から探せばいいんでねーがな。

178 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 16:45:18 ]
ユニークなら格納方法を変える
ユニークで無いなら考察無意味

179 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 17:19:02 ]
>>174
よくではなく、ある程度知っていればOK。

180 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 22:58:55 ]
#include "a.h"

と書いた場合
・そのファイルと同じディレクトリのa.h
・コンパイルしたディレクトリのa.h
のどっちが選ばれるのかは決まってますか?



181 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 23:10:50 ]
未規定

182 名前:デフォルトの名無しさん [2010/03/31(水) 01:32:58 ]
>>180
サーチパスの優先順位の高い方

183 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 02:05:31 ]
C++どれくらいで基本身につきますか?
ちなみに今中学生です

184 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 02:58:10 ]
perl出身なんだだけど、どうもCが無意味にめんどいように感じてしかたありません。
一言で言うと、制限とか宣言とか制約とか多すぎます。今、1変数1バイトの所まで知ってやる気がなくなってきました。

例えばですけど、こんなふうに処理が書きたいです

my %fanc = (
'fanc_a' => sub{ なんか処理 },
'fanc_b' => sub{ なんか処理 },
)
my @fanc = ('fanc_a', '引数');  #これ外部から取り入れた文字列
my $code = '??';        #これも外部から取り入れた何かのコード

$code =~ s/(変換しますお)/$fanc{"$fanc[0]"}->($fanc[1], $1);/eg;


完全に頭の中がperlに支配されてるんです。perlしかできないから。
Cを始めた理由は「exeなGUIを作りたかった」ってだけなんですが、もしかしてC以外を覚えたほうがいいでしょうか?
なんでもいいからなんかお勧めしたり、Cを肯定したり、助言したり、こんな情報みれやとURLを貼ったりしてほしいです。
どうすればいいのか全てを見失ってきそうです。

185 名前:デフォルトの名無しさん [2010/03/31(水) 03:05:47 ]
perl windows gui の検索結果
ttp://www.google.co.jp/search?hl=ja&source=hp&q=perl+windows+gui&lr=&aq=f&aqi=g3g-s1g6&aql=&oq=&gs_rfai=

186 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 03:17:46 ]
>>183
人によるとしか。すぐできる奴もいれば10年かけてもダメな奴もいる。
数学・英語・料理・ゴルフ・・・なんでも同じだな。

187 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 03:19:19 ]
ありがとうございます。
でもperlをexeにしたら、一通りやりましたが何を使ってもバグるんです。
警告なしで関数が動かずにスルーされてたりするんです。ひどいですよね。

188 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 03:20:26 ]
ずっとperlだけをやるのが一番いいだろ。

189 名前:デフォルトの名無しさん [2010/03/31(水) 03:28:50 ]
perlが得意ならそのライブラリのソース読んで自作すればいいんじゃないのかな?
もしくは修正する。

結局、言語部分でしっくりきてないようだけどさ、
どちらにしてもWindowsAPI(exeなgui)などの知識が別途必要になってくる訳だし。

190 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 03:39:22 ]
Cの方が文法がシンプルで低級高速でバグが見つけやすくて綺麗に書けます



191 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 05:46:09 ]
>>180
一般的には前者。

>>182
それは不等号で括った場合じゃないのか?

192 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 08:48:16 ]
>>184
C#がおすすめ

193 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 17:03:26 ]
C++で簡単なゲーム作るのに初心者向けの本ぐらいの知識があれば出来ますか?
やっぱりwindowsAPIの知識だとか必要

194 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 17:13:43 ]
>>190
嘘付けアホ
泥沼化したらまずバグを見つける事は不可能に近いぞ

195 名前:デフォルトの名無しさん [2010/03/31(水) 17:15:55 ]
プログラムの中のプログラムを書く場合にプログラムの中のプログラムの文がStringだと
処理が重いので
どうやればいいですか?
アイディアが浮かびません。
本とかに乗ってるやり方教えてください。

196 名前:デフォルトの名無しさん [2010/03/31(水) 17:23:01 ]
勃起するまでもないまで読んだ

197 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 17:45:01 ]
>>195
質問の意味が全然わからねぇ。
プログラムの中のプログラムってどういう意味だ?

198 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 18:01:03 ]
デザインパターンのインタープリターパターンみたいなやつです。

199 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 18:03:56 ]
構文解析木/抽象構文木というのを作って、それを元に処理する



200 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 18:08:25 ]
意訳

関数中で文字列操作をするのだがStringクラスを使うと遅い
これを改善する方法はないだろうか?
私は馬鹿だ
信頼性のある方法を教えろ



201 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 18:14:16 ]
>>199
なるほど、パーサーがパースした物を初めから作れということですね。
しかし構文解析木の接点はstringじゃないんですか?
>>200
一行目が違います。

202 名前:184 mailto:sage [2010/03/31(水) 18:54:50 ]
ありがとうざいます。
他のスレとか見ても、言語に俺のようないちゃもん付けてる人いないので、
どうも俺の脳みその構造が間違ってたみたいです。

少し頭の構造を作り変えるべく勉強してまいります。
ありがとございました。

203 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 19:00:41 ]
>>202
C言語はまだマシだがC++は発狂する難しさだから
今のうちに別言語のほうがいいんじゃない?
exeでさえ良ければrubyならexerbとかあったような気がするから
perlでもあるでしょ。

204 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 20:24:48 ]
stringクラスの使い方が悪いから遅いってこともあるかと

205 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 23:37:54 ]
>>203
C++ってそんなに難しいの?
独学では無理なレベル?

206 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 23:42:08 ]
>>205
> 独学では無理なレベル?
俺は趣味プログラマでC++を独学でやっているが、
実装の都合をユーザーに押しつけるような代物。

バッドノウハウと「奥が深い症候群」
ttp://0xcc.net/misc/bad-knowhow.html

これを地でいくC++は、ホント好きor仕事じゃないと
やってらんないと思う。

207 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 23:57:14 ]
>>206
Cから移行しようかとおもってたんだが何か難しそうですね。
取り合えず全部の機能を使おうとするんじゃなくてbetter Cとして練習してみます。ありがとう

208 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 00:04:24 ]
>>207
> 取り合えず全部の機能を使おうとするんじゃなくてbetter Cとして練習してみます。
うん、それが正解だと思うよ。
難しいの使ってる俺SUGEEE
ってなれる性格じゃないとちょっと嫌になりかねないし。


209 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 00:27:29 ]
C++は昔からいいところもあれば悪いところも多いって位置付けだったのに、
最近はC++を本気で絶賛してる子が増えてる気がする
怖いね

210 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 00:31:22 ]
統計とってから増えてるとか言えよカス
てめーの感覚なんざ誰も信用しねぇよ



211 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 01:05:56 ]
マジレスすると、Cでも面倒だと感じるなら、C++から手を出すなんてやめとけ
C#→C→better CとしてのC++の順にやり、その上で、必要であればC++をやれ

212 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 01:13:06 ]
C++よりCで作る方が面倒だって
入門書の例題レベルなら話は別だろうけど

213 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 01:28:05 ]
>>212
そういう意味で言ったんじゃないんだけどな

214 名前:デフォルトの名無しさん [2010/04/01(木) 03:50:26 ]
ほんとC++はbeter Cがいいよ。

215 名前:デフォルトの名無しさん [2010/04/01(木) 03:59:07 ]
www.nicovideo.jp/watch/sm8114121
こんな感じでゲームが作りたいです。
どうしたらこんな感じで作れるようになりますでしょうか?
参考書でも良いのでアドバイスお願いいたします。

216 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 08:58:35 ]
>>215
春休み中に作るのは不可能。

217 名前:デフォルトの名無しさん [2010/04/01(木) 09:20:10 ]
pimpl等 動的に確保したオブジェクトへのポインタをクラスのメンバとして持つ場合、
普通の生ポインタではなくスマポを使うようにといわれています。
深いコピーを想定しているため共有する必要はないので、必ずしもshared_ptrである必要はありません。
この場合は実際,
std::shared_ptr(まだ標準でない)
std::unique_ptr(まだ標準でない)
std::auto_ptr(標準)
boost::shared_ptr(boostが入っていない環境では使えない;準標準)
boost::scoped_ptr(boostが入っていない環境では使えない;準標準)
と5通りほど考えられると思うのですが
普遍性、速度などの面でどのスマポがいいのでしょうか。

よろしくお願いします。

218 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 11:14:29 ]
その場合は生ポで十分

219 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 15:15:46 ]
>>217
>普通の生ポインタではなくスマポを使うようにといわれています。
どういう理由でスマートポインタが必要なんだ?
それががわからないのに選択できるわけがない。

そういう言った本人にお伺いを立てる方が100倍速いわ。

220 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 15:22:20 ]
何でもかんでもスマポスマポ言う奴は雑魚



221 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 15:59:34 ]
>>220
まあお前が雑魚なんだけどな

222 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 16:05:40 ]
>>221
雑魚乙でありますwwwwwww

223 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 16:23:50 ]
まぁ雑魚は大概複数で群がっている

224 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 19:59:07 ]
>>217
shared_ptrをpimplで使うのは、不明な型を安全にdeleteできるメリットがある。この理由のためだけにpimplで使っても良いよ。
pimplの為に使うのであれば、shared_ptrの複製を作らない可能性が高く他の方式と速度の差は殆ど無い。

225 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 20:41:32 ]
>>218-217
動的に確保したオブジェクトへのポインタをクラスのメンバとして持つ場合、
スマートポインタを用いるのが間違いが起こりづらく可読性も高いという
コンセンサスがC++界にはあるのかと思っております。

>>224
動的削除子により不完全型を持てるというやつですね。


226 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 21:59:41 ]
スマートポインタ好きもそうでないのもいると思うが、
あれ可読性は高くないだろ?
見た目はかなり汚い

227 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 22:02:05 ]
>>226
一目でスマポと分かるし

228 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 22:12:15 ]
まじめにCをやることになって VC++2008を入れたら、すっげーめんどくさいことになりました。
今まではサクラエディタとか秀丸とかそんなのを使ってて、ALT+Z を押したら編集中のコードがそのままexeになって勝手に保存されてる仕組みでした。
と言うかプロジェクトってなんですか?
統合環境とやらは使ったほうがいいんですか?
使ったほうがいいなら、VC++2008のサイト教えてもらえないでしょうか?(検索したら記述のサイトばっかり出てくる)

229 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 22:15:27 ]
真面目に大規模なコード組むならIDEがあれば楽なことには違いない。
最後の行は何が聞きたいのかイミフ

230 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 22:16:25 ]
>>228
makeを書けないなら統合環境使っとけ。



231 名前:228 mailto:sage [2010/04/01(木) 22:36:05 ]
今の所、コンビニに行くのにメリーゴーランドに乗って出かけるような気持ちでいっぱいです。
makeのためなら使わないかも・・・

たまたま連休がめぐってきて、なおかつやる気があった日に使い方を調べてみるかもしれません。

232 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 00:09:49 ]
エディタ・ビルド・デバッガが融合してるのは便利。もう戻れない。
Edit and Continueを初めて見た時は感動した。

233 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 10:45:38 ]
makeをIMEに通したら負けに変換される

234 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 11:37:39 ]
>>231
まずは付属のドキュメント読んでチュートリアルやれ
中途半端な知識を応用して手探りで取り組むより遥かに良い

235 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 11:59:07 ]
>>228
「まじめにCをやることになって」ということだけど、この意味がわからないね。
まじめにやるのなら統合環境を使えるようになるのは当然のことだと思うし、
その気があれば数時間もあればビルドぐらいできるようになるはず。

Windows に依存したくないとか、趣味のプログラムなら VC 使う必要ないし、
自分が使えるコンパイラでやってればいいんじゃないの。
コードをトレースしてデバッグとかも必要ないんでしょうからね。

236 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 15:11:16 ]
最近の子はmakeも書けない

237 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 15:14:24 ]
だってautomakeあるもの

238 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 15:21:22 ]
A. make は書けるが統合環境は覚えられない
B. make は書けないが統合環境いこなせる
Bの方が使えるよ

239 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 16:10:26 ]
>>238
えー、まじで?

でも統合環境めんどくさくね?
俺の秀丸なんて、改行するたびにデバックモードでコンパイルされるよ。
F5とか押す必要もなければ、使う予定もない大量のファイルが生成されることもない。
ちなみにF5を押した場合に最後にデバックしたときのログが表示される。

240 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 16:53:46 ]
>>239
改行する度にコンパイルなんかされたら、まともにコード書けないだろ。意味わかんない。
F5かどうかはともかく、コンパイルや実行の指示ができないんなんてありえない。
大量のファイルとか作成されても見る必要がないから関係ない。

統合環境でないと関数のヘルプも見れないだろうし、インテリセンスも機能しない。
リソースも直接 .rc を編集するの??

デバッグ時はコードのトレースもできないし、コールスタックの確認もできない。
つかブレークポイントも設定できないじゃん。
変数の内容を確認するときにはprintf で出力するのかwww

まともなアプリケーションなら開発効率が10倍ぐらい変わってくるねよ。
けどまぁテキストベースのお遊びのプログラムなら、どっちもで変わらんかもな。
多分そういう世界の話なんだろうな。



241 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 17:04:44 ]
デバッグとホットスポットが見られないのは痛すぎるな。
これない環境で同レベルまで自力でやるとなると
10倍どころか100倍やっても追いつかないのでは。
問題点の発見は難しい

242 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 17:26:04 ]
えー?
eclipseもseve automatically before build がデフォじゃん

243 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 17:50:06 ]
書き込みテストうんこ

244 名前:デフォルトの名無しさん [2010/04/02(金) 21:49:33 ]
勃起するまでもない質問はここに

245 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 12:05:26 ]
stdinを読む場合、キーを押してエンターを押しますが、エンターの押下を待たずにキーが押された時点でstdinを読ませることはできますか?

246 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 14:04:24 ]
>>245
できないんじゃね?
Windows かどうかしらんけど、まあAPIを使えばいいじゃないの?

247 名前:デフォルトの名無しさん [2010/04/03(土) 18:45:03 ]
VC++6.0について質問です。

VB6.0のdebug.print、VB.NETのConsole.WriteLine()に相当する
IDEのウィンドウに結果を出力する方法を教えてください。

宜しくお願い致します。

248 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 21:14:35 ]
>>247
::OutputDebugString()
しかしVC++6とはレトロ趣味ですね


249 名前:デフォルトの名無しさん [2010/04/04(日) 00:20:41 ]
VC++2008で、エディタのみ立ち上げてインテリシンクを使いたい
のですが出来ますか?

VCを立ち上げてプロジェクトを開いた形でならソース編集時にインテリ
シンクは動作しますが、できれば軽いエディタのみで編集したいのですが・・・

vs2008 express editoin


250 名前:デフォルトの名無しさん [2010/04/04(日) 00:21:43 ]
使えるよ。



251 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 00:23:44 ]
>>250
おー、そのやり方をぜひ教えてください

252 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 00:34:09 ]
タダじゃ教えられねぇな

253 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 00:46:06 ]
>>252
教えてやれよ。
「使えるよ」「できるよ」とか一行レスされて、
やりかたを教えてくださいって聞き返してくるやつ珍しいな。
ほかはコミュ力無いから、そのまま黙っちゃうのに。

254 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 04:24:44 ]
>>253
スルーしてるだけだと思うんだw






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<63KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef