1

このコードを使用して単一の文字を出力できます。

#include <locale.h>
#include <stdio.h>
#include <wchar.h>

main(){

setlocale(LC_CTYPE, "");
wchar_t a = L'Ö';
putwchar(a);

}

文字列を出力するようにコードを適応させるにはどうすればよいですか?

何かのようなもの

wchar_t *a = L"ÖÜÄöüä";
wprinf("%ls", a);
4

2 に答える 2

2
wprintf(L"%ls", str)

于 2011-05-22T01:37:04.640 に答える
0

wchar_t内部の s が何を意味するのかを知る必要があります。(ちょっとした議論については、こちらを参照してくださいmbstowcs。) 基本的に、 /を介して環境と通信し、 (WCHAR_T との間で変換する) をwcstombs介して既知のエンコーディングのデータと通信する必要があります。iconv

(ここでの例外は Windows で、環境と実際に意味のある通信を行うことはできませんが、ワイド バージョンでは Windows API 関数を使用して直接アクセスでき、ワイド文字列をメッセージ ボックスなどに直接書き込むことができます。)

とはいえ、内部ワイド文字列を取得したら、それを で環境のマルチバイト文字列に変換するか、変換を実行する をwcstombs使用することができます。プログラムの最初にprintf("%ls", mywstr);呼び出すことを忘れないでください。setlocale(LC_CTYPE, "")

于 2011-06-15T16:48:29.637 に答える