関連記事
- 【#Assembler】結局x64のアセンブラでゴニョゴニョと書き始めたオイラはバカかっ!(爆 【2024年05月13日(月)】
- 【#VCPP #VisualStudio】VS2022のVC 64ビットコンパイルでインラインアセンブラが使えなくなってるぞー 【2024年05月10日(金)】
- 【#CPP】出先でC++にてライブラリの緊急実装!脳死したーキョムリすぎるー 【2024年01月15日(月)】
- 【C#】謎な改造アプリ,SIMD命令を導入して高速化しようか,思案中 【2023年11月14日(火)】
- 生成AI「仕事で利用」2割 正確性などに懸念(23/5/7) 【2023年05月07日(日)】
いま,怪しいシステムをVC++&MFC@Visual Studio2005で突貫で実装作業中
組みあがってテスト工程にまわしてみたら
CStdioFileクラスにてファイル出力しているブロックに不具合発生
なぜか,全角だけファイルに出力されない
あらら??
となって,いろいろ調べてみたら...
Visual Studio2005から,基本文字コードがUnicodeになったのはまぁ,有名な話
ところがCStdioFile自体は,MBCS前提の実装になったまんま,だそうな
互換性の絡みかな?
んで,CStdioFile.WriteString()に
CString(Unicodeで内部管理してますな)の変数を突っ込んでも,出力されないとのこと
んでは,どうするかっていうと,
_wsetlocale(LC_ALL, _T(“jpn”));
あるいは
_setlocale(LC_ALL, “jpn”);
なる命令呼び出して,ロケールを変更してやれば,いいらしい
いちおう,一連の処理が終わったら,縁起物として
_wsetlocale(LC_ALL, _T(“”));
あるいは
_setlocale(LC_ALL, “”);
にて,初期設定へ戻しておきましたです
#include <locale.h>
をインクルードするのを,お忘れなくですぅ~ 😉
1件の返信
[…] テキストファイルで全角が出力できない!! で、調べていたら、そのものズバリの情報がありました。 CStdioFileにて全角がファイルに書けない? […]