0

我正在通过以下代码在 Visual C++ 中从用户那里获取输入

Console::WriteLine("Select the Cache Size.\n a. 1 Kb \n b. 2 Kb \n c. 4 Kb \n d. 8 Kb\n");
    String^ CACHE_SIZEoption = Console::ReadLine();
    Char wh= Char(CACHE_SIZEoption);

    switch(wh)
    {case 'a':
    break;

    case 'b':
    break;

    case 'c':
     break;

    case 'd':
    break;
    }

在这种情况下,从 String 到 Char 的转换给出了错误..

 error C2440: '<function-style-cast>' : cannot convert from 'System::String ^' to 'wchar_t'
4

2 回答 2

2

期望能够将字符串转换为字符是不现实的。一个字符串可以包含 0、1 个或多个字符。你想要哪个角色?

如果您想要第一个字符,请CACHE_SIZEoption[0]在检查字符串不为空后使用 , 。

在您的情况下,您可能希望添加一个字符串长度是否为 1 的检查,否则这意味着用户的输入无效。检查CACHE_SIZEoption->Length

于 2013-05-03T11:05:12.227 回答
0

我会尝试

Char wh= CACHE_SIZEoption[0];

或者

Char wh= CACHE_SIZEoption->ToChar();

在这里找到:http: //msdn.microsoft.com/en-us/library/bb335877%28v=vs.110%29.aspx

于 2013-05-03T11:10:52.757 回答