1 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 22:39:18 ] エスケープシーケンスやWin32APIなどの環境依存なものでもOK。 ただしその場合、質問者は必ず環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.56【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1215278693/ 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm ◆ソースのインデントについて 半角やTABでのインデントはスレに貼ると無くなります。 そのため、アップローダーに上げるのが最も良いですが、 直接貼るのであれば、全角空白か に置換しておくことをお勧めします。
337 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 14:59:38 ] cout << "2, 4, 6, 8, 10です\n";
338 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 15:01:39 ] ウケタw
339 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 15:07:52 ] そんなに面白くはない
340 名前:デフォルトの名無しさん [2008/07/26(土) 15:08:35 ] ↓次の方どうぞ
341 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 15:31:54 ] 繰り返し文を利用して ☆ ☆☆ ☆☆☆ ☆☆☆☆ ☆☆☆☆☆ と表示させるコードを書いてみたのですが、もっと簡単に書く方法ありませんか? #include <iostream> using namespace std; int main() { int i; for(i = 1; i <= 5; i++){ if(i == 1){ cout << "☆\n"; } else if (i == 2){ cout << "☆☆\n"; } else if (i == 3){ cout << "☆☆☆\n"; } else if (i == 4){ cout << "☆☆☆☆\n"; } else if (i == 5){ cout << "☆☆☆☆☆\n"; } } return 0; }
342 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 15:34:26 ] ひょっとしてそれはギャグで言っているのか?
343 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 15:35:55 ] 普通の小学生ならカウンタの値と☆の数に関連性を見出せる筈
344 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 15:36:47 ] >>341 cout << "☆\n☆☆\n☆☆☆\n☆☆☆☆\n☆☆☆☆☆";
345 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 15:41:25 ] >>341 そこはif文じゃなくて、switchで場合分けするべきだと思うんだ。
346 名前:デフォルトの名無しさん [2008/07/26(土) 15:42:47 ] >>345 いやswitchにしてもまだおかしいだろwwww
347 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 15:44:04 ] 少し考えるので時間ください
348 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 15:46:10 ] hoshiHyouji(size_t nannko)という関数を作ればいいんじゃに
349 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 15:53:45 ] 関数はまだ習ってないのでわからないです。 #include <iostream> using namespace std; int main() { int i; int j; for(i = 1; i <= 5; i++){ for(j = 1; j <= i; j++){ cout << "☆"; } cout << '\n'; } return 0; } これでも同じように表示されたましたけど 考え方はあってますか? それとも、もっと簡単な方法があるのでしょうか?
350 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 15:56:42 ] あってると思うけど 個人的に for(i = 0; i < 5; i++){ for(j = 0; j < i; j++){ の方が好き
351 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 15:58:14 ] >>350 なるほど0からのカウントですか。 もっと分かりやすいコードが書けるように頑張ってみます。
352 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 15:58:55 ] >>349 そこは繰り返しじゃなくて再帰を使うべきだな。 void print_hosi(int num); void print_hosi(int num) { if ( num <= 0 ) { return; } for ( int i = 0; i < num; i++ ) { cout << "☆"; } cout << endl; print_hosi( num - 1 ); }
353 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 16:10:37 ] >>350 すいません、自分が指摘するのはあれなんですが ☆ ☆☆ ☆☆☆ ☆☆☆☆ ☆☆☆☆☆ と表示させるなら for(i = 0; i < 5; i++){ for(j = 0; j <= i; j++){ だと思います。
354 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 16:14:39 ] 俺なら for(i = 0; i < 5; i++){ for(j = 0; j < i+1; j++){ にするかな、気分の問題だけど
355 名前:デフォルトの名無しさん [2008/07/26(土) 16:17:28 ] for(i = 1; i <= 5; i++) for(j = 0; j < j; j++)
356 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 16:18:08 ] 俺には j < i であってるように見える。
357 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 16:19:28 ] >>356 それで実行したら ----------- 改行 ☆ ☆☆ ☆☆☆ ☆☆☆☆ ----------- でした。
358 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 16:19:33 ] >>356 は>>353-354 宛
359 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 16:29:21 ] まぁ for(i = 0; i < 5; i++){ cout << "☆"; for(j = 0; j < i; j++){ cout << "☆"; } cout << "\n"; } でも出来るけど、>>355 が正解だろうな。
360 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 16:45:24 ] でもこの手のはCSVやURLクエリのように区切りが出てきて for(int i=0; i<5; i++){ std::cout << "☆"; for(int j=0; j<i; j++){ std::cout << ","; std::cout << "☆"; } std::cout << "\n"; } みたいな感じに落ち着くことも多い。
361 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 16:47:44 ] #include <iostream> #include <iomanip> int main() { int i, j; std::cout.fill('☆'); for(i = 1; i <= 5; i++) std::cout<<std::setiosflags(std::ios::right)<<std::setw(i)<<""<<std::endl; return 0; }
362 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 17:00:18 ] ('☆')←何この顔バカにしてるの?
363 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 17:09:26 ] >>362 なんだと
364 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 17:09:38 ] std::string str; for(int i=0; i < 5; i++) { str += "☆"; std::cout << str; } std::cout << "\n";
365 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 17:11:16 ] >>362 寄生獣ですね、わかります。
366 名前:デフォルトの名無しさん [2008/07/26(土) 19:54:58 ] サービスとして動くプログラムのサンプルをやってるんですが上手くいきません StartServiceCtrlDispatcher()で失敗します GetLastError()で1063が取れるんですけど、どうすればいいんでしょうか? 環境はxp sp2、vc++2005でやってます void ErrorHandler( char *s, DWORD err ) { std::cout << s << std::endl; std::cout << "Error number: " << err << std::endl; ExitProcess( err ); } void WINAPI ServiceMain( DWORD argc, LPTSTR *argv ) { // 空 } void main() { char *SERVICE_NAME = "BeepService"; SERVICE_TABLE_ENTRY serviceTable[] = { { SERVICE_NAME, (LPSERVICE_MAIN_FUNCTION)ServiceMain }, { NULL, NULL } }; // SCMで登録する BOOL success = StartServiceCtrlDispatcher( serviceTable ); if( !success ) ErrorHandler( "In StartServiceCtrlDispatcher", GetLastError() ); }
367 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 20:23:00 ] >>366 よくわからんが、ちゃんとサービスとしてSCMのデータベースに登録済みで、 SCMからサービスとして起動されたときにそういうエラーが出ているの? ただのコンソールアプリとして普通にキックしたときに StartServiceCtrlDispatcher()が失敗するのはただの仕様なんじゃないの
368 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 22:02:45 ] double型の変数を文字型の変数に疑似変換するプログラムを書けと教授に言われたのですが、 全く方法が解りません・・・。 誰か助けてください。 その際関数のオーバーロードを必ず使用する事、と言われました。 実は問題の意味があまり分かってなかったり。疑似変換とは・・・?
369 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 22:05:40 ] 問題の意味は出題者に訊くしかない
370 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 22:08:25 ] 今から教授に電話して聞いてみます。
371 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 22:10:58 ] sprintf? でもオーバーロードなんか必要ないしなぁ・・・
372 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 22:13:17 ] 留守電だったので諦めました。 とりあえず考えられる事をいくつかプログラムしてみます。 疑似変換・・・・か。
373 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 22:20:58 ] char型の固定小数で表せって事だろJK
374 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 22:22:31 ] >>368 こんなん? 真夜中の電話、不吉な感じがイヤン #include<iostream> #include<string> //ここでオペレータをほげほげ int main(void){ double x=1.2345; std::string str; str=x; std::cout << str << std::endl; return 0; }
375 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 22:33:26 ] オーバーロードを入れるとややこしくなりそうだな〜
376 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 22:37:31 ] 関数のオーバーロードをする必要性がわからん・・
377 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 23:15:40 ] inline関数を使う場合は関数の宣言と関数の定義で2回記述しないといけないんですか? #include <iostream> using namespace std; //関数の宣言 inline int square(int x); inline double square(double x); int main() { int i; double j; cout << "整数を入力してください\n"; cin >> i; int sum1 = square(i); cout << i << "の二乗は" << sum1 << "です\n"; cout << "小数を入力してください\n"; cin >> j; double sum2 = square(j); cout << j << "の二乗は" << sum2 << "です\n"; return 0; } //関数の定義 inline int square(int x){ int num1; num1 = x * x; return num1; }inline double square(double x){ double mum1; mum1 = x * x; return mum1;}
378 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 23:19:47 ] >>377 inline なら定義が無いと意味無いし、定義は宣言を含むから、定義だけ書いとけばいいよ。
379 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 23:21:06 ] >>378 即レスありがとうございます!
380 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 23:28:40 ] すいませんもう1つだけ質問です。 テンプレート関数は templat <class T>
381 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 23:29:25 ] すいません誤爆で途中で投稿してしまいました。 スレ汚しすいません;;
382 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 23:34:20 ] すいませんテンプレート関数は template <class T> T square(T x){ 処理 } と記述できると書いてあったんですが 宣言と定義みたいに分けて記述することはできないんですか? 試しに //宣言 template <class T> T square(T x); main関数 return 0; //定義 T square(T x){ 処理 } とやったのですがエラーが出ました。要するに無理ってことでしょうか?
383 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 23:43:04 ] >>382 無理です。使う時点で定義が読み込まれている必要があります。
384 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 23:44:15 ] >>383 ありがとうございます。 不思議に思っていたことが解決しました。
385 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 23:44:31 ] >>382-383 っ export
386 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 23:52:22 ] >>385 つ現実
387 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 00:02:31 ] >>382 ttp://www.fides.dti.ne.jp/~oka-t/cpplab-template-3.html
388 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 00:06:47 ] >>387 馬鹿?
389 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 00:08:34 ] >>382 分けて書くこと自体は可能。その感じだと、たぶん定義のほうに template <class T> が足りないだけ。
390 名前:デフォルトの名無しさん [2008/07/27(日) 01:35:03 ] 「aaaaiiiuuueooあああああいいいしてるるるる」 みたいに、 ・昇順で並んでいる ・同じ文字がたくさん入ってる ・あとから変更されることはない ・wchar_t ・一文字あたりの繰り返しは少ない(5個くらいまで) ・長い文字列もある(10MBytesくらい) という文字列を扱うんだが、 ・「N番目の文字」を高速に取り出せる ・「N種類目の文字と個数」を高速に取り出せる 条件を満たすデータ構造ってどんなのがある? 配列を2つ用意するしかない? てかこのスレでよかった?
391 名前:390 mailto:sage [2008/07/27(日) 01:36:00 ] すまん矛盾してた > ・同じ文字がたくさん入ってる これは無視してくれ。
392 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 01:41:12 ] >>390 struct { int start; wchar_t c; } を start でソートした配列、でいいんじゃないかな? その例だと {{0, L'a'}, {4, L'i'}, {7, L'u'}, {10, L'e'}, {11, L'o'}, {13, L'あ'}, ...} って感じで。
393 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 01:41:14 ] >>390 昇順に並んでるってのは、文字コードが昇順にならんでるってわけじゃないの?
394 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 01:46:54 ] >>392 おお! なんだかよさそうだ。 ありがと! >>393 そうです
395 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 01:48:28 ] >>394 例にでてる文字列が文字コード順に並んでないけど、それは例が間違いってことだな。
396 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 01:50:47 ] >>395 ひらがなが先だっけ? なら例が間違ってるわ。 すまん
397 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 01:53:16 ] >>396 いや、アルファベットをローマ字で昇順に並べても、文字コード順にはならんよ。
398 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 10:26:24 ] >>397 そうでした
399 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 14:51:23 ] #include <iostream> using namespace std; //関数addの宣言 void add(int *px, int *py, int *pz); //点数を加算するプログラム int main() { int x1; int x2; int a; cout << "2科目の点数を入力してください\n"; cin >> x1 >> x2; cout << "加算する点数を入力してください\n"; cin >> a; add(&x1, &x2, &a); cout << "科目1は" << x1 << "点です\n"; cout << "科目2は" << x2 << "点です\n"; return 0;} //関数addの定義 void add(int *px, int *py, int *pz){ *px += *pz; *py += *pz;}
400 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 14:53:22 ] 2科目のテストの点数(x1,x2)にa点を加算する関数add()を、ポインタを使って定義しなさい。 という宿題が出たのですが、これで実行したら成功したのですが。 これは無駄過ぎるという所はありませんか? あったら指摘お願いします
401 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 14:55:17 ] 宿題スレに書かずにここに書く辺りが無駄。
402 名前:デフォルトの名無しさん [2008/07/27(日) 15:00:46 ] >>400 まあパッと見pzはポインタにする必要はまったくないな。
403 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 15:01:49 ] 宿題スレは〜のコード書いてくださいとかだと勝手に解釈してたので こっちの方に書き込んでしまいました。 ご迷惑おかけして大変申し訳ございませんでした。 この場を借りて謝罪いたします。
404 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 15:05:10 ] >>402 指摘ありがとうございます。
405 名前:デフォルトの名無しさん [2008/07/27(日) 17:59:33 ] template<class T, class U> void f(T t, U u) { ... } template<class T> void f<T, int>(T t, int u) { ... } こういうことってできないんだっけ? error C2768: 'f' : 明示的なテンプレート引数を使用することはできません。 って出るんだが。
406 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 18:01:19 ] <T, int>いらない
407 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 18:04:36 ] >>406 ありがとうさん
408 名前:405 mailto:sage [2008/07/27(日) 18:07:53 ] template<int I, int J> void f() { } template<int I> void f<I, 0>() { } これは無理? J=0の場合のみ特殊化。
409 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 18:11:11 ] テンプレート使った際の演算子オーバーロードで悩んでいます。 コンパイルエラーは以下のように出ます。 ------------------------- Test.cpp:13: error: expected constructor, destructor, or type conversion before ‘Test’ ------------------------- このエラーを理解できないため、デバグできません。 どうしたらいいのでしょうか? 教えてください。 ソースは以下。
410 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 18:12:25 ] // Test.cpp #include<iostream> using namespace std; template<typename T> class Test{ public: T value; Test(){}; Test operator+(const Test& t); }; template<typename T> Test Test<T>::operator+(const Test<T>& t) //←13行目 { Test tmp; tmp.value = value + t.value; return tmp; } int main() { Test<int> test1, test2; test1.value=100; test2.value=200; Test<int> test3 = test1 + test2; return 0; } -------------------------
411 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 18:15:34 ] Test<T> Test<T>::operator+(const Test<T>& t) じゃない? const Test<T> Test<T>::operator+(const Test<T>& t) このほうがいいかな
412 名前:410 mailto:sage [2008/07/27(日) 18:25:03 ] おお! ありがとうございます m(_ _)m 続けて質問して申し訳ないのですが、 const をつけると付けないとではどのようなちがいがあるのでしょうか?
413 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 18:34:16 ] クラスのメンバ変数をポインタ型にすると メンバ変数が定義されていないとか言うんだけど 何これ…
414 名前:413 mailto:sage [2008/07/27(日) 18:41:51 ] 間違えた メンバ変数じゃなくてメンバ関数をポインタ型にすると メンバ変数が定義されていないって出る
415 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 18:42:39 ] class hoge{
416 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 18:46:14 ] 直感で static付けたらどうでしょうと言ってみよう
417 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 18:48:36 ] メンバ関数をポインタ型? メンバ変数をメンバ関数ポインタの型にするって事か?
418 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 18:54:38 ] >>417 class A{ praivate: int *a; public: void *get_a(); } void A::*get_a() { return a; } aが定義されていない識別子です ってなる
419 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 18:56:44 ] void* A::get_a()
420 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 18:58:56 ] voidじゃなくてintだった… >>419 解決した。ありがとう!
421 名前:デフォルトの名無しさん [2008/07/27(日) 18:59:27 ] すみません。。。お尋ねしたいのですが、 GDBでUTF-8の内容を表示させるにはどうすればよいのでしょうか? ご存知の方がいらっしゃいましたら何卒ご教授下さい。 よろしくお願いいたします。
422 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 19:37:58 ] TCHAR pString[64] ; std::wcin.getline(pString, 64) ; が入力を待たずに終わってしまいます。 プロジェクトを別に作って試したんですが他ではちゃんと入力を待ってます。 どういう状況の時だと処理を待たずに終了してしまうのでしょうか?
423 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 19:52:06 ] >>422 現象とは関係ないけど、それ、wchar_tかWCHARを使ったほうがいいよ。
424 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 20:15:58 ] >>422 直前で数値や文字列を入力したときに改行が残ったままになってるとか
425 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 20:25:08 ] 文字列に指定した文字がいくつあるか調べる関数を作成して、実際にキーボードから文字を入力して文字の個数を調べるコードを書いたのですが。 include <iostream> #include <string> using namespace std; //関数countの宣言 int count(char str[], char ch); //指定した文字数を調べるプログラム int main() { char str[256]; //入力する文字列 char c; //調べる文字 int sum; //文字数 cout << "文字列を入力してください\n"; cin >> str; cout << "探したい文字を入力してください\n"; cin >> c; sum = count(str, c); cout << str << "の中に" << c << "は" << sum << "個あります\n"; return 0; }
426 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 20:26:14 ] //関数countの定義 int count(char str[], char ch){ int j; //文字列の文字数 int i; int num = 0; //カウントする変数 j = strlen(str); for(i = 0; i < j; i++){ if(str[i] == ch){ num++; } } return num; } これで実行してちゃんとカウントできたのですが、無駄過ぎる文はありませんか? 指摘お願いします。 連投すいません;;
427 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 20:29:50 ] >>426 sum = std::count( str.begin(), str.end(), c )
428 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 20:30:22 ] std::string と std;;wstring で template を使って関数を共通化したいんだけど, 文字列リテラル ( "hoge" と L"hoge") や,文字型の違い ( 'a' と L'a') を吸収するには どうやったらいいの? 例えば,バックスラッシュを付け足す場合とか. template <typename string_type> string_type& AddBackSlash(string_type& str) { return str += '\\';//← wstring の場合は L'\\' にしたい, }
429 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 20:31:09 ] >>427 ありがとうございます!
430 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 20:37:12 ] >>428 特殊化
431 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 20:58:44 ] おすすめのエディタ教えてください! 今までC言語を始めよう!というフリーソフトを使ってきました
432 名前:428 mailto:sage [2008/07/27(日) 21:13:16 ] >>430 ありがとうございます.特殊化するということはコピペして,wstring に置換して, L を付ける作業をするしかないですかね… template <typename string_type> string_type& AddHoge(string_type& str) { string_type strInternal = "foo"; return str += "Hoge"; } //特殊化 template<> std::wstring& AddHoge<std::wstring>(std::wstring& str) { std::wstring strInternal = L"foo"; return str += L"Hoge"; }
433 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 21:32:49 ] >>423-424 ありがとうございます、>>424 さんが言われたとおり直前で数値をwcinにて 受け取ってます。それをコメントアウトしたらgetineのとこで処理が 止まりました。 原因はわかったのですがどうやって回避してよいのでしょうか?^^;
434 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 21:41:25 ] std::vector<double> v(100); このとき確保されるメモリは実装しだい?
435 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 21:56:05 ] はい。sizeof(double)*100かもしれませんし、*128かもしれません。
436 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 21:57:02 ] >>431 結局は好みだから使ってみて気にいったのを使えよ。 因みに俺はemacs使ってる。
437 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 22:03:18 ] >>426 strlen(str) で文字列の末尾まで '\0' を検索した後に, 再び文字を検索するのが無駄と言えば無駄かも. int count(const char str[], const char ch) { int num = 0; //カウントする変数 while( *str != '\0' ) if( *str++ == ch ) num++; return num; }