将字符从 fget 转换为 Wchar*



我正在尝试将"字符串"从C++客户端发送到Java服务器。在服务器端,用户名是String。在我的 IDL 中,这是一个WStringValue,所以我必须将用户名作为WStringValue从我的客户端发送。以下代码在两端都工作正常:

const CORBA::WChar* usern = (wchar_t*)L"Chuck Norris";
CORBA::WStringValue* username = new CORBA::WStringValue(usern); 

但是我想从键盘上获取用户名...现在,我的问题是如何将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);

我该怎么做?

您可以尝试通过以下方式执行此操作:

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

最新更新