解析函数中的命令行参数
Parse Command line arguments within a function
这是我的要求-
我必须以
的形式从命令行获得输入-des <destIP> -prot <tcp/udp> -min <minutes>
有几个程序建议如何通过main()函数的argc和argv参数解析这些值。但我想要一个函数来获取输入行,然后解析它。
函数是-
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
}
我如何得到我需要的值?
使用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
,根据需要将其分割为空白和引号。有很多这样的例子
相关文章:
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 如何处理linux终端中带有负号(-)的C++中的命令行参数
- 使用 C++ 将命令行参数拆分为参数/向量
- 如何在OMNET++中添加专门的命令行参数?
- 如何在不传递命令行参数的情况下在 c++ 中设置环境变量
- atoi() 在应用于大型命令行参数时会产生不正确的值
- 命令行参数,cant 或两个变量
- 在 Windows 中使用 boost::p rogram_options 从命令行参数读取 Unicode 字符
- 如何在 Android/NDK 上将命令行参数从 gradlew.bat 传递到 Clang
- 编写一个将 LLVM IR 文件作为命令行参数的程序
- 通过命令行参数获取llvm ir文件时面临问题
- 有没有办法根据命令行参数定义数组大小?运行时与编译时实例化?
- 如何在不使用文件扩展名的情况下使用命令行参数打开C++中的文本文件?
- 命令行参数在不到 3 个 LOC 中 int?
- 在命令行参数中使用引号
- 在VS2013中使用devenv (C++)传递命令行参数argv
- 二进制数据作为命令行参数
- 如何在 C++11 中创建具有命令行参数大小的动态数组?
- 需要有关如何设置getopt_long以正确传递命令行参数的建议
- Bash 脚本和命令行参数