- 【初心者歓迎】C/C++室 Ver.94【環境依存OK】 [転載禁止]©2ch.net
84 :デフォルトの名無しさん[sage]:2014/12/09(火) 08:35:32.85 ID:FiVhwApy - Win7のVS2013で
FILE *fp; wstring logFile = "ログファイル.txt" errno_t err = _wfopen_s(&fp, logFile.c_str(), L"at, ccs=UTF-8"); みたいな感じでファイルオープンして、vfwprintf_s()を使って日本語を書き出しているのですが、 文字が時々化けるのです。 ログファイルなので、プログラムの実行中にいろんな情報を書き出しています。ファイルが既に有る場合には追加で書き込んでいます。 デバッグなどでプログラム実行中に強制的に中止することもあります。なので、ログファイルに書き出している途中で中断した 場合などに、ファイルが中途半端な状態で閉じられ、そういう不完全なファイルに、次の実行時に追加で書き出すと、 化けるのかななどと推測していますが、根拠はありません。 プログラム開始前にファイルを削除して新規に作成すれば化けることはないのですが、それだと長期的なログが収集出来ません。 ログファイルが文字化けする理由は何でしょうか?どのような対策が良いでしょうか?
|