cplusplusからいくつかのコードをコピーし、テスト プログラムを実行しますwctomb
。
/* wctomb example */
#include <stdio.h> /* printf */
#include <stdlib.h> /* wctomb, wchar_t(C) */
int main() {
const wchar_t str[] = L"wctomb example";
const wchar_t* pt;
char buffer [MB_CUR_MAX];
int i,length;
pt = str;
while (*pt) {
length = wctomb(buffer,*pt);
if (length<1) break;
for (i=0;i<length;++i) printf ("[%c]",buffer[i]);
++pt;
}
return 0;
}
ただし、私のコンパイラ(VC 2010)を考慮する限り、MB_CUR_MAXは未定義であるため、プログラムをコンパイルできません。私はどうしたらいいのだろうと思いました。ありがとう!
error C2057: expected constant expression
error C2466: cannot allocate an array of constant size 0
error C2133: 'buffer' : unknown size