提示コードの/////コメント内部のコードですが const char型配列で来た文字をchar16_t型配列変数に代入したいのですが文字が格納されませんこれはなぜでしょうか?戻り値は1です。
エラー[ 1が カウント されます。次の カウント を含むか、有効なマルチバイト文字を入力します。 返される値は、マルチバイト文字を完成するのに必要なバイト数です。 Wchar が null ポインターでない場合、それに相当するワイド文字は wchar に格納されます。 ]
参考サイト1: https://www.ibm.com/docs/ja/zos/2.3.0?topic=functions-mbrtoc16-convert-multibyte-character-char16-t-character
参考サイト2: https://programming-place.net/ppp/contents/c/appendix/reference/mbrtoc16.html
cpp
1#include <iostream> 2int main() 3{ 4 const char text[] = "テスト"; 5 6 7 wchar_t txt[20] = { '\0' }; 8 9 int f = mbrtowc(txt, text, (size_t)strlen(text), nullptr); 10 std::cout << f << std::endl; 11 12 13 for (int i = 0; txt[i] != '\0'; i++) 14 { 15 std::cout << txt[i] << std::endl; 16 } 17 18 19 20 21 return 0; 22}
>どうすればいいのでしょか?
前まで直ってたのにまた日本語下手になってないか?
戻り値的には、変換できてますよね?
コードを質問文にとは書きましたが、タイトルにある「mbrtoc16()関数を使って」ないのにこの内容は意味不明ではないでしょうか
もう少し考えて質問を編集していただければと思います
回答2件
あなたの回答
tips
プレビュー