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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 20:35:36 ]
スレを勃てるまでもない低俗な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/

357 名前:デフォルトの名無しさん [2009/05/27(水) 21:50:33 ]
353
SYSTEMの中身を対応するのに変える MACでもUNIXでもあるはず
curl.hの使い方がわかればいいんだけど、メモリやファイルに読み書きするのに
専用の関数を用意しなければならず難しかった。
それなら直接exeを動かしたら簡明と思った。

358 名前:デフォルトの名無しさん [2009/05/27(水) 21:51:13 ]
func2(array);

359 名前:353 mailto:sage [2009/05/27(水) 22:57:24 ]
>>357
UNIX系でも〜.exeって名前なの?


360 名前:デフォルトの名無しさん mailto:sage [2009/05/27(水) 22:59:06 ]
>>354
お前ふざけてんの?
何言ってるの?
スレタイ読めよ、ここはC/C++の質問部屋だぞ!!
そんな謎の言語は知りません!


361 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 02:25:31 ]
質問します。

Windows環境で、とあるC++用ライブラリ hoge.lib があります。
このライブラリには、関数を呼び出すためのヘッダファイル hoge.h が用意されていますが、
実際のソースは提供されていないものとします。
また、ライブラリ内部だけで使われている関数は、hoge.h には記述されていないようです。

さて、このライブラリには名前空間は設定されていません。
そのままでは使いにくいので、Hoge::〜 という名前でライブラリの関数を呼び出せたら便利だと思いました。

この状況(*.h と *.lib のみ)で、ライブラリの関数に名前空間をセットすることは可能でしょうか?


362 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 06:25:28 ]
>>361
君がhoge_ns.hとかいうヘッダを自作して、
hoge_ns.hでは
namespace Hoge
{
inline int bar(int x)
{
return bar(x);//hoge.hの。
}

//...etc
}
のようにラップしたらだめかな?

363 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 06:30:49 ]
c/c++で仕事している人たちに質問です。
基本情報技術者試験って、最低限必要な資格ですか?

364 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 07:01:46 ]
5000円程度で取れるんだから、とっとけ。

365 名前:デフォルトの名無しさん [2009/05/28(木) 07:09:15 ]
生産性と資格には関連はないだろ。
未経験なら持っていたら考慮されるとか一時金や給料がすこしだけ良くなるとかだろう。



366 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 07:18:18 ]
>362
ありがとうございます。
諦める決心がつきそうです。

367 名前:デフォルトの名無しさん [2009/05/28(木) 07:29:43 ]
webページを解析したいのですが、HTMLを整形済みXMLに変換するライブラリはありますか

368 名前:デフォルトの名無しさん [2009/05/28(木) 07:57:22 ]
自己解決しました。 
HTMLのパーサーがあるみたいでそっちのします。

369 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 10:06:12 ]
くわしく

370 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 10:32:40 ]
>>366
C用のライブラリだったら
namespace hoge {
extern "C" {
#include "hoge.h"
}
}
である程度ごまかせるんだけどな。

それにusing hoge::hogedata_t
とか#pragma comment(lib)とかも使って。

371 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 17:29:11 ]
fstream& getLogFile() {
static fstream logFile;
return logFile;
}
として、非局所的なオブジェクトのコンストラクタ内でもログを取れる用にしたんですけど、
logFileの破壊と非局所的なオブジェクトの破壊はどちらが先に起こるか決まってるんですか?
非局所オブジェクトの破壊時にもログをとるのに使えるのか知りたいので。

372 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 19:02:56 ]
フーリエ級数展開をするプログラム を作ったんだけど異常値しか出ないのでどこが悪いか教えてください
↓のプログラムの場合はf(x)=x [xが0-5] , 0 [xが5-10] で波長が10でループするような式
//最初にxの値を入力してから
hani_suu = 2;//範囲の数
hani[0]=0.0; hani[1]=5.0; hani[2]=10.0; //(0〜5),(5〜10)という意味

double temp=0,temp_cos,temp_sin;

