C++ 解析函数中的命令行参数
这是我的要求- 我必须从命令行获取表单中的输入C++ 解析函数中的命令行参数,c++,visual-studio-2005,command-line-arguments,C++,Visual Studio 2005,Command Line Arguments,这是我的要求- 我必须从命令行获取表单中的输入 -des <destIP> -prot <tcp/udp> -min <minutes> -des-prot-min 有几个程序建议如何通过main()函数的argc和argv参数解析这些值。但是我想要一个函数,它获取iput行,然后解析它 功能将是- void GetArguments() { cout << "Enter arguments ..." << endl;
-des <destIP> -prot <tcp/udp> -min <minutes>
-des-prot-min
有几个程序建议如何通过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
}
void GetArguments()
{
cout-inputStr;//例如:inputStr=“-des 127.0.0.1-prot tcp-min 60”
//解析输入参数并获取dest IP、protocol和time的值的代码
}
如何获取所需的值?用于将wchar\u t*
解析为wchar\u t*[]
数组,如从std::wstring
解析为wchar\u 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);
}
}
void GetArguments()
{
std::wstring inputStr;
std::wcout inputStr;
国际货币基金组织;
LPWSTR*args=CommandLineToArgvW(inputStr.c_str(),&numArgs);
如果(args)
{
对于(int i=0;i
这是一个特定于Windows的解决方案,因为您的问题是针对Visual Studio标记的。如果您正在寻找纯C++解决方案,您将不得不手工篡改<代码>输入输出> /代码>,根据需要在空白和引号上进行拆分。有很多这样的例子。您需要将
main()
函数的参数传递给这个函数(GetArguments()
)。没有其他方法可以获取输入行。我需要为LPWSTR和CommandLineToArgvW()包含什么标题?如果您阅读我链接到的文档,它会告诉您,CommandLineToArgvW()
在Shellapi.h
中声明。对于LPWSTR
,它在WinNT.h
中声明,它包含在Windows.h
中。