将字符从FGET转换为Wchar* 我试图从C++客户端向java服务器发送一个“字符串”。在服务器端,用户名是一个字符串。在我的IDL中,它是一个WStringValue,因此我必须从我的客户端以WStringValue的形式发送用户名。以下代码在两侧都适用: const CORBA::WChar* usern = (wchar_t*)L"Chuck Norris"; CORBA::WStringValue* username = new CORBA::WStringValue(usern);

将字符从FGET转换为Wchar* 我试图从C++客户端向java服务器发送一个“字符串”。在服务器端,用户名是一个字符串。在我的IDL中,它是一个WStringValue,因此我必须从我的客户端以WStringValue的形式发送用户名。以下代码在两侧都适用: const CORBA::WChar* usern = (wchar_t*)L"Chuck Norris"; CORBA::WStringValue* username = new CORBA::WStringValue(usern);,java,c++,corba,idl,Java,C++,Corba,Idl,但是我想从键盘上获取用户名。。。现在,我的问题是如何将char[]转换为Wchar*?经过我的实验,似乎编码也有问题 cout << "Please type your Username: " << endl; fgets(input, MAX_LINE, stdin); strcpy(username, input); const CORBA::WChar* usern = (wchar_t*)username; CORBA::WStringValue* userna

但是我想从键盘上获取用户名。。。现在,我的问题是如何将
char[]
转换为
Wchar*
?经过我的实验,似乎编码也有问题

cout << "Please type your Username: " << endl;
fgets(input, MAX_LINE, stdin);
strcpy(username, input);

const CORBA::WChar* usern = (wchar_t*)username;
CORBA::WStringValue* username = new CORBA::WStringValue(usern);

cout您可以尝试以下方法:

std::string str (input);
std::wstring ws;
ws.assign (str.begin(), str.end());
const CORBA::WChar* usern = ws.c_str (); // warning: it will live only while ws lives

我真是个笨蛋!如何将其转换为反之亦然…?:(从WStringValue*到std::string?很抱歉,对于这个问题,如果您能再次帮助我,我将不胜感激…!@Simon好的,请尝试反向操作:
wstring ws(WStringValue);string s;s.assign(ws.begin(),ws.end());