検索結果 6140 件

by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: キーボードとキャラを動かくすための関数を深く理解したい
返信数: 7
閲覧数: 1259

Re: キーボードとキャラを動かくすための関数を深く理解したい

Ouxiy さんが書きました:
3ヶ月前
以下はキーボードを用いてキャラクターを動かす関数のプログラムです
キーボードの状態を得る関数のプログラムはあるようですが、キャラクターを動かす関数は見当たりません。
コピペ忘れでしょうか?
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: キーボードとキャラを動かくすための関数を深く理解したい
返信数: 7
閲覧数: 1259

Re: キーボードとキャラを動かくすための関数を深く理解したい

前半の質問については、一旦保留とします、 そしてもう一つ、できれば、別表現で以上のプログラムをもっと簡単に書き直せないでしょうか? というのも、正直、「 フレーム 」や「 押下状態 」などの用語の理解に努めようとしたのですが、うまくいかず、もっとめんどうで地道にあえてわかりやすく簡単に書いたら理解できるような気がしました。 どのような表現を簡単と感じるかは人によるはずなので、わかりません。 例えばloop unrollをしたら「別表現」で「簡単」になるでしょうか? というのも https://dixq.net/g/02_09.html より 私が押したいキーボードは右、左、下、上の四つのみなの...
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 原因を知りたい、バグを解決したい。
返信数: 4
閲覧数: 1197

Re: 原因を知りたい、バグを解決したい。

まず、どうして描画先を裏ページにせずにScreenFlip();を使うことに こだわる のですか? ScreenFlip関数のリファレンス を見ると、 概略  フリップ関数、画面の裏ページ(普段は表示されていない)を 表ページ(普段表示されている)に反映する 解説  裏ページの内容を表ページに反映します。 (裏ページ、表ページについては 『SetDrawScreen』関数の解説を参照してください) 注…この関数を使用した後の裏ページの内容は環境によって変わりますので、ScreenFlip 関数を使用した後は ClearDrawScreen 等を使用して裏ページを初期化して下さい となっています...
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ロックマンエグゼのような3*3マスを移動できるようにしたい
返信数: 31
閲覧数: 2886

Re: ロックマンエグゼのような3*3マスを移動できるようにしたい

[★行いたいこと] 静止状態と移動状態では常に真正面を向いていましたが、移動する一緒んだけ横向きにして、移動し終わったら真正面に戻るようにしたいと思い、みけさんの描いた後のプログラムに自分のアイディアを入れてみました。(うまく機能していないですが) 「移動する一緒ん」というのは、「移動する一瞬(1フレーム)」のことでしょうか? だとすると、例えばこのようにするとできるでしょう。 (「横向き」というのはよくわかりませんが、gh[8]の代わりにgh[2]を描画すれば「横向き」になると仮定しました) #include "DxLib.h" int Key[256]; // キーが押されているフレーム...
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ロックマンエグゼのような3*3マスを移動できるようにしたい
返信数: 31
閲覧数: 2886

Re: ロックマンエグゼのような3*3マスを移動できるようにしたい

// カーソルキーの右が押されている if (Key[KEY_INPUT_RIGHT] == 1) { // 右に動けるなら動く if (playerX + 1 < MAP_WIDTH) playerX++; // 画面に出力 ScreenFlip(); // プレイヤーの画像を描画 while(playerX++){ DrawGraph(playerX, 0, gh[11], FALSE); } } としてみたところ、キャラが消えるのはわかるのですが、ステージも消えてしまうのはなぜでしょうか。 if (playerX + 1 < MAP_WIDTH) playerX++; によってplay...
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: シューティングゲームについて
返信数: 1
閲覧数: 307

Re: シューティングゲームについて

ファイルenemydata.csvのオープンに失敗していると考えられます。
該当のファイルが正しいファイル名で適切な位置にあるか、
およびプログラム実行時のカレントディレクトリが意図通りかを確認してください。

また、ライブラリ内にチェックがあると仮定せず、
ファイルがオープンできたか(戻り値fpがNULLでないか)のチェックを明示的に行い、
オープンに失敗していた場合は先の処理に進まないようにした方が安全でしょう。
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ロックマンエグゼのような3*3マスを移動できるようにしたい
返信数: 31
閲覧数: 2886

Re: ロックマンエグゼのような3*3マスを移動できるようにしたい

別のバージョンも書いてみました。 #include "DxLib.h" int Key[256]; // キーが押されているフレーム数を格納する // キーの入力状態を更新する int gpUpdateKey() { char tmpKey[256]; // 現在のキーの入力状態を格納する GetHitKeyStateAll(tmpKey); // 全てのキーの入力状態を得る for (int i = 0; i < 256; i++) { if (tmpKey[i] != 0) { // i番のキーコードに対応するキーが押されていたら Key[i]++; // 加算 } else { // 押...
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ロックマンエグゼのような3*3マスを移動できるようにしたい
返信数: 31
閲覧数: 2886

Re: ロックマンエグゼのような3*3マスを移動できるようにしたい

質問に答えるのは難しそうな気がしたので、 とりあえずプレイヤーが3*3マスを移動できるプログラムを適当に書いてみました。 #include "DxLib.h" int Key[256]; // キーが押されているフレーム数を格納する // キーの入力状態を更新する int gpUpdateKey() { char tmpKey[256]; // 現在のキーの入力状態を格納する GetHitKeyStateAll(tmpKey); // 全てのキーの入力状態を得る for (int i = 0; i < 256; i++) { if (tmpKey[i] != 0) { // i番のキーコードに...
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: キャラを[0][0]~[2][2]の配列の間を移動させるようにしたい
返信数: 2
閲覧数: 1318

Re: キャラを[0][0]~[2][2]の配列の間を移動させるようにしたい

「キャラを[0][0]~[2][2]の配列の間を移動させる」というのは意味がよくわからないですが、 for文で解決できそうだと思います。 そもそも、「for文で解決」の定義がよくわかりません。 for (;;) { 解決するコード break; } とすれば「for文で解決」したことになるのでしょうか? このコードには 前の質問 のコードと同様に ScreenFlip();やClearDrawScreen();があちこちで呼ばれていて よくない SetDrawScreen(DX_SCREEN_BACK); (など) で描画先を裏画面にしていないのにScreenFlip();を使っている という...
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: [DxLib]2DACTでの重力と地形判定
返信数: 4
閲覧数: 1268

Re: [DxLib]2DACTでの重力と地形判定

詳しく見てはいないですが、Player_maphit_*系の変数の値を設定した後、
それらの値を使った判定を行う前にプレイヤーの座標を更新してしまっているので、
これが「1フレームのラグ」になりそうですね。

そのため、Player_maphit_*系の変数の値の設定を
プレイヤーの座標の更新(Gravity関数の呼び出しまで)の後に持ってくると改善するかもしれません。
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 意図したキャラの移動とUPとDOWNについて。
返信数: 3
閲覧数: 1294

Re: 意図したキャラの移動とUPとDOWNについて。