for(int j=0;j<hani_suu ;j++)//以下a0の計算
for(double i = hani[j];i<hani[j+1];i+=0.1)temp += 0.1 * kansuu(i,j);//積分計算   ※kansuu(i,j)はjが0のときf(x)=x,1のときf(x)=0を返す

for(int n=1;n<50;n++)//以下an,bnの計算 
{
temp_cos=0; temp_sin=0;

for(int j=0;j<hani_suu;j++)
for(double i = hani[j];i<hani[j+1];i+=0.1) //積分計算
{
temp_sin+= 0.1 * kansuu(i,j)*sin((2.0*PI*i*n)/10);
temp_cos+= 0.1 * kansuu(i,j)*cos((2.0*PI*i*n)/10);
}

cos_v[n] = temp_cos; //an
sin_v[n] = temp_sin;//bn
}

temp = temp/2.0; //以下a0+Σ(ancos+bnsin)
for(int n=1;n<50;n++)
temp = temp + cos_v[n] * cos((2.0* PI * n * x )/10) + sin_v[n] * sin((2.0* PI * n * x )/10);
//最終的なtempが答え
見にくいですがお願いします

373 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 19:05:24 ]
勉強用に、シンプルな多倍長加算を作ってるのですが
もっとシンプルに出来ますでしょうか
効率は意識していません

string add(string l,string r){
int carry=0;
stringstream ss;
if(l.size()>r.size()){swap(l,r);}
reverse(l.begin(),l.end());
reverse(r.begin(),r.end());
int i=0;
for(;i<l.size();++i){
unsigned int tmp=(l[i]-'0')+(r[i]-'0')+carry;
if(tmp/10){carry=1;}else{carry=0;}
tmp%=10;
ss<<tmp;
}
for(int j=i;j<r.size();++j){
unsigned int tmp=r[i]-'0'+carry;
if(tmp/10){carry=1;}else{carry=0;}
tmp%=10;
ss<<tmp;
}
if(carry){ss<<'1';}
string ret=ss.str();
reverse(ret.begin(),ret.end());
return ret;
}

374 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 19:40:36 ]
>>372
感覚で読むとfor ( ; i<hani[j+1]; )が臭うコードに見える。

>>373
C++は、よくわからないが、やりたいことはなんとなく伝わる。
for()は、二つに分ける必要があったのかな。
似たようなことをしているから、for()のなかで、if()するようなコードが浮かびそう。
引数を参照にしたり、const char *foo = bar.c_str()で添字アクセスとか
ただの高速化だけど。

375 名前:デフォルトの名無しさん [2009/05/28(木) 20:17:36 ]
ヘッダファイルでプログラムソースファイルを分割することができますが
ヘッダファイルも分割する方法があったら教えて下さい



376 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 20:20:20 ]
ヘッダファイルはいくらでも分割できます。

377 名前:デフォルトの名無しさん [2009/05/28(木) 20:38:31 ]
VC++2008を使ってるのですが
自動修復情報の保存ってのが左下にでてしょっちゅう重いです
なんですかこれ

378 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 20:59:40 ]
事故解決
ttp://blog.goo.ne.jp/field_light/e/491cb15fde3d807c3d7a235f0a86eebb

379 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 21:38:47 ]
実際の数学みたいにxを数字にせずxとして計算するにはどうしたらいいですか?
例えば2x*3x=6x^2みたいな感じで計算して、あとで6x^2のxに色々な数字を代入
できるようにしたいんですが

380 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 21:54:57 ]
関数電卓のソースを探して見てみよう!

381 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 22:08:34 ]
ある関数内でnewして得たアドレスを返り値にして
それを外で受け取ったらそのまま、受け取らなかったらdeleteする
みたいな記述はどうやったらできますか?

382 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 22:39:54 ]
>>381
受け取らなかったらとは、どういう状態?

383 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 22:50:55 ]
>>382
pHoge = allocHoge(); // OK

allocHoge(); // 自動でdelete したい!

384 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 23:01:55 ]
>>383
生のポインタじゃムリじゃね?
スマートポインタを使うとか。

385 名前:デフォルトの名無しさん mailto:sage [2009/05/29(金) 00:23:19 ]
wrap_allocHoge( void* p )的なものを外側に作って
p==NULLならそのまま削除
p!=NULLなら入れて返すとか




