Visual C++でコンソールゲームを作成しております。
いつも参考にさせていただいています。
さて、タイトルの「新●」※土ヘンに川
のような一般的でない漢字をprintf等で
実行ファイルに表示させたいのですが、たとえば上記「●」だと
「warning C4566: ユニバーサル文字名 '\u5733' によって表示されている文字は、
現在のコード ページ (932) で表示できません」
などと警告が出て、結果正しく表示できません。
なにか方策はあるのでしょうか。
「新●」が表示できない※土ヘンに川
Re:「新●」が表示できない※土ヘンに川
さっそく返信いただいておいてすみません。
初心者ですぐに理解できそうにありません。
ソースを単純化すると以下のとおりで、
結果として、「新●」※土ヘンに川
と表示したいのです。
(現状、前出警告出て、結果:「新?」と表示)
#include <stdio.h>
int main(void){
printf("深圳");
return 0;
}
初心者ですぐに理解できそうにありません。
ソースを単純化すると以下のとおりで、
結果として、「新●」※土ヘンに川
と表示したいのです。
(現状、前出警告出て、結果:「新?」と表示)
#include <stdio.h>
int main(void){
printf("深圳");
return 0;
}
Re:「新●」が表示できない※土ヘンに川
例えワイド文字を使うコードを書いてもVisualC++のCランタイムは標準入出力に対してコードページ932で表現できない文字を扱えません。
コマンドプロンプトのコードページやフォントの設定に影響されません。
リダイレクトには対応しません。
#include <windows.h> int main(void) { const wchar_t *wcs = L"深圳"; HANDLE hStdOut; DWORD dwNumberOfCharsWritten; hStdOut = GetStdHandle(STD_OUTPUT_HANDLE); WriteConsoleW(hStdOut, wcs, wcslen(wcs), &dwNumberOfCharsWritten, NULL); return 0; }Win32のコンソールAPIを直接呼び出すことで表示できます。
コマンドプロンプトのコードページやフォントの設定に影響されません。
リダイレクトには対応しません。
Re:「新●」が表示できない※土ヘンに川
じぶんのプログラムにとりこんでみたら、うまくいきました!
ありがとうございます。質問してよかったです!
きほん標準Cのライブラリをとこだわって(それしかしらない)
つくっていましたが、これからもっと勉強していきたいです。
たいへん助かりました。
ありがとうございます。質問してよかったです!
きほん標準Cのライブラリをとこだわって(それしかしらない)
つくっていましたが、これからもっと勉強していきたいです。
たいへん助かりました。