一つは、+加算では、動画 ロックマンエグゼ のように きっちり一マス分動けないのですが、どんな関数をどのように使えば瞬間移動するように左右上下に動けるでしょうか? 「キーが押され始めたフレームでだけ」「一マス分座標を動かす」ようにするといいでしょう。 例えば 2.9章 全てのキーの入力状態を取得する のgpUpdateKey関数を使うことで、キーが何フレーム押されているかを取得できます。 二つ目は、keyを使いupで+bとするとy座標は下に下り、downで-bとするとyは上がるのですが、これは何故でしょうか? 仕様です。 なぜそのような仕様になっているかは、よくわかりません。 ちなみに、この...
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: キャラの描画が出来ません。
返信数: 3
閲覧数: 1307

Re: キャラの描画が出来ません。

DrawGraph関数 の第3引数には画像のハンドルを渡さないといけないのに、 LoadDivGraph関数 の戻り値の0または-1を渡しているため、 画像を描画できない可能性が高いです。 また、仮にたまたまこれが画像のハンドルとして有効な値となり、画像が描画されたとしても、 すぐに ClearDrawScreen関数 により消されてしまうでしょう。 これが「なぜか反映されません。なぜでしょうか。」の答えです。 また、このコードには、他にも ・ SetDrawScreen(DX_SCREEN_BACK); を呼び出さずに ScreenFlip(); を呼び出している  (不自然なパターン、動...
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 背景をバックにキャラを動かす。
返信数: 5
閲覧数: 1447

Re: 背景をバックにキャラを動かす。

Ouxiy さんが書きました:
3ヶ月前
ちなみに、キャラはループに入れなくても描画できたのですが、なぜでしょうか。
キャラをループに入れなくても描画できるようなコードを書き、実行したからだと思います。
例えば、1.4章 画像をロードして表示するのコードでは、
ループを用いずにキャラを描画しています。
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 背景をバックにキャラを動かす。
返信数: 5
閲覧数: 1447

Re: 背景をバックにキャラを動かす。

ループ中で背景しか描画していないから、背景しか映らないのですね。
背景とキャラの描画を同じループに入れましょう。
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: mac gccの使用者
返信数: 2
閲覧数: 1256

Re: mac gccの使用者

質問の意味がよくわかりません。 OS:mac, コンパイラ:gcc です。 そのgccは、GNU gccですか?それとも、Clangですか? (質問には関係ないかもしれませんが) visual studioをインストールしないと出来ないじゃないですか。 何をしたいのですか? そこで、それをインストールしてゲームをさあ作るとなった時、ゲーム作成に使用するコンパイラは、gccで出来ますか? どんなゲームをどんなプログラミング言語で作りたいかにもよりますが、 例えばCUIの単純なゲームであれば、C言語を用いてgccで出来るでしょう。 (visual studioをそこに絡めることができるかは、また別...
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 初心者です。教えてください
返信数: 2
閲覧数: 1205

Re: 初心者です。教えてください

Wandboxでコンパイル したところ、以下の警告が出ました。 prog.c: In function 'check': prog.c:58:7: warning: implicit declaration of function 'checkFrip' [-Wimplicit-function-declaration] 58 | if (checkFrip(y, x, turn, vec) == 1) | ^~~~~~~~~ prog.c: At top level: prog.c:63:1: warning: data definition has no type or storage ...
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: c言語についてわからない問題があります。
返信数: 1
閲覧数: 1116

Re: c言語についてわからない問題があります。

フォーラムルールを読み、従ってください。
課題の丸投げ(問題文だけ書く事)は禁止です。
また、(ああfffさんの名前が該当するとは断言できませんが)いい加減な名前を使うこともいけません。
ああfffさんの質問はありますか?
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 平均を出すデータ
返信数: 2
閲覧数: 1123

Re: 平均を出すデータ

配列cが4要素しか確保されておらず、範囲外への読み書きが発生するため、未定義動作になります。
そして、範囲外への書き込みによりデータが破壊されたため、出力が変になったと考えられます。
配列cも配列bと同様に5要素確保するようにするといいでしょう。
(アクセス時の添字を修正する方法もありますが、こっちの方が簡単です)
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 指数関数について
返信数: 2
閲覧数: 1129

Re: 指数関数について

Wandboxで実行 した結果は t = 0.0000 0.7854 1.5708 2.3562 3.1416 3.9270 4.7124 5.4978 6.2832 1th exp = 7.2832 8.2832 9.2832 10.2832 11.2832 12.2832 13.2832 14.2832 15.2832 1th err = 16.2832 17.2832 18.2832 19.2832 20.2832 21.2832 22.2832 23.2832 24.2832 3th exp = 25.2832 26.2832 27.2832 28.2832 29.2832 30.2...
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 関数の値の保存
返信数: 3
閲覧数: 1159

Re: 関数の値の保存

ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、 BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただける と、 見やすくてありがたいです。 Wandboxで実行 したところ、 prog.c: In function 'bisec': prog.c:18:1: warning: 'a' is used uninitialized in this function [-Wuninitialized] 18 | double datax1[a],datax2[b]; | ^~~~~~ prog.c:18:1: warning: 'b' is us...
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: メモ帳からカンマ付き文字列のデータの読み込みが出来ません。
返信数: 54
閲覧数: 4002

Re: メモ帳からカンマ付き文字列のデータの読み込みが出来ません。

オフトピック
プログラマ見習い さんが書きました:
3ヶ月前
かめのこのこのさん。
プログラマ見習い さんが書きました:
3ヶ月前
みけCTAさん。
名前の間違いがみられますね。
ここもコピペするといいかもしれません。
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: メモ帳からカンマ付き文字列のデータの読み込みが出来ません。
返信数: 54
閲覧数: 4002

Re: メモ帳からカンマ付き文字列のデータの読み込みが出来ません。

では256種類を超えるにはunsigned char型をunsigned int型にすれば良いのではと思い いくらmapdataの要素を格納する一時変数をunsigned int型にしても、 肝心のmapdataの要素(やキャラクターのkind)がcharのままでは、 charの範囲を超えるデータを読み込むことはできません。 したがって、拡張するならここも拡張するべきです。 一応、新しいのをアップロードします。間違っている部分をもう少し詳しく教えてください。 map0.txt 0000000000111111111100000000001111111111 00000000000000000...
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: メモ帳からカンマ付き文字列のデータの読み込みが出来ません。
返信数: 54
閲覧数: 4002

Re: メモ帳からカンマ付き文字列のデータの読み込みが出来ません。

 気になる所があったので質問します。  「16進数で書けば256種類のデータを扱える」点について、256種類が限界である理由をchar型の限界が256にあると理解していたので、では256種類を超えるにはunsigned char型をunsigned int型にすれば良いのではと思い、、unsigned int型にしてコンパイルした所、0x11の部分が表示されなくなりました。  0x11の10進数の17で、0xAAは10進数の170なので、unsignedのないchar型だと0x11がマイナスの部分に入ってしまう事が原因だと理解していたので、unsigned int型0x11でも表示されない事...
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: メモ帳からカンマ付き文字列のデータの読み込みが出来ません。
返信数: 54
閲覧数: 4002

Re: メモ帳からカンマ付き文字列のデータの読み込みが出来ません。

このようなコードを書いてみました。 strchrおよびstrcmpを使うために、 #include <DxLib.h> の後ろに #include <cstring> を追加してください。 //メモ帳からマップデータを読み込み void MapLoad(){ //各キャラクターのデータを初期化します。 ZeroMemory(charadata,sizeof(charadata)); char buf[1024]; sprintf_s(buf,1024,"media/map%d.txt",1); //ファイル名を用意する int fp; //ファイルハンドル fp=FileRead_open(b...
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: メモ帳からカンマ付き文字列のデータの読み込みが出来ません。
返信数: 54
閲覧数: 4002

Re: メモ帳からカンマ付き文字列のデータの読み込みが出来ません。

どう直せばいいかを考えるのは難しそうだったので、 とりあえず、コンマで区切ってデータを読み込む部分を作ってみました。 変換の方法は、何がしたいのかがわからないのでわかりません。 やりたいことやその実装に応じて適宜行ってください。 ただし、少なくとも、指摘されている通りchar型に複数の文字は (使う文字の集合を決めて自分でエンコードするなどの工夫をしない限り)入りません。 #include <DxLib.h> #include <cstdio> #include <vector> #include <string> // 対応していない環境用 //#define sprintf_s snpri...
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: どうして出力結果がおかしくなるのか教えてください。
返信数: 2
閲覧数: 1262

Re: どうして出力結果がおかしくなるのか教えてください。

GetWord関数内において、
入力によっては未初期化の自動変数lenの値が計算に使用されてしまい、未定義動作となります。
例えば、入力の最初の文字が空白などでなかったり、
入力の途中で空白などが2個以上連続せず1個だけ現れた時に、未定義動作となります。
入力にかかわらずlenを初期化してから処理をするようにするといいでしょう。
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: タイピングゲーム
返信数: 3
閲覧数: 1234

Re: タイピングゲーム

変数nyuが28行目で0に初期化された後、更新されることなく78行目で割る数として使われています。
そのため、ゼロ除算で強制終了すると予測できます。
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 配列とfor文を使っているのに画像が一つしか表示されない。
返信数: 25
閲覧数: 2711

Re: 配列とfor文を使っているのに画像が一つしか表示されない。

「初期化」のはずなのに毎フレーム呼び出してしまっているため、
最初のキャラクターの種類と情報が破壊されるはずだと思います。
本当にこのソースコードで正常に動作していますか?
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 配列とfor文を使っているのに画像が一つしか表示されない。
返信数: 25
閲覧数: 2711

Re: 配列とfor文を使っているのに画像が一つしか表示されない。

プログラマ見習いさんに見つけられないだけで、プログラムに間違いがある可能性が高いと考えられます。
差し支えなければ、分割したソースコード(コンパイルできる一式)を見せていただけますか?
また、デバッガが使える環境であれば、デバッグ情報をつけるモードでコンパイルし、デバッガ上で実行することで、
アクセス違反などで強制終了した場所がわかる可能性があります。
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 意図しない出力がでます。
返信数: 4
閲覧数: 1464

Re: 意図しない出力がでます。

numはstaticではないので、
keisanが呼び出されるたびに新しいnumが作られ、それに対する書き込みが行われます。
再帰呼び出しした先では新しいnumに対する操作を行い、呼び出し元のnumは参照しません。
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 配列とfor文を使っているのに画像が一つしか表示されない。
返信数: 25
閲覧数: 2711

Re: 配列とfor文を使っているのに画像が一つしか表示されない。

足りない部分を補完した以下のコードを実行した結果、 フリーズは確認できず、複数の「キャラクター」が動く様子を確認できました。 #include <DxLib.h> const int YHMAX = 15; const int XWMAX = 80 - 1; // なぜか+1されているので、それに合わせて-1する struct ch_num_t { char kind; // 追加したメンバ float x; float y; int body; int anipat; }; struct ch_t { ch_num_t num[YHMAX * (XWMAX + 1)]; } ch; stru...
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 意図しない出力がでます。
返信数: 4
閲覧数: 1464

Re: 意図しない出力がでます。

理由は、再帰呼び出ししても呼び出し元のnumは書き換わらないことです。
そのため、whileの条件がひとたび真になると、無限に計算を繰り返してしまいます。
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 配列とfor文を使っているのに画像が一つしか表示されない。
返信数: 25
閲覧数: 2711

Re: 配列とfor文を使っているのに画像が一つしか表示されない。

提示されたコードでのマップでは、'1'と'A'が合計30個しかなく、
添字として'1'と'A'が有効なのであれば有効になるはずです。
バグがある可能性が否定出来ないので、コンパイル・実行できる形にして試してみます。
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 意図しない処理が行われて先に進みません。。。
返信数: 3
閲覧数: 1210

Re: 意図しない処理が行われて先に進みません。。。

手元の環境ではエラーを再現できませんでした。
具体的にどのようなエラーが戻ってくるのか教えていただけますか?
もしよろしければ、エディットボックス内をどう変更したかも教えてください。

ちなみに、sqlite3_errmsgに本来渡すべきと考えられるdbではなくhDllを渡しているのはなぜですか?
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 配列とfor文を使っているのに画像が一つしか表示されない。
返信数: 25
閲覧数: 2711

Re: 配列とfor文を使っているのに画像が一つしか表示されない。

#11の訂正です。 訂正前:常にマップに'0'を代入する mapdata[y][x] = '0'; if (charaValid) { // キャラクターを取り出していたら、記憶しているキャラクターの数を増やす charaCount++; } 訂正後:キャラクターを取り出した場合のみ、マップに'0'を代入する if (charaValid) { // キャラクターを取り出していたら // マップからキャラクターを消して mapdata[y][x] = '0'; // 記憶しているキャラクターの数を増やす charaCount++; } こうすることで、キャラクター化しない「マップ」の要素にも対...
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 配列とfor文を使っているのに画像が一つしか表示されない。
返信数: 25
閲覧数: 2711

Re: 配列とfor文を使っているのに画像が一つしか表示されない。

こんな感じにするといいと思います。 (コンパイルしてチェックしていないので、typoなどあったらごめんなさい) int charaCount; // 取り出したキャラクターの数を格納する //●各キャラクターのデータの初期化 void CharaInit() { charaCount = 0; // キャラクターが1個も無い状態にする for (int y = 0; y < YHMAX; y++) { for (int x = 0; x < XWMAX + 1; x++) { char i = mapdata[y][x]; // キャラクターの種類 int charaValid = 0; //...
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: どうしてもエラーの原因がわからないので教えてください。。。
返信数: 4
閲覧数: 1243

Re: どうしてもエラーの原因がわからないので教えてください。。。

FindWindowExFindWindowEx関数の呼び出し(全て)において、
未初期化の自動変数の値を関数に渡しているのも良くなさそうですね。
適切に初期化するか、適切な変数(メンバを含む)に置き換えるのが良いでしょう。
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: どうしてもエラーの原因がわからないので教えてください。。。
返信数: 4
閲覧数: 1243

Re: どうしてもエラーの原因がわからないので教えてください。。。

API関数はANSI版かUnicode版かを指定していないのに、 文字列はLを使って明示的にUnicode版を指定しているのがよくなさそうですね。 以下の(A)(B)(C)どれか1セットの修正を試してみてください。 (A) 明示的にANSI版を用いる ・関数名(FindWindow, FindWindowEx, MessageBox)の最後に全てAをつける ・文字列の前にあるLを全て削除する (B) 明示的にUnicode版を用いる ・関数名(FindWindow, FindWindowEx, MessageBox)の最後に全てWをつける ・LPCSTRへのキャストを全て削除する (C) コン...
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 単方向リストの交換
返信数: 20
閲覧数: 2003

Re: 単方向リストの交換

かめのこにょこにょこ さんが書きました:
4ヶ月前
・リストの先頭、中間、末尾をさすnode*型変数
さらにヒントとして、最初は先頭を指しているnode*型変数a, bがあるとき、
「aを2回進めてbを1回進める」を繰り返せば、
aが末尾を指す時にbは中間を指しますね。
※何も考えず常に2回進めようとしてしまうと、末尾から飛び出してしまって危険なことがあるので注意
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 構造体配列の動的確保
返信数: 15
閲覧数: 2372

Re: 構造体配列の動的確保

box さんが書きました:
4ヶ月前
Segmentation fault: 11と出ました。
あらら。他の回答者からの回答(そのままコンパイルしたら全角空白のためにエラーが出た)と
食い違ってますね。
全角空白があってもそのまま実行できる処理系もあるので、食い違っているとは限りません。
https://wandbox.org/permlink/h55LBXsvMrPFijHU
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 変な文字列がcygwinにてあらわされるのを何とかしたいです。
返信数: 5
閲覧数: 1472

Re: 変な文字列がcygwinにてあらわされるのを何とかしたいです。

ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、 BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただける と、 見やすくてありがたいです。 コピペミスなのか、main関数の定義がread_data関数の中に入ってしまっていますね。 これではエントリポイントとして認識されないでしょう。 また、C言語では関数のネストはGCC拡張であり、C++では使えないので、 なるべく使わないほうがいいと思います。 さらに、エントリポイントのmain関数の戻り値の型はvoidではなくintにするべきです。 voidだとC言語では処理系依存になり、C++の規格で...
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: シンプソン公式
返信数: 8
閲覧数: 1971

Re: シンプソン公式

box さんが書きました:
5ヶ月前

コード:

int main(void){
double dean(double,double,double,double);
double a,b,s,dx,y0,y1,x,pi;
こんなところにプロトタイプ宣言を置いちゃっていいんでしょうか。
怒られや減点が発生したりコーディング規約違反になったりするかはわかりませんが、
文法・意味的には全く問題ないはずです。
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 【CSVファイルから読みこんだ文字列の比較】
返信数: 2
閲覧数: 1347

Re: 【CSVファイルから読みこんだ文字列の比較】

s1 == s2は文字列の比較ではなく、(配列から変換された)ポインタの比較です。
C言語で文字列を比較するには、strcmp関数を用いるといいでしょう。
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 三角形の積み上げ
返信数: 2
閲覧数: 1429

Re: 三角形の積み上げ

うまく作成できるようにやればいいと思います。
参考になると思うので、「二等辺三角形単体であれば問題ない」の状態のコードを提示できますか?

なお、ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、
BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただけると、
見やすくてありがたいです。
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: Debug Assertion Failed!
返信数: 13
閲覧数: 898

Re: Debug Assertion Failed!

このプログラムには普通の環境では不正な引用符や、不自然な円マークが含まれており、
コピペではなく新規に打ち直したものであると推測できます。
そのため、本来のプログラムに含まれているtypoが含まれないなど、無効な質問になっている可能性が考えられます。
本当にコンパイル・実行しているプログラムをコピペして提示できますか?

なお、ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、
BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただけると、
見やすくてありがたいです。
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 乱数と構造体について教えてください。
返信数: 2
閲覧数: 1468

Re: 乱数と構造体について教えてください。

  • 配列zahyoは2要素しかなく、範囲外のzahyo[2]に書き込みをしてしまうため、危険です。
    zahyoの要素数を増やしてください。
  • DXライブラリの機能を使う前には、DxLib_Init()関数を呼ぶべきであると考えられます。
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 構造体の ptr-> id = 101; のような表記について
返信数: 2
閲覧数: 1508

Re: 構造体の ptr-> id = 101; のような表記について

このプログラムについて質問です. ptr -> id や ptr -> height のような表現はポインタを表していますよね? ポインタptrが指す構造体のメンバを表しています。 このプログラムの場合、ptr -> id はint型、ptr -> height はdouble型で、ポインタを表していません。 実際, printf("%p, %d", ptr->id, *(ptr->id) ); は正しく出力されますが, printf("%d ", ptr->id ); は警告が出て,そのまま実行しても正しく出力されません. どのような警告ですか? 「正しく出力される」とはどのようなものが出...
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 構造体とメモリについて質問です
返信数: 12
閲覧数: 2052

Re: 構造体とメモリについて質問です

>intではなくdoubleですね。 違うよ #1 >質問は,a はint型で4biteのはずですが,なぜ a→b のときに 8bite進んでいるのでしょうか? このint ですよ。 まず、double型のメンバbが4の倍数であり8の倍数でないアドレス(メンバaの直後)に配置されず、 8の倍数であり16の倍数ではないアドレスに配置されていることから、 この環境ではdouble型が8バイトアラインメントであることが読み取れます。 構造体中のdouble型メンバであるbを8バイトアラインメントにするため、 構造体A全体が8バイトアラインメント(もしくは8の倍数アラインメント)になると考えられます...
by みけCAT
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 構造体とメモリについて質問です
返信数: 12
閲覧数: 2052

Re: 構造体とメモリについて質問です

Math さんが書きました:
5ヶ月前
つまり この int は8 バイトアライメント(= 64ビットアライメント)です。
intではなくdoubleですね。
by みけCAT
6ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 再帰関数
返信数: 8
閲覧数: 718

Re: 再帰関数

再帰を使わずに書いてみました。 int型が16ビットの環境では足りません。 int型で少なくとも0~16,777,216の整数を保存できる環境で実行してください。(n<=8の場合) #include <stdio.h> #include <stdlib.h> int main(void) { int n; int i, j; int max; int* data; if (scanf("%d", &n) != 1) return 1; if ((data = malloc(sizeof(int) * n)) == NULL) { perror("malloc"); return 1; } ma...
by みけCAT
6ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: [DXライブラリ使用]構造体と管理部を用いたジャンプ処理の実装について
返信数: 6
閲覧数: 523

Re: [DXライブラリ使用]構造体と管理部を用いたジャンプ処理の実装について

以下のコードと画像を追加で用意し、実行してみました。 main.cpp #include <DxLib.h> #include "Player.h" int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { if (ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() != 0) return -1; SetDrawScreen(DX_SCREEN_BACK); int img = LoadGraph("player.png"); Player_t p = {}; Playe...
by みけCAT
6ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 実行できません
返信数: 8
閲覧数: 1027

Re: 実行できません

もしくは、「まだ実行できない」という認識が「誤り」である可能性が考えられます。
by みけCAT
6ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 実行できません
返信数: 8
閲覧数: 1027

Re: 実行できません

Wandboxでは正常に実行できるので、環境が不適切な可能性が考えられます。
by みけCAT
6ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: どなたか教えてください。構造体について
返信数: 9
閲覧数: 976

Re: どなたか教えてください。構造体について

littlestream さんが書きました:
6ヶ月前
27行目の
*(book_list[num])->title = 1;
しまった、確かにここ(の元のコード)は配列に代入していて、提示されたエラーメッセージが出そうですね。
bufが関係していないので、見落としました。
申し訳ありません。
by みけCAT
6ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: どなたか教えてください。構造体について
返信数: 9
閲覧数: 976

Re: どなたか教えてください。構造体について

それっぽいコードが提示されていないので断定はできませんが、
エラーメッセージ通り、strcpy関数ではなく代入演算子で値をセットしようとしたからではないでしょうか?

p.s.
ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、
BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただけると、
見やすくてありがたいです。
by みけCAT
7ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: バイナリツリーの作成について
返信数: 3
閲覧数: 419

Re: バイナリツリーの作成について

ちなみに、ぱっと見main関数内でregistBtree関数の戻り値を投げ捨てていて良くないように見えますが、 よく見ると、(malloc関数が失敗しない場合)main関数のstartはNULLにならず、 registBtree関数はnodeがNULLでない場合渡されたnodeをそのまま返すので、 main関数内でregistBtree関数の戻り値をstartに代入しなくても問題はありません。 また、nodeにNULLを渡す可能性があるregistBtree関数内では、 仮にアクセス違反による強制終了が起こらないとすると、 きちんとregistBtree関数の戻り値を適切な場所に代入しており...
by みけCAT
7ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: バイナリツリーの作成について
返信数: 3
閲覧数: 419

Re: バイナリツリーの作成について

registBtree関数において、nodeがNULLかチェックする前にnode->dataにアクセスしているので、
2個目の文字列を読み込んだ後のregistBtree関数の呼び出しにより、
アクセス違反でプログラムが強制終了してしまい、3個目以降の文字列が読み込めないようですね。
by みけCAT
7ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 文字列の個数カウント
返信数: 5
閲覧数: 669

Re: 文字列の個数カウント

ctype.hを使うかわりに、ctype.hで宣言される関数を直接宣言して使用する方法もあります。 与えられた文字列のうち、半角の英小文字のみを出力するサンプルです。 #include <stdio.h> /* 関数の宣言 */ int islower(int c); int main(void) { char str[] = "abcABC123!#$"; int i; for (i = 0; str[i] != '\0'; i++) { /* unsigned charにキャストしないと、 全角文字などが入力されたときに負の数が入って異常動作する可能性がある */ if (islower(...
by みけCAT
7ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 文字列の個数カウント
返信数: 5
閲覧数: 669

Re: 文字列の個数カウント

課題の丸投げは禁止です。 フォーラムルール を読み、従ってください。 特に、 ・aojiruさんは何がわかっていて、何がわかっていないか ・途中まで書いたコードはあるか (あるなら提示してほしい) を聞きたいです。 とはいえ、他の回答者さんがとっとと答えを書いてしまう可能性があるのでヒントを出しておくと、 今回はstring.hは使えるがctype.hは使えないようなので、半角文字のみ対応でいいのであれば、 const char* KOMOZI = "abcdefghijklmnopqrstuvwxyz"; のようにカウント対象の文字のリストを文字列として用意しておいて、 if (strchr...
by みけCAT
7ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 配布されてるスクリプトをコピー&ペーストしたら
返信数: 8
閲覧数: 692

Re: 配布されてるスクリプトをコピー&ペーストしたら

直接、ここに、画像を upload することは、できないようですね。 あたっしゅさんが制限を受けているかはわかりませんが、私はできます。 登録(してログインしている)ユーザーならできるはずです。 やり方は、 1. 投稿画面の入力欄の下の「添付ファイル」をクリックする 2. 「ファイル追加」ボタンをクリックし、アップロードする画像を選ぶ  (テキストを入れる投稿欄へのドラッグ&ドロップでもいいはず。  添付ファイルのところへのドラッグ&ドロップではダメなので注意) 3. コメントを適当に入力する 4. ファイル名の右の「インライン表示」ボタンを押すことで、画像を本文中に入れることができる 5....
by みけCAT
7ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: #define文法的には間違ってない(多分)のにエラー
返信数: 6
閲覧数: 617

Re: #define文法的には間違ってない(多分)のにエラー

「ENEMY_NUMを定義している(た)部分」より前でRingChara.hなどをincludeしており、
ringchara.hでエラーが出ていますね。
そのため、ENEMY_NUMの定義より前に使用が来てしまった可能性が考えられます。
循環などが起こらないよう、includeの関係を考え直すべきでしょう。
by みけCAT
7ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: putchar()関数について質問します。
返信数: 6
閲覧数: 697

Re: putchar()関数について質問します。

もしそうなら、main1()関数も、字化けするはずです。main1()の方は正常に作動します。 私の仮説が正しい場合、「main1()関数も、字化けするはず」ではありません。 main1()関数ではプログラムに埋め込んだ文字(列)データは出力せず、入力に基づいたデータを出力します。 そのため、通常はある環境で入力に用いる文字コードと出力に用いる文字コードは同じだと考えられるので、 ソースコードの文字コードによる問題は発生しないと考えられます。 ('\n'を表すコードが一般的な10ではない特殊な文字コードなら、問題が発生するかもしれませんが…) 一方、main0()関数では、プログラムに埋め込...
by みけCAT
7ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: putchar()関数について質問します。
返信数: 6
閲覧数: 697

Re: putchar()関数について質問します。

Windows 7 Home Premium Service Pack 1 (64ビット) Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland でテストしましたが、字化けは確認できず、正常に「これは、ファイルシステムのテストです。」と出力されました。 本当にputchar()が上手く機能しないのですか? ソースコードを実行環境と合わない文字コードで保存し、 そのバイト列がそのまま出力されているため、字化け...
by みけCAT
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C++でソケット通信を用いたメールの送信
返信数: 9
閲覧数: 997

Re: C++でソケット通信を用いたメールの送信

このスレッドにこれを書くのはこれで3回目ですが、 recvを続けるかどうかは、 受信したデータをプロトコルに沿って解釈し、 レスポンスが終わったかどうかで判断するべきです。 SMTPの仕様 によれば、コマンドのレスポンスは 1個または複数個の「行」からなります。 「行」は、3個の数字から始まり、CR('\r')LF('\n')で終わる文字列です。 「行」の最初の3個の数字の次の文字がハイフンであればこの後も「行」が続き、 そうでなければそれがこのレスポンスの最終「行」です。 従って、3個の数字の後にハイフンが無い「行」の最後のCRLFまで受信するまでrecvを続け、 それを受信したらrecvを...
by みけCAT
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: fgetsで取得した文字列の末尾の判定
返信数: 7
閲覧数: 618

Re: fgetsで取得した文字列の末尾の判定

配列の中身をsprintfで表示すると、"."で終わっている場合でも改行までは空白の何かが入っているようで 「空白の何か」が何かわかりますか? そもそも、本当に入っているのですか? 提示されたコードから未定義動作を起こす行int str_length = strlen(str);を削除し、 書式%cを%dか%02xに変更して文字コードを出力すると、正体がわかるかもしれません。 配列の中身をsprintfで表示するところまで作成したコードは以下になります このコードは、未初期化の自動変数strの値をstrlen関数内で計算に使用するため、未定義動作になります。 また、「sprintfで表示する...
by みけCAT
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C++でソケット通信を用いたメールの送信
返信数: 9
閲覧数: 997

Re: C++でソケット通信を用いたメールの送信

意味的には1まとまりのデータでも分割して送られる可能性があるTCPの仕様を無視し、
recvを1回だけ呼び出すことでサーバーからの応答を全て受信できると勘違いしたプログラムを用いたことにより、
実際はSTARTTLSコマンドを送ったにもかかわらず、
SSL/TLSのネゴシエーションを開始せずに別のデータを送ったために切断されているのを、
MAIL FROMで切断されてしまうと勘違いしたようですね。

前にも書いたとおり、きちんとサーバーから送られてきたデータを見てプロトコルに沿って解釈することで、
データの区切りを判定し、データの区切りまで必要十分に受信するべきです。
by みけCAT
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C++でソケット通信を用いたメールの送信
返信数: 9
閲覧数: 997

Re: C++でソケット通信を用いたメールの送信

recv関数は、デフォルトでは受信したデータが無い(これまで来た分は全て読みきっている)時は、 新しいデータを受信するまで待つ仕様になっています。 一方、サーバー側では、送るべき応答は返したので、クライアント側からの次のコマンドを待っています。 そのため、デッドロックになっているようです。 これを回避するには、受信したデータをちゃんと見てプロトコルに沿って解釈し、 サーバーの応答が終わってクライアントがデータ(コマンド)を送るタイミングになったら、 recv関数を呼ぶのをやめ、次のデータ(コマンド)を送るようにするべきでしょう。 また、とりあえず止まらないようにするには、ioctlsocket...
by みけCAT
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C++でソケット通信を用いたメールの送信
返信数: 9
閲覧数: 997

Re: C++でソケット通信を用いたメールの送信

また、sprintf_s()関数が使われていますが、使い方が不適切なようです。
sprintf_s()関数の第二引数には書き込み先のバッファサイズを指定するはずなのに、これがありません。
従って、修正するべきでしょう。
  • バッファサイズを引数に取らないsprintf()関数に変更する
  • 引数にバッファサイズを追加する
  • より多くの環境で使えると考えられるsnprintf()関数に変更した上で、引数にバッファサイズを追加する
などの修正方法が考えられます。
by みけCAT
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C++でソケット通信を用いたメールの送信
返信数: 9
閲覧数: 997

Re: C++でソケット通信を用いたメールの送信

まず、ホスト名が、質問文では「smtp.gmal.com」になっていますが、 提示されたコードでは「smtp.gma i l.com」になっています。 実際に実行しているプログラムではどっちになっているでしょうか? 次に、 プリンタ、スキャナ、アプリからメールを送信する - G Suite 管理者 ヘルプ によると、smtp.gmail.comではポート25は使えないようです。 smtp-relay.gmail.comおよびaspmx.l.google.comではポート25が使えるようなので、 代わりにこれらのホスト名を使うとよさそうであると考えられます。 それでも接続できない場合、プロバイダ...
by みけCAT
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 足し算
返信数: 5
閲覧数: 515

Re: 足し算

Math さんが書きました:
8ヶ月前
i++ が単項演算子であり
Math さんが書きました:
8ヶ月前
i++ は単項演算子
i++ は単項演算子ではありません。
識別子(変数?)と単項演算子を組み合わせた式です。
オフトピック
よく読んでいなかったため、最初の投稿の段階で気付くことができませんでした。
申し訳ありません。
by みけCAT
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 配列2
返信数: 7
閲覧数: 497

Re: 配列2

オフトピック
問題の出力結果、よく見たら右揃えなんですね…
by みけCAT
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 配列2
返信数: 7
閲覧数: 497

Re: 配列2

goukeiの要素数は十分小さくなりそうなので、
ヒープでもスタックでも静的変数の領域(.dataセクションか.bssセクション?)でも、
好きな場所に置けば良いと思います。

採点する先生の好みやこだわりなどによっては、
それに反する場所に置くと怒られたり不正解や減点になったりする可能性も考えられますが、
こちらではそこまではわかりません。
by みけCAT
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 足し算
返信数: 5
閲覧数: 515

Re: 足し算

i++は無限になりますが、 i=i+1は1のままになります。 なぜでしょうか? これは残念ながら私には意味がよくわかりませんが、 i++と i=i+1の結果は同じになりますか? 状況によります。 C言語においては、iが普通の変数であり、 これら単独でセミコロンを付けて文にした場合は、ほぼ同じになると考えられます。 ただし、文脈によっては、以下のような違いが発生します。 i++は1を足す前の値に評価されますが、i=i+1は1を足した後の値に評価されます。 そのため、これらの式の値を代入や条件分岐などに使用する場合、結果が異なる可能性があります。 iがatomicな型の場合、i++ではインクリメ...
by みけCAT
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: あきらめて違うセンサーにしました。
返信数: 2
閲覧数: 335

Re: あきらめて違うセンサーにしました。

まずはセンサーの値を読み込む方法を考えるのは一旦やめて、 「読み込んだ値を返す」関数を固定値を返すダミーで作ることをおすすめします。 そして、その関数を用い、読み込んだ値(ダミー)に基づいてLCDに出力する部分を先に作ることをおすすめします。 関数が作れない・作った関数をうまく使えないのであれば、 将来センサーから読み込むことになる値を読み込む変数を用意し、 そこにダミーの値を入れておくというのでもいいでしょう。 OUTピンをB2…すなわちCCP1に接続するのですね。 ということは、キャプチャモジュールを使ってパルスの幅を測る感じになりそうですね。 interrupt-on-changeはB4...
by みけCAT
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 列での演算
返信数: 5
閲覧数: 545

Re: 列での演算

できると思います。
具体的な方法を聞きたければ、フォーラムルールに従って具体的に質問してください。
1. 自分は今何がしたくて
2. どう取り組んで(作ったプログラムはどれで
3. どのようなエラーやトラブルで困っていて
4. 自分は何が解らないのか、知りたいのか
5. 今のCの知識はどの程度なのか

この5点をしっかりと明記して下さい。
by みけCAT
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 複数のテキストファイルの扱い方
返信数: 13
閲覧数: 880

Re: 複数のテキストファイルの扱い方

YuO さんが書きました:
8ヶ月前
fopenだと,非標準動作ではあるものの伝統的にエラーの場合はerrnoに値を設定します。
C言語の標準には含まれていませんが、POSIXの標準には含まれているようです。
fopen
by みけCAT
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 複数のテキストファイルの扱い方
返信数: 13
閲覧数: 880

Re: 複数のテキストファイルの扱い方

一応「テキストファイルを作るプログラム」のC言語版も置いておきます。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> int main(void) { const char* chars = "abcdefghijklmnopqrstuvwxyz"; size_t cnum = strlen(chars); int i, j, k; for (i = 0; i < 17; i++) { int lno = rand() % 150 + 50; char filename[256]; FI...
by みけCAT
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 複数のテキストファイルの扱い方
返信数: 13
閲覧数: 880

Re: 複数のテキストファイルの扱い方

printfをputsに置き換えずプログラムを動かしたところ、
自分の環境ではload errorが出ずに処理を行うことができました。
全角の数字や空白文字が混ざっているなど、処理対象のファイル名が間違っている可能性が考えられます。
by みけCAT
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 3項演算
返信数: 5
閲覧数: 670

Re: 3項演算

コードゴルフをする場合は、三項演算子の方が1バイト短くできて良さそうです。

コード:

m=m>f[i]?f[i]:m;
if(m>f[i])m=f[i];

// おまけ
m>f[i]?m=f[i]:1;
m>f[i]&&(m=f[i]);
m+=(f[i]-m)*(m>f[i]);
by みけCAT
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 3項演算
返信数: 5
閲覧数: 670

Re: 3項演算

Compiler Explorerで試した ところ、 if文を用いても三項演算子を用いてもcmovg命令を用いた全く同じコードに最適化される例を確認できました。 コンパイルしたコード int smallest(int* arr, int size) { int ans = arr[0]; for (int i = 1; i < size; i++) { if (ans > arr[i]) ans = arr[i]; } return ans; } int smallest2(int* arr, int size) { int ans = arr[0]; for (int i = 1; i <...
by みけCAT
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 16F819とRGBセンサーを組み合わせる方法について②
返信数: 2
閲覧数: 327

Re: 16F819とRGBセンサーを組み合わせる方法について②

ひよたんさんはこのコードでRGBセンサーから読み取った値を出力できそうだと思っていますか? それとも、わからないので適当に書いただけですか? 継続して数値がでず、 数値もラキーボードを打たないと表示されません。 fgetcで入力待ちをしているので、当然ですね。 「ラキーボード」というのがよくわかりませんが、PCのキーボードのことでしょうか? また右斜めに表示され、 ターミナルソフトの設定でLFを改行とみなすようにするか、\nの代わりに\r\nを用いるようにすると改善されるでしょう。 (\r → カーソルを左端に戻す、 \n → カーソルを次の行に進める) i2c のaddress 構成に問題が...
by みけCAT
9ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 幅優先探索で発生するメモリエラー
返信数: 2
閲覧数: 352

Re: 幅優先探索で発生するメモリエラー

visitedおよびfromの初期化(リサイズ)を最初しかしていないので、 小さいマップについて探索したあとに大きいマップについて探索すると不都合を起こします。 毎回初期化するか、前回の探索とサイズが変わっていたら初期化するようにするといいでしょう。 「ここでエラー」の行において、行こうとしている座標とは関係ない座標をmap.passMapに渡しているので、 正常に行けるかどうか(ここに範囲外かどうかも含まれている)を判定できず、範囲外に行ってしまう原因になります。 行こうとしているのは(x, y) = (next_x, next_y)なので、この座標をmap.passMapに渡すべきです。
by みけCAT
9ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 16F819とRGBセンサーを組み合わせる方法について
返信数: 6
閲覧数: 484

Re: 16F819とRGBセンサーを組み合わせる方法について

まずは現状のコードの問題点を修正しましょう。 まず、このセンサーのアドレスは「8bit」ではなく「7bit+R/Wビット」なので、 センサーのアドレス0x29にRead(1)/Write(0)を加えて、 Writeは0x52、Readは0x53です。 0x29と0x2Aでは2ビット異なってしまい、おかしいと考えられるでしょう。 次に、 i2c_start(); //START CONDITION i2c_write(sensor_Write_address); //SLAVE ADDRESS (0x29) i2c_write(0x00|0x80); //COMMAND BIT (0x80) i...
by みけCAT
9ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 外部シンボル~~が出て何を言っているのかわかりません
返信数: 23
閲覧数: 984

Re: 外部シンボル~~が出て何を言っているのかわかりません

コードをよく読むと、そんな単純な話ではないかもしれません。 まず、関数呼び出しの構造は main→rupu→field→MazeDraw→sento となっています。 このうち、rupu関数とfield関数は引数としてchar*型のデータを受け取り、 MazeDraw関数は引数としてchar型のデータを受け取ります。 そして、main関数ではrupu関数にマルチバイト文字を含む文字列へのポインタを渡しています。 rupu関数ではこのポインタをそのままfield関数に渡し、 field関数ではこのマルチバイト文字の1バイト目をMazeDraw関数に渡しています。 表示のため、文字列全体、もしくは...
by みけCAT
9ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 外部シンボル~~が出て何を言っているのかわかりません
返信数: 23
閲覧数: 984

Re: 外部シンボル~~が出て何を言っているのかわかりません

呼び出している関数は char sento(char n1,char n2,char nm1,char nm2,int ss,char n); ですが、提示されたコード中にsentoという名前の関数の定義は char sento(char *nakama1[],char *nakama2[],char *nakamaM1[],char *nakamaM2[],int ss,char n) しか無いようです。 C++は関数のオーバーロードに対応しており、同じ名前でも引数の型が違う関数は違う関数とみなされます。 呼び出している関数 char sento(char n1,char n2,char n...
by みけCAT
9ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: javaでPC向けシューティングを作りたいが・・・
返信数: 7
閲覧数: 1082

Re: javaでPC向けシューティングを作りたいが・・・

どのフレームワークがいいかとかはよくわかりませんが、基本的なこととして… まず、「シューティング」というだけではどんなゲームかよくわかりません。 Tonyu Systemのチュートリアル 程度の簡単なものから、 弾幕シューティングや3D空間を3Dモデルのキャラクターが飛び回るような重いものまでいろいろ考えられます。 次に、想定スペックが低すぎると思います。 想定スペック OS:windows 10, 7, CPU:PentinumII 500MHzくらい メモリ:1GB Windows 10 も Windows 7 もシステム要件は1GHz以上であり、500MHzでは足りません。 (RAMは1...
by みけCAT
9ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: デジタルフォトフレーム上でのタイマーのプログラム起動は可能でしょうか?
返信数: 2
閲覧数: 310

Re: デジタルフォトフレーム上でのタイマーのプログラム起動は可能でしょうか?

デジタルフォトフレームとの連携ができるかはわかりませんが、
「SDカードに入れたプログラムを起動」する方法の一つとして、
FlashAirという製品を使うとLuaのプログラムが動かせるらしいです。

FlashAir
FlashAir Developers - FlashAirでLuaを実行する
by みけCAT
9ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ステップ数についておしえてください
返信数: 18
閲覧数: 980

Re: ステップ数についておしえてください

オフトピック
かずま さんが書きました:
9ヶ月前
[​i] をタグと解釈するのはやめて欲しい。
このせいで過去の記事を検索しても、ダメに
なっているものがたくさんあり、残念です。
記憶が正しければ以前は閉じタグの[/i]がなければタグとみなされなかった気がしますが、
閉じタグがなくてもタグとみなされるように改悪されてしまったようですね…
なんででしょう?
by みけCAT
9ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 制作ゲームのロード時のエラーについて
返信数: 16
閲覧数: 917

Re: 制作ゲームのロード時のエラーについて

intへのポインタの配列を用意し、わざわざ1個ずつintのオブジェクトを確保し、
そこにオブジェクトハンドルを入れるというのは、あまり見ないパターンですね。
そして、このオブジェクトハンドルを入れたintのオブジェクトをdeleteしても、
DXライブラリで確保したオブジェクト(画像、音、モデルなど)の領域を開放することはできません。
DXライブラリで確保したオブジェクトの領域を開放するには、
それぞれに対応したDXライブラリの関数を使わないといけません。

(本当にオブジェクトがリークしているかは確認していません)
(よく見たら、オブジェクトもちゃんと開放している場所もありますね)
by みけCAT
9ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 制作ゲームのロード時のエラーについて
返信数: 16
閲覧数: 917

Re: 制作ゲームのロード時のエラーについて

コードが7089行もあり、読むのが大変です。
最小限の・自己完結した・確認可能なサンプルコードの作成と提示をお願いしたいです。
by みけCAT
9ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 動作確認のお願い
返信数: 5
閲覧数: 564

Re: 動作確認のお願い

環境:Windows 7 Home Premium Service Pack 1 (64ビット)
「コンピューターに MSVCP140D.dll がないため、プログラムを開始できません。」というエラーが出ました。
mixcpp-3-20539-20190131.png
エラー
mixcpp-3-20539-20190131.png (22.82 KiB) 閲覧数: 533 回
Dependency Walkerでチェックしたところ、他にも
VCRUNTIME140D.DLLおよびUCRTBASED.DLLが使用されており、自分の環境には無いようでした。
by みけCAT
9ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C言語 構造体について
返信数: 26
閲覧数: 1779

Re: C言語 構造体について

B:行で strstr 関数を使ってますが、ここは、strcmp 関数を用いて if(strcmp(seiseki[n].szName, name)==0) でないと駄目です。 これは誤りです。 なぜなら、#2で「氏名の一部を入力すると点数を表示する」という条件があるのに、 この条件式では氏名全体を入力しないと該当する点数が表示されくなってしまうからです。 同様に、 「一単位づつ strcmp で比較」を for で回す必要があります。 も誤りです。 以下のようにforを二重にし、 構造体に記録した氏名のデータからマッチする可能性がある部分をstrcmpで比較していく方法もありますが、 上司...
by みけCAT
9ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C言語 構造体について
返信数: 26
閲覧数: 1779

Re: C言語 構造体について

問題を読んでいないのでもしかしたら「for文を使う」という指定があるのかもしれないですが、
そうでなければ別にfor文を使う必要は無いですね。
なぜなら、for文

コード:

for (A; B; C) D;
は、(Dにcontinue;を含まなければ) while文

コード:

{ /* Aが宣言を含む時、その影響が漏れないようにする */
    A;
    while(B) {
        D;
        C;
    }
}
と等価なので、代わりにwhile文を使えばいいからです。
by みけCAT
9ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: メニュー画面でのバグ
返信数: 15
閲覧数: 898

Re: メニュー画面でのバグ

変数の定義順の違いで動作が変わるということであれば、
配列の範囲外へのアクセスなどの未定義動作が起こっている可能性が考えられます。
Valgrindなどの自動検査ツールを使えればいいのですが、
Windowsに対応しているものはあったかなあ…?
by みけCAT
9ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: メニュー画面でのバグ
返信数: 15
閲覧数: 898

Re: メニュー画面でのバグ

一応ファイルの内容が揃って実行できるのかもしれないですが(確認してません)、
ファイルが多くてコピペの手間が大きそうですね。
本文で貼るのではなく、zip形式などでまとめて添付ファイルにしていただいた方がよかったと思います。

また、イベントやマップなどのコードもあるようですが、それは本当に「メニュー画面でのバグ」に関係あるのでしょうか?
関係ない部分は削っていただき、バグが再現可能な最小限のコードにしていただけるとわかりやすそうだと思います。
by みけCAT
10ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ニュートン法について
返信数: 2
閲覧数: 300

Re: ニュートン法について

「シグモナイト関数」でググってみましたが、
AIの現状と技術の概要 - Qiita
しかヒットせず、定義は見つかりませんでした。
どのような関数なのでしょうか?

もし「シグモイド関数」のことでしたら、fxの定義がおかしいように思えますね。
提示されているコードの言語がわかりませんが、
C言語やC++では+演算子より/演算子の方が先に計算されるので、
これらの言語だと仮定すると、fxは1 / 1を先に計算して1 + exp(-x)と同じ意味になります。
return 1 / (1 + exp(-x)); のようにカッコを追加すれば、標準シグモイド関数を計算できるはずです。
by みけCAT
10ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 迷路攻略プログラム
返信数: 1
閲覧数: 298

Re: 迷路攻略プログラム

まず、変な「予想」をするのは避け、「左手法」とはどのようなアルゴリズムなのかを調べましょう。 例えば 迷路 第四章 を参考にすると、以下のようなプログラムになると思います。 //壁の状況を取得する wall = getWall(); if (!(wall & D_WALL_LEFT)) { //左に壁がない (左に進める) leftTurn(); // 左に向きを変える } else if (!(wall & D_WALL_FRONT)) { //前に壁がない (前に進める) // そのまま } else if (!(wall & D_WALL_RIGHT)) { //右に壁がない (右に進め...
by みけCAT
10ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 最短経路の求め方
返信数: 8
閲覧数: 566

Re: 最短経路の求め方

まず、処理対象のグラフを図示してみました。 graph.png Wandbox で実行してみると、以下のようになりました。 0 17 1000000 1000000 1000000 1000000 1000000 17 0 21 7 1000000 1000000 1000000 1000000 21 0 13 5 1000000 1000000 1000000 7 13 0 1000000 5 1000000 1000000 1000000 5 1000000 0 16 22 1000000 1000000 1000000 5 16 0 25 1000000 1000000 1000000 ...
by みけCAT
10ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: bmpファイルの入出力
返信数: 12
閲覧数: 713

Re: bmpファイルの入出力

読み書き両方です。
書き込み時にパディングを入れたら(そして他のソフトウェアは入れるので)、
読み込み時もパディングが入っている前提で読み込まないと、おかしくなりますよね。
by みけCAT
10ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: bmpファイルの入出力
返信数: 12
閲覧数: 713

Re: bmpファイルの入出力

これはカラーテーブルが256要素あり、画素が下のものから並んでいる無圧縮256色bmpファイル専用ですね。 解析の結果、少なくとも以下の問題があることがわかりました。 readBMP関数において、ファイルを開いた直後に必ずreturn -1;しているので、 読み込み処理が行われず、writeBMPに未初期化のデータが渡されてしまいます。 複文({}で囲まれたブロック)を用いてファイルが開けなかった場合のみreturn -1;するようにするか、 return -1;を削除するといいでしょう。 せっかくbmpInfo->imageDataに確保した領域のアドレスを入れているのに、 その後の読み込み...

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