トップページ > 過去ログ > 記事閲覧
メモ帳への書き込み
名前:mantis 日時: 2008/04/01 13:39

僕は今簡単なゲームを作っていて、メモ帳に結果を記録するようにしたいと思っています。 しかし、stdio.hをインクルードしてfprintfをいくつか書いてみたところ、メイクは正常に終わりますが、実行するとエラー報告が出てきてしまいました。何かいい対処法はないでしょうか。教えて下さい。

Page: 1 |

Re: メモ帳への書き込み ( No.1 )
名前:かたぱると 日時:2008/04/01 17:25

fopen等でファイルを開いたファイルポインタ等はありますでしょうか。 テキストファイルに書き込むお約束な流れの例として @fopenでファイルを開いてFILEポインタを取得(書き込みなので"w"オプションなどを指定する) Afopenで取得したFILEポインタを利用してfprintf等でファイルへ書き込む BfcloseでFILEポインタを閉じる なのでfprintfだけでは書き込む先がありません。 fopen等を行っていて、それでもエラーが出るのであれば そのエラー内容を教えていただけますでしょうか。
Re: メモ帳への書き込み ( No.2 )
名前:mantis 日時:2008/04/01 18:11

実行して、最初に一度writeモードで開き、前に書いてあった内容を消すのですが、 そのwriteモードで開いたメモ帳をfcloseし、もう一度今度はaモード(追加書き込み)で開くところの近くで、 ○○を終了します、というメッセージが出てしまいます。
Re: メモ帳への書き込み ( No.3 )
名前:かたぱると 日時:2008/04/01 18:48

おそらくですが >前に書いてあった内容を消す この処理の中でメモリのアクセスエラーをしているのではないでしょうか。 fopenのwモードはファイルが既にあった場合はサイズを0にして上書き、といったモードなので wモードにて既に存在しているファイルを開いた場合、 すでにクリアされた状態のはずです。 よって、無いものをクリアしようとしてメモリアクセスでおかしな位置を壊しているのではないでしょうか。 fopenの各モードの動作については以下を参考にしてみると良いかと。 ttp://www9.plala.or.jp/sgwr-t/c/sec17.html それでも問題が解決しない場合は 該当部分のソースを張っつけてくれると手っ取り早いですね。
Re: メモ帳への書き込み ( No.4 )
名前: 日時:2008/04/01 19:24

>無いものをクリアしようとして >メモリアクセスでおかしな位置を壊している wモードはファイルが既に存在する場合、 サイズを0にしますが、ファイル自体を削除する 訳ではありません。 よって、何度wモードでオープンしようと サイズが0になるだけです。 #上書きであって再作成ではない。 #マルチスレッドやマルチプロセスになると #もう少しややっこしくなりますが >もう一度今度はaモード(追加書き込み)で開くところの近くで、 近くでといわれても、そのコードを見たことが 在るのはあなただけなので、その辺りを重点的に 調べてくださいとしかいえません。 その周辺のコードを貼り付ければ、 あるいはもっと詳しいことを助言できるかも 知れませんが。:-p)
Re: メモ帳への書き込み ( No.5 )
名前:mantis 日時:2008/04/02 11:21

ご迷惑をお掛けしてすみませんでした。 エラーの原因が分かりました。 ありがとうございました。

Page: 1 |