検索結果 199 件

by a5ua
10ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: <thread>と_kbhitについて
返信数: 2
閲覧数: 470

Re: <thread>と_kbhitについて

while (!_kbhit()) { この条件だと、何かキーが押されるとループを抜けてしまいます。 _getch()は文字が入力されるまで待機するため、 今回のケースでは_kbhit()を使わずとも、単なる無限ループで十分です。 キーが押されていないときになにか別の処理を行いたい場合は、 ループの中に、if (_kbhit())という条件を入れてもいいでしょう。 void ControlThread() { char c; while (true) { c = _getch(); if ((c == 0x1B) || (c == '0')) { gThreadDone = true; br...
by a5ua
1年前
フォーラム: C言語何でも質問掲示板
トピック: ゲーム配布時、CSVが詰まったフォルダをなんとかしたい
返信数: 7
閲覧数: 716

Re: ゲーム配布時、CSVが詰まったフォルダをなんとかしたい

http://dxlib.o.oo7.jp/dxtec.html#T11
公式ページに書いてありますが、FileRead_open()などDXアーカイブ対応の関数を使用すれば、
画像ファイルに限らず、アーカイブ内の任意のファイルを読み込むことができます。
by a5ua
1年前
フォーラム: C言語何でも質問掲示板
トピック: emplace_back()について
返信数: 2
閲覧数: 354

Re: emplace_back()について

まずemplace_back()にはそのリストの型(std::shared_ptr<Enemy>)のコンストラクタ引数を渡すものという理解であっていますか? その理解で合っています。 一口にコンストラクタと言っても、以下に示すように複数のコンストラクタが定義されています。 https://cpprefjp.github.io/reference/memory/shared_ptr/op_constructor.html 今回のケースでは、std::shared_ptr<Enemy>のムーブコンストラクタ(上記リンクの(10))が呼ばれ、 emplace_back()の動作的としては、push...
by a5ua
1年前
フォーラム: C言語何でも質問掲示板
トピック: VS2017&/std:c++17でboost::bimapがコンパイルエラー
返信数: 4
閲覧数: 404

Re: VS2017&/std:c++17でboost::bimapがコンパイルエラー

1>c:\boost\boost_1_66_0\boost\bimap\relation\support\data_extractor.hpp(43): error C2143: 構文エラー: ',' が '<' の前にありません。 1>c:\boost\boost_1_66_0\boost\bimap\relation\support\data_extractor.hpp(56): note: コンパイル対象の クラス テンプレート インスタンス化 'boost::bimaps::relation::support::data_extractor_implementation<boost:...
by a5ua
1年前
フォーラム: C言語何でも質問掲示板
トピック: 【DXライブラリ】printfDX関数がif文に影響する?
返信数: 2
閲覧数: 537

Re: 【DXライブラリ】printfDX関数がif文に影響する?

void Map::calc()において何もボタンが押されていなかったら、
vx,vyが未初期化のまま
_x += vx;
_y += vy;
が実行される点が気になりました。
by a5ua
2年前
フォーラム: C言語何でも質問掲示板
トピック: C2280 削除された関数を使用しようとしています というエラーが出たのですが…
返信数: 7
閲覧数: 5457

Re: C2280 削除された関数を使用しようとしています というエラーが出たのですが…

CharaData構造体がconstメンバー変数CharaCodeを持っているため、 デフォルトコンストラクタによるオブジェクト構築ができないことがエラーの原因と思われます。 ①CharaCodeのconstを外すか、 ②以下のように、CharaCodeを初期化するためのコンストラクタを定義する必要があるでしょう。 struct CharaData { // キャラクターデータ CharaCode(int code) : CharaCode(code){} const int CharaCode; // キャラコード int Graphic[64]; // キャラのグラフィックハンドル変数 i...
by a5ua
3年前
フォーラム: C言語何でも質問掲示板
トピック: C++ DXLib、画像反転について
返信数: 2
閲覧数: 929

Re: C++ DXLib、画像反転について

DrawRotaGraphにはTurnFlagという左右反転のフラグがあります。
http://dxlib.o.oo7.jp/function/dxfunc_graph1.html#R3N10
by a5ua
3年前
フォーラム: C言語何でも質問掲示板
トピック: tuple操作について
返信数: 14
閲覧数: 1675

Re: tuple操作について

Boost.Fusionが使えるかもしれません。

サンプルコードです。
http://ideone.com/CaHpiH
by a5ua
3年前
フォーラム: C言語何でも質問掲示板
トピック: }がないとエラーが出る
返信数: 3
閲覧数: 617

Re: }がないとエラーが出る

77行目のelseに対応する'}'が無いように見受けられます。
by a5ua
3年前
フォーラム: C言語何でも質問掲示板
トピック: [C++]std::make_sharedとアップキャスト
返信数: 2
閲覧数: 637

Re: [C++]std::make_sharedとアップキャスト

std::make_shared<Base>(...); は内部で
new Base(...); 相当のことを実行しています。

純粋仮想関数を含むクラスのインスタンスを
生成することはできないので、そのようなエラーが出ているのでしょう
by a5ua
3年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列を格納する配列の扱い方について
返信数: 3
閲覧数: 630

Re: 文字列を格納する配列の扱い方について

> なぜ上手くいかないのかが分かりません。 name = string; はポインタを代入しているだけであり、文字列全体をコピーするわけではありません。 name はすべて、stringという配列の先頭アドレスを指すことになります。 > 解決策を教えてください。 では、いくつかの選択肢とヒントを (1)最も簡単な解決策は、二次元配列を使うことでしょうか char name[20][100]; (2)char *name[20];のままでやりたいのであれば、 ループ内でmalloc()を使いつつstrcpy()で文字列をコピーすれば良いでしょう (3)あるいは、C++の標準ライブラリを使うことも...
by a5ua
3年前
フォーラム: C言語何でも質問掲示板
トピック: 正規表現に関する質問です。
返信数: 1
閲覧数: 507

Re: 正規表現に関する質問です。

以下の正規表現でいかがでしょうか?

コード:

".*?([0-9a-zA-Z!-~]+)[^0-9a-zA-Z!-~]*笑"
↓参考までにPerlでの実行結果です
http://ideone.com/usJQCg
by a5ua
3年前
フォーラム: C言語何でも質問掲示板
トピック: boostを使ったxmlファイルの値の取得ができません.
返信数: 3
閲覧数: 658

Re: boostを使ったxmlファイルの値の取得ができません.

BOOST_FOREACH (const auto &child, pt.get_child("ATExport.Photo.Rotation")){ ph->sensor_mat(0,0) = child.second.get<float>("M_00"); } コンパイルしてませんが、以下のようなコードでいかがでしょうか? for (int i = 0; i < 3; ++i) { for (int j = 0; j < 3; ++j) { std::ostringstream oss; oss << "Rotation.M_" << i << j; ph->sensor_mat(i, ...
by a5ua
4年前
フォーラム: C言語何でも質問掲示板
トピック: 正規表現で連続した数字を表現したい
返信数: 3
閲覧数: 1577

Re: 正規表現で連続した数字を表現したい

コード:

(\d)\1{3}
はいかがでしょうか?
by a5ua
4年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列の比較。
返信数: 3
閲覧数: 656

Re: 文字列の比較。

scanf_s()の使い方が間違っています。 scanf_sで文字列を入力するときは、可変長引数部分にポインタだけでなくバッファサイズを渡す必要があります。 以下のURLも参照してください。 https://msdn.microsoft.com/ja-jp/library/w40768et.aspx scanf および wscanf とは異なり、scanf_s および wscanf_s では、c、C、s、S の各型、または [] で囲まれた文字列コントロール セットのすべての入力パラメーターに対してバッファー サイズを指定する必要があります。 バッファー サイズ (文字単位) は、バッファーま...
by a5ua
4年前
フォーラム: C言語何でも質問掲示板
トピック: vector宣言時の要素数について
返信数: 3
閲覧数: 2233

Re: vector宣言時の要素数について

クラス(もしくは構造体)のメンバー変数のコンストラクタを呼ぶにはメンバーイニシャライザを使用します。 //Data.h class Data{ //略 public: static struct _SaveData{ _SaveData() : Belongings(10) // 要素数10で初期化 { } BYTE stage; BYTE money; BYTE score; vector<int> Belongings; bool GraphFlag1, GraphFlag2, GraphFlag3, GraphFlag4, GraphFlag5, GraphFlag6, GraphFla...
by a5ua
5年前
フォーラム: C言語何でも質問掲示板
トピック: コードの間違いを指摘して下さい
返信数: 3
閲覧数: 712

Re: コードの間違いを指摘して下さい

8行目:fに関するfor文に、bが使われています。
for(f=0;b<3;f++){
by a5ua
5年前
フォーラム: C言語何でも質問掲示板
トピック: update()を通らない
返信数: 7
閲覧数: 1062

Re: update()を通らない

IDirect3DDevice9::Clear() IDirect3DDevice9::BeginScene() IDirect3DDevice9::EndScene() IDirect3DDevice9::Present() の使い方に問題があると思われます。 描画処理はBeginScene()~EndScene()の間に実行する必要があります。 現状の処理では、BeginScene()~EndScene()の間に描画処理が一つもありません(Draw()関数) したがって、Clear()した結果が画面に反映されていると考えられます。 試しに添付のソースコードで、Clear()とBeginSc...
by a5ua
5年前
フォーラム: C言語何でも質問掲示板
トピック: C++で配列のバグ(?)が消えません
返信数: 12
閲覧数: 1295

Re: C++で配列のバグ(?)が消えません

ActionClass::ActionClass(){ Stage = StageClass(); Stage.CreateStage("#### # " "# # ##" " # ###" " # ####" " ## ###" " #" " ## # " " ## " " ## # " "## ##",10,10,100); } 上記2行目には問題があります。 StageClass()で一時オブジェクトが生成された後、全メンバーがStageにコピーされます。 そのため、一時オブジェクトのデストラクタが呼ばれたあと、メンバー変数のデストラクタが呼ばれると、 同じアドレスに対してdelete...
by a5ua
5年前
フォーラム: C言語何でも質問掲示板
トピック: 同じコードのはずなのに結果が違います...
返信数: 3
閲覧数: 757

Re: 同じコードのはずなのに結果が違います...

23行目が違います。

前者:
for(i=0;i<2;i++)

後者:
for(i=0;i<2;i++);
by a5ua
5年前
フォーラム: C言語何でも質問掲示板
トピック: RGBA配列からグラフィックハンドルを作成したい
返信数: 7
閲覧数: 2148

Re: RGBA配列からグラフィックハンドルを作成したい

とんでもなく重いとおっしゃっていますが、現状どのくらい時間がかかっているのでしょうか?
また、目標としてどのくらい高速化したいのでしょうか?
by a5ua
5年前
フォーラム: C言語何でも質問掲示板
トピック: VC++のデバッグ時にstd::listのpush_backでセグメンテーション違反が発生します
返信数: 5
閲覧数: 2074

Re: VC++のデバッグ時にstd::listのpush_backでセグメンテーション違反が発生します

マズイところを指摘します。(下記ソースコードの、//// コメントの部分) int WINAPI WinMain(HINSTANCE h_instance, HINSTANCE h_prev_instance, LPSTR command_line, int command_show) { try { MainWindow main_window(h_instance); //// このオブジェクトの寿命は、tryブロック内部 main_window.create(L"milfeulle"); main_window.show(); } catch(const std::exception&)...
by a5ua
5年前
フォーラム: C言語何でも質問掲示板
トピック: ディレクトリ内のすべてのファイル名を取得する
返信数: 13
閲覧数: 12932

Re: ディレクトリ内のすべてのファイル名を取得する

Visual Studio 2013なら<filesystem>を使うのがお手軽だと思います。 #include <iostream> #include <vector> #include <string> #include <filesystem> int main() { std::vector<std::string> file_list; // カレントディレクトリ以下のファイル名を取得する // 再帰的にファイル名を取得する場合は、std::tr2::sys::recursive_directory_iteratorを使う for (std::tr2::sys::directory_...
by a5ua
5年前
フォーラム: C言語何でも質問掲示板
トピック: C++ 例外について
返信数: 2
閲覧数: 369

Re: C++ 例外について

throw 1;に対応する例外ハンドラが無いので、std::terminate()が呼ばれてプログラムが強制終了します。 以下のように例外ハンドラを記述すれば、デストラクタが呼ばれます。 int main() { try { Class c; throw 1; } catch (...) { } return 0; } ちなみに、std::terminate()が呼ばれたときにローカル変数のデストラクタが呼ばれるかどうかは 処理系の実装依存みたいです。参考: http://en.cppreference.com/w/cpp/error/terminate 私の手元の環境(VC++2010)では...
by a5ua
5年前
フォーラム: C言語何でも質問掲示板
トピック: DxLib製ゲームの複数解像度対応
返信数: 4
閲覧数: 961

Re: DxLib製ゲームの複数解像度対応

http://homepage2.nifty.com/natupaji/DxL ... html#R11N4
SetWindowSizeExtendRate()を使えば特別な処理なしに、複数解像度に対応できると思います。
by a5ua
6年前
フォーラム: C言語何でも質問掲示板
トピック: 派生クラスへのポインタが勝手にNULLになる
返信数: 2
閲覧数: 779

Re: 派生クラスへのポインタが勝手にNULLになる

【IEffect.hの抜粋】 IEffect(int m) : mMode(m) , mlpNowEffect(NULL) { //初期モード指定版コンストラクタ。 mlpNowEffect = getLpNewEffect(mMode); } IEffect() { //コンストラクタ(オーバーロード)。IEffectクラスのインスタンスが生成されたときに呼ばれる IEffect(0); } 引数なしのコンストラクタで、引数ありのコンストラクタを呼んでいますが、これはおそらく意図した動作をしません。 IEffect(0);という記述は、IEffectクラスの一時オブジェクトを作成してすぐに破...
by a5ua
6年前
フォーラム: C言語何でも質問掲示板
トピック: 変数の勝手な同期
返信数: 10
閲覧数: 819

Re: 変数の勝手な同期

for(i=0; i<=N; i++){ printf("data[%d]=%d\n",i,&data[i]); data[i].Symbol = (char *)malloc(sizeof(char)*(N+1)); data[i].Symbol=NULL; printf(" Symbol=%d\n",&data[i].Symbol); data[i].Code = (char *)malloc(sizeof(char)*(N+1)); data[i].Code =NULL; printf(" Code=%d\n\n",&data[i].Code); } malloc()で得たポインタをN...
by a5ua
6年前
フォーラム: C言語何でも質問掲示板
トピック: 変数の勝手な同期
返信数: 10
閲覧数: 819

Re: 変数の勝手な同期

問題点はたくさんありますが、いっぺんに指摘しても混乱すると思うので、まずはひとつ 文字列のコピーには、strcpyを使いましょう。 while( tok != NULL){ if(line==1){ data[i].Symbol=tok; // 文字列のコピーではない。tokが指す文字列を変更すれば、data[i].Symbolも変更される printf("data[%d].Symbol=%s\n",i,data[i].Symbol); }else if(line==2){ data[i].Code=tok; // 文字列のコピーではない。tokが指す文字列を変更すれば、data[i].Cod...
by a5ua
6年前
フォーラム: C言語何でも質問掲示板
トピック: 文字の変換について
返信数: 5
閲覧数: 566

Re: 文字の変換について

#include <stdio.h> #include <string.h> int main() { char x[100], y, z; int count; printf("string="); scanf("%s", x); count = 0; y = 0; while (count < 100){ if (x[count]=='\0'){ break; } else { count++; y = x[count]; if ((y >= 'A') && (y <= 'Z')){ z = y + 0x20; printf("%c", z); } else ((y >= 'a') &&...
by a5ua
6年前
フォーラム: C言語何でも質問掲示板
トピック: 自分で改造したプログラムがわかりません
返信数: 6
閲覧数: 913

Re: 自分で改造したプログラムがわかりません

//説明になっているかわかりませんが。。。 vector<PS> dictionary; PS ps(string("qw4iqty")); dictionary.push_back(ps); 上のように、dictionaryに要素を追加するには、PS型のオブジェクトを作らなければならないように見えます。 しかし、実際には以下のコードで要素を追加できます。 これは、PS(const string &s)が「変換コンストラクタ」として暗黙的に呼び出されているためです。 vector<PS> dictionary; dictionary.push_back(string("qw4iqty"));...

詳細検索ページへ移動する