検索結果 6020 件

by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: #define文法的には間違ってない(多分)のにエラー
返信数: 6
閲覧数: 287

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

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

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

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

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
3週間前
フォーラム: C言語何でも質問掲示板
トピック: C++でソケット通信を用いたメールの送信
返信数: 9
閲覧数: 463

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

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

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

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

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

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

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

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

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

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

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

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
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 足し算
返信数: 5
閲覧数: 273

Re: 足し算

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

Re: 配列2

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

Re: 配列2

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

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

Re: 足し算

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

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

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

Re: 列での演算

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

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

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

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

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
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 複数のテキストファイルの扱い方
返信数: 13
閲覧数: 535

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

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

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
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 3項演算
返信数: 5
閲覧数: 296

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
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 16F819とRGBセンサーを組み合わせる方法について②
返信数: 2
閲覧数: 187

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

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

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

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

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
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 外部シンボル~~が出て何を言っているのかわかりません
返信数: 23
閲覧数: 650

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

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

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
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: javaでPC向けシューティングを作りたいが・・・
返信数: 7
閲覧数: 537

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
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: デジタルフォトフレーム上でのタイマーのプログラム起動は可能でしょうか?
返信数: 2
閲覧数: 162

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

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

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

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

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

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

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

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

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

コードが7089行もあり、読むのが大変です。
最小限の・自己完結した・確認可能なサンプルコードの作成と提示をお願いしたいです。

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