386 名前:デフォルトの名無しさん mailto:sage [2009/05/29(金) 00:34:41 ]
>>383
C++なら>>385に引数無しの関数をオーバーロードするのもアリだと思う

387 名前:372 mailto:sage [2009/05/29(金) 04:19:06 ]
>>372では
for(double i = hani[j];i<hani[j+1];i+=0.1)temp += 0.1 * kansuu(i,j);//積分計算 
こんな風に小さい範囲を刻んで積分計算してるんですが
もっと精度を上げたり計算量を少なくするためにはどんな方法がありますか?

388 名前:デフォルトの名無しさん mailto:sage [2009/05/29(金) 05:51:59 ]
>>387
完全にスレ違いだろ。
数学スレに行ってくれ。

389 名前:デフォルトの名無しさん mailto:sage [2009/05/29(金) 07:16:23 ]
RPGの戦闘部分を作っています。
FFみたいなアクティブタイムバトル(パラメータのすばやさに毎秒1ずつ足して行き、規定値になったら行動)
というものですが、勝利判定はどこでどういう風にすればよいでしょうか?

行動が終わった時に、goto文で戦闘部分の処理を抜け出すのが一般的でしょうか?

390 名前:デフォルトの名無しさん mailto:sage [2009/05/29(金) 07:24:55 ]
goto文が一般的じゃない。break使え

391 名前:デフォルトの名無しさん mailto:sage [2009/05/29(金) 07:48:35 ]
>>390
ありがとうございます。危うく道を踏み外すところでした

392 名前:デフォルトの名無しさん mailto:sage [2009/05/29(金) 19:50:28 ]
STLにupper_boundとlower_boundってありますが
lower:指定した値"以上"の値が最初に現れる位置を返す
upper:指定した値"より大きい"の値が最初に現れる位置を返す
となっていて、どちらも指定した値以上の値が帰ってきます。

そうではなくて、指定した値を超えない最大の値を得たい場合
アルゴリズムを組み合わせたりして
それを簡単に行うような方法ってありますでしょうか

具体的に言うと
1 7 10という列に対して
upper/lower_boundに値2を与えると
どちらも7が帰ってきますが、
1が帰ってくるアルゴリズムはありますか

393 名前:デフォルトの名無しさん mailto:sage [2009/05/29(金) 20:06:26 ]
デクリメントすれば?

394 名前:392 mailto:sage [2009/05/29(金) 20:24:57 ]
自己解決しました
find_if(v.begin(),v.end(),bind2nd(less<int>(),n));

395 名前:392 mailto:sage [2009/05/29(金) 20:38:47 ]
すみません、解決していませんでした
デクリメントってこういうことでしょうか
vector<int>::iterator it = lower_bound(v.begin(),v.end(),n);
--it; //ここ(*)
int lower = *it;

確かにこれで期待した動作はするのですが
ちょっと気になるのは
(*)の箇所でイテレータが範囲外、例えばitが最初の要素だったりした場合
どう範囲チェックすれば良いのでしょうか
if(it)やif(it!=NULL)などは型チェックが通りませんし



396 名前:デフォルトの名無しさん mailto:sage [2009/05/29(金) 21:07:16 ]
begin()でもrend()でも使えばいいじゃない

397 名前:デフォルトの名無しさん mailto:sage [2009/05/29(金) 21:43:34 ]
includeファイルが増えてくると面倒なので
include_iroiro.h----------
#include "foo.h"
#include "bar.h"



#include "hoge.h"
----------------------
のように、よく使うものを全部includeするヘッダを使ってます
この場合includeしたcppで実際には使わなかったクラスなども無意味にコンパイルされるんでしょうか?

398 名前:デフォルトの名無しさん [2009/05/29(金) 21:46:39 ]
.h ということならYES


399 名前:デフォルトの名無しさん mailto:sage [2009/05/29(金) 21:55:46 ]
そうなんですか・・・ショック!

400 名前:デフォルトの名無しさん [2009/05/29(金) 22:05:33 ]
プリコンパイルヘッダを使えばいい

