#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <wchar.h>
#include <locale.h>
#define MAXSZ 128
int main()
{
setlocale(LC_ALL,"Chinese_Taiwan.950");
const char* file="x.txt";
FILE *fp= fopen( file,"r");
if( fp == NULL){
perror( file);
return -1;
}
char data_buf[MAXSZ];
wchar_t w_buf[MAXSZ];
while(fgets(data_buf,MAXSZ,fp)!=NULL){
int sz=strlen(data_buf);
if(data_buf[sz-1]=='\n'){
data_buf[sz-1]='\0';
}
if(data_buf[0]=='\0'){
continue;
}
if(mbstowcs(w_buf,data_buf,MAXSZ)==-1){
perror("mbstowcs error");
return -1;
}
printf("wcslen=%d--> %S ; %C",wcslen(w_buf),w_buf,w_buf[0]);
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8d2NoYXIuaD4KI2luY2x1ZGUgPGxvY2FsZS5oPgoKI2RlZmluZSBNQVhTWiAxMjgKCmludCBtYWluKCkKewogICBzZXRsb2NhbGUoTENfQUxMLCJDaGluZXNlX1RhaXdhbi45NTAiKTsKICAgY29uc3QgY2hhciogZmlsZT0ieC50eHQiOwogICBGSUxFICpmcD0gZm9wZW4oIGZpbGUsInIiKTsKICAgaWYoIGZwID09IE5VTEwpewoJICAgcGVycm9yKCBmaWxlKTsKCSAgIHJldHVybiAtMTsKICAgfQogICBjaGFyIGRhdGFfYnVmW01BWFNaXTsKICAgd2NoYXJfdCB3X2J1ZltNQVhTWl07CiAgIHdoaWxlKGZnZXRzKGRhdGFfYnVmLE1BWFNaLGZwKSE9TlVMTCl7CiAgIAkgIGludCBzej1zdHJsZW4oZGF0YV9idWYpOwogICAJICBpZihkYXRhX2J1Zltzei0xXT09J1xuJyl7CiAgIAkgICAgIGRhdGFfYnVmW3N6LTFdPSdcMCc7CiAgIAkgIH0KICAgCSAgaWYoZGF0YV9idWZbMF09PSdcMCcpewogICAJICAJIGNvbnRpbnVlOwogICAJICB9CiAgIAkgIGlmKG1ic3Rvd2NzKHdfYnVmLGRhdGFfYnVmLE1BWFNaKT09LTEpewogICAJICAJIHBlcnJvcigibWJzdG93Y3MgZXJyb3IiKTsKICAgCSAgCSByZXR1cm4gLTE7CiAgIAkgIH0KICAgCSAgcHJpbnRmKCJ3Y3NsZW49JWQtLT4gJVMgOyAlQyIsd2NzbGVuKHdfYnVmKSx3X2J1Zix3X2J1ZlswXSk7CiAgIH0KICAgcmV0dXJuIDA7Cn0=