将char转换为wchar_t

来源:互联网 发布:淘宝大学网店运营专才 编辑:程序博客网 时间:2024/05/19 10:41

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <wchar.h>#include <locale.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <iostream>#include <sstream>#include <fstream>#include <string>void Init()  {    const char *locale = "zh_CN.utf8";      // 根据环境变量设置locale    setlocale(LC_CTYPE, locale);  }    int to_wchar(wchar_t* &dest, char* &src,int n)  {      return mbstowcs(dest, src, n);  } int main(int args, char **argv){int handle=open(argv[1], O_CREAT|O_RDWR,S_IREAD|S_IWRITE);int dsize = lseek(handle, 0, SEEK_END);printf("dsize:%d\n", dsize);Init();std::ifstream fin(argv[1], std::ios::in);const static int MAXCL = 1024*3;char *line = new char[MAXCL];wchar_t *wline = new wchar_t[MAXCL];while(fin.getline(line, MAXCL)){int clen = strlen(line);int wlen = to_wchar(wline, line, clen);printf("len:%d\twlen:%d\tvalue:%s\n", clen, wlen, line);for (int i=0; i<wlen; i++){printf("%d\t%X\n", i, wline[i]);}}fin.clear();fin.close();return 0;}





#include <string.h>#include <stdio.h>#include <stdlib.h>#include <wchar.h>#include <locale.h>#include <iostream>using namespace std;void Init(){  const char *locale = "zh_CN.utf8";// 根据环境变量设置locale  setlocale(LC_CTYPE, locale);}int to_wchar(wchar_t* &dest, char* &src,int n){    return mbstowcs(dest, src, n);}int main(){  char* str1 = "abc123";  char* str2 = "abc124";  wchar_t *w_str1 ;  wchar_t *w_str2 ;    w_str1 = new wchar_t[20];  w_str2 = new wchar_t[20];      Init();    to_wchar(w_str1,str1, strlen(str1));  to_wchar(w_str2,str2,strlen(str2));    //wcout <<"wsize: "<<sizeof(w_str[0]) <<w_str[0] << "--" << w_str[1] << "--" << w_str[2]<<endl;  wcout<<"w_str: "<<w_str1<<endl;  wcout<<"w_str: "<<w_str2<<endl;    wcout<<"cmp: "<<wcsncmp(w_str1, w_str2, 3)<<endl;    delete(w_str1);  delete(w_str2);      return 0;}



0 0
原创粉丝点击