401 名前:デフォルトの名無しさん [2009/05/29(金) 22:11:28 ]
450 step -1 until 1 do
ってどういう意味ですか?

402 名前:デフォルトの名無しさん mailto:sage [2009/05/29(金) 22:15:57 ]
450が1なるまで-1しながらdo以下の処理を繰り返す??

403 名前:デフォルトの名無しさん mailto:sage [2009/05/29(金) 22:23:14 ]
while(条件){
cin >> x1 >> x2;
(以下if文)

のように記述して、ループさせています。
EOFでwhileのループを終了させたいとき条件はどう書いたらいいのでしょうか?

よろしくおねがいします。

404 名前:デフォルトの名無しさん [2009/05/29(金) 22:24:33 ]
>>402
ありがとうございます。
ということは、「1が53になるまで+1しながらdo以下の処理を繰り返す」っていうのは、
1 step +1 until 53 do
であってますか?

405 名前:デフォルトの名無しさん mailto:sage [2009/05/29(金) 22:43:57 ]
それC/C++じゃないじゃん。スレ違い



406 名前:デフォルトの名無しさん mailto:sage [2009/05/29(金) 22:55:58 ]
>>401
どこの言語だ。
最近スレ違いがおおいな。

407 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 10:46:34 ]
VS2005proです
#pragma region
〜処理を記述〜
#pragma endregion
このおまじないは、どういう意味を持つのですか?教えてくださいエロイ人

408 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 10:48:14 ]
>>407
折りたたみ機能

409 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 10:53:12 ]
>>408thx
syntaxには関係ないものか、あまり役に立たない機能だな

410 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 11:24:58 ]
templateを展開した後のコードを生成するようなフリーソフトってなんかいい感じのありますか?

411 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 11:39:14 ]
すいません、質問です。
アマゾンで古本を販売していて
販売価格を簡単に改定できるソフトを探しています。
改定ソフトは.netフレームワークでプログラムが作られてるようなのですが
プログラミングの知識がまったくない素人が売ってるのを購入せず
同じようなものを作るにはどれぐらいの時間がかかりそうですか?

プログラム自体はアマゾンサイトから価格データを集めるのがメインで
それほど難しくなさそうに見えるのですが。(素人なので直感です)

価格改定ソフトの一例です
ttp://6plan.net/amazonpricechecker

やっぱりめちゃくちゃ難しいんですかね?

412 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 12:01:41 ]
>>411
とりあえず君のプログラミングスキルを教えてくれ。
ここはC/C++スレだからC/C++のスキルに関しても。


413 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 12:06:15 ]
>>412
すいません、プログラミング知識はゼロです。

コンピュータ用語がわかる程度
良く言ってシスアドレベルだと思います。

414 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 12:08:47 ]
>>413
0からだと果てしなく険しいと思う。
少なくともC/C++でやるなら相当苦労しそうだ。

他の人の意見も聞きたいところだけど、
やるにしてもせめて初心者にやさしい超高級言語で挑戦したとして
果たして何ヶ月かかるだろうか。。。

415 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 12:15:27 ]
プログラムの取得にかかる時間は個人差がある。
独学ならなおさら。

半年で5つの言語を習得してプログラミング言語自体を作ってしまう高校生もいれば、
いくら頑張っても途中で挫折する人間も大勢いる。



416 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 12:18:48 ]
>>415
>半年で5つの言語を習得してプログラミング言語自体を作ってしまう高校生もいれば、
だれ?

417 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 12:44:48 ]
>>411
業務時間内に作ろうと思ってるならやめた方がいい
よほどの天才じゃない限り買った方が安い

418 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 12:52:16 ]
>>415-417

レスありがとうございます。
それほど難しいものなんですか。
おとなしく製品を購入することにします。

ちなみにシスアド程度の素人がプログラムを楽しもうと
思う場合、ExcelとかのVBAなら比較的簡単に習得できるものなんですか?
あくまでも趣味程度しか時間はさけませんので。

419 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 13:16:37 ]
極端な例を出して話をはぐらかすやつって馬鹿なの?

