这是我的要求 -
我必须以
的形式从命令行获取输入-des <destIP> -prot <tcp/udp> -min <minutes>
有几个程序建议如何通过main()函数的argc和argv参数解析这些值。但我想要一个获取iput线然后解析它的函数。
该功能将是 -
void GetArguments()
{
cout << "Enter arguments ..." << endl;
cin >> inputStr;//eg: inputStr = "-des 127.0.0.1 -prot tcp -min 60"
//code to parse the input arguments and get values of dest IP, protocol and time
}
如何获得我需要的值?
答案 0 :(得分:1)
使用CommandLineToArgvW()
将wchar_t*
(例如std::wstring
)解析为可以循环播放的wchar_t*[]
数组,就像使用argv
一样/ argc
。例如:
void GetArguments()
{
std::wstring inputStr;
std::wcout << L"Enter arguments ..." << std::endl;
std::wcin >> inputStr;
int numArgs;
LPWSTR *args = CommandLineToArgvW(inputStr.c_str(), &numArgs);
if (args)
{
for (int i = 0; i < numArgs; ++i)
{
// use args[i] as needed...
}
LocalFree(args);
}
}
这是一个特定于Windows的解决方案,因为您的问题已标记为Visual Studio。如果您正在寻找纯C ++解决方案,则必须手动对inputStr
进行标记,并根据需要将其拆分为空白和引号。有大量的例子漂浮在周围。