420 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 15:04:51 ]
char x1,x2;としてこれをwhileで繰り返し、if文でx1==x2の判定をしながら、
文字列のランレングス符号化をしたいです。
どう書けばいいでしょうか?

421 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 18:59:17 ]
グローバル変数と性的変数ってどっちのほうがメモリ容量多く使うのでしょうか?
また、staticを何個も書くのはまずいですか?

422 名前:デフォルトの名無しさん [2009/05/30(土) 19:00:00 ]
静的変数の間違いでした。

423 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 19:25:54 ]
>>421
たいていの場合、グローバル変数とstatic変数は同じ扱いになる
static変数を何個も書くこと自体は問題ない。
性能面、安全面で自動変数より劣ることはあるかもしれない。

424 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 19:32:11 ]
グローバル変数のほうが、シンボル情報がオブジェクトファイルに含まれるので
.objなり.oなりが大きくなる

と全然意味の無いことを言ってみる

425 名前:デフォルトの名無しさん mailto:sag [2009/05/30(土) 19:43:53 ]
ヘッダーファイルの値をいくら変えても反映されません。
どうやらパソコンを起動してから最初に実行した時の値が以後ずっと使われているようです。
PCを変えて実行してみましたが、同じ不具合が発生しています。
原因がわかるかたいませんか?



426 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 19:53:43 ]
日本語でおk

427 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 20:02:01 ]
説明しようにも不具合の原因がわからなすぎて、上手く説明できません。

ソースファイルの更新はしっかり反映されるのに、ヘッダーファイルの更新は最初の一度しか反映されないのです。

428 名前:デフォルトの名無しさん [2009/05/30(土) 20:05:58 ]
その.hをincludeした.cで printfしてみれ
それでも反映されないのなら、コンパイラのバグじゃね

429 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 20:14:43 ]
どうやら値事態はしっかり反映されているようです。
しかし、その値と変数を比較する部分が正しく動作しません。
友人と全く同じプログラムですが、実行結果が違います。(アカウントは違います。)

430 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 20:20:44 ]
ヘッダーを書き換えた後にそれをインクルードしているソースはコンパイルしなおしているよな?
一応OSと環境(VC++とかgccとか)よろ

431 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 20:20:56 ]
学校の課題は先生に訊きなさい

432 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 20:24:59 ]
複数あるソースファイルのうち、その比較部分があるファイルにprintf文をつけたところ、値の比較が正しく行われるようになりました…。
当然、友人らはこのソースファイルには手をつけなくても正しく動作しています。
全くもって理解不能です。

433 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 20:32:11 ]
こんな言葉がある
『プログラムは思ったとおりに動かない。書いたとおりに動くのだ』

434 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 20:37:43 ]
printf文をつけることで関係無い部分が正しく動くようになったのですよ。
理解不能(^q^)

435 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 20:41:57 ]
>>430の言ってることが答えな気がする
printf文を加えたソースファイルをコンパイルしなおしたことでヘッダファイルの変更が反映されたと



436 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 20:47:47 ]
>>435
別のソースファイルにつけたときは正しく比較部分が正しく動かなかったです。
(ヘッダーで設定した数値は正しく表示された)

日本語が不自由ですみません。

437 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 20:58:48 ]
そんなときにはソリューションのクリーン→ビルド

438 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 21:11:50 ]
>>436
いやだから、別のソースファイルの時は今回直したソースファイルをコンパイルしなおしていないんじゃないか?ってこと

439 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 22:44:16 ]
とりあえず環境、ヘッダとかのファイル名と実行したコマンドを書け。

440 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 23:53:16 ]
C言語の質問です。お願いします。
{
int i;
char ch;
scanf("%d", &i);
printf("%dです。\n", i);
scanf("%c", &ch);
printf("%cです。\n", ch);
return 0;
}
というプログラムを実行し例えば4と打つと
4
4です。

です。
と表示されてしまいます。
何故、scanf("%c", &ch)は無視されるのでしょうか?
4
4です。
s
sです。
と言った具合に表示させたいです。

441 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 23:59:06 ]
www.google.co.jp/search?q=scanf+%89%FC%8Ds%95%B6%8E%9A

442 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 00:01:12 ]
virtualってつけれるところは全部つけとけばおkなんですか?

443 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 00:12:38 ]
>>440
4の次に入力された改行文字が、2回めのscanfで読み込まれるから。
scanf("%d%*c", &i);
のようにして、改行文字を1回めのscanfで読み込ませればいい。

444 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 00:21:25 ]
>>441
>>443
ありがとうございました。
おかげさまで解決しました。

445 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 00:25:31 ]
>>442
副作用としては、
・オーバーライドするつもりのない関数を間違ってオーバーライドする可能性がある
・多分、メモリ使用量が幾分増える
ってのがある。



446 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 03:57:21 ]
Cの乱数をsrandとtimeを使って毎回違うようにするのは
わかったのですが、二つの乱数をほぼ同時に出す場合、どうすれば
その二つの乱数をバラバラにする事ができますか?

具体的には戦闘ゲームなのですが、
コチラの攻撃が1~30までで、相手も1~30までの値で
攻撃してくるときに、1~30までの値を返す関数を
srandで初期化してrand()%30+1の値を返すという風に作りました。
しかし、自分の攻撃値も上の関数でけっていし、それにほぼ同時
(すぐ次の行で)相手の攻撃値も決定しているのですが、そうすると
どうしても自分の攻撃値と相手の攻撃値が同じになってしまいます。
時間がほぼ同時ぐらいのタイミングで処理するとどうしても
このようになってしまうと思うのですが、どのようにすれば別々の値に
できるでしょうか?よろしくおねがいします。

447 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 04:04:51 ]
srandで初期化するのは、プログラム中1回だけでいい。

面倒なら、srand呼ばないようにすればとりあえずランダムな値は取れる。

448 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 04:16:45 ]
同じだったらもう一回randすればいいんじゃないの

449 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 04:30:35 ]
乱数シードに IP アドレスとかプロセス ID とかを加算
てか同じプロセス内のコードか??? なら初期化は一回だけであとは rand を呼べばいい

450 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 05:18:53 ]
質問なのですがお願いします。
c++、bccを使用しています。

char si[1000];
char sj[1000];
cin>>s1;
cin>>s2;

と二つの配列を作って、こんぱいる実行したら

「_             」

とうまく入力待ちになりました。しかし、

char si[1000];
char sj[1000];
cin>>s1;
cin>>s2;
array[1000][1000][5];

では、


 c:\bcc\test>      」

と表示されて、たぶん実行終了した状態になるのですが、
原因を教えてくださいませんでしょうか?おれがうんこなのでしょうか?

451 名前:450 mailto:sage [2009/05/31(日) 05:20:12 ]
全力で間違えました。

char si[1000];
char sj[1000];
cin>>s1;
cin>>s2;
int array[1000][1000][5];

でうまくいかないのでしあt

452 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 05:23:32 ]
領域確保しすぎてスタックオーバーフロー?
配列をグローバルにしてみよう

453 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 05:24:01 ]
>>451
>int array[1000][1000][5];

これ単純に大きさを計算したら1000×1000×5×4=約19MBとなって
スタックのデフォルトの大きさ1MBを超えるから異常終了する

スタックを大きくするかstaticを付けてBSSに配置するかだな

454 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 06:35:37 ]
Visual Studio 2005 Proですが
array<String^>^ getFilterName_St();
Bitmap^ sample_grab();
Bitmap^ sample_grab2(Bitmap^ bmp);
こういう書き方って、.NET対応CLIの実装ですよね、NativeなC/C++では使えないコードですよね。


455 名前:デフォルトの名無しさん [2009/05/31(日) 08:37:19 ]
うん



456 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 09:06:28 ]
>>455Thx分かりました。
.NETのCLIって、C/C++のコードも混在することができるんですね、templateや関数オブジェクトがすらすら書けない俺には無用なものですね。

457 名前:450 mailto:sage [2009/05/31(日) 11:42:01 ]
ありがとうございました。
mainの外に追い出したところ、何とか起動しました。
途中で強制終了されたけど。。。なんかでかい配列を扱うのはすごく大変ですね。

ありがとうございました!






[ 続きを読む ] / [ 携帯版 ]

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

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