gpt4 book ai didi

c++ - 以不同方式获取命令行输入

转载 作者:搜寻专家 更新时间:2023-10-31 00:44:42 24 4
gpt4 key购买 nike

如何不使用以下结构来获取命令行参数?

 int main ( int argc, char* argv ) {

}

我的问题真的是:我怎样才能接受以下输入:

 ./executableProgramName   inputX inputY inputZ inputT

在任何函数中?

in foo () {

// what should I write so that I can get same effect
}
  • 是否有其他方式获取命令行输入?

最佳答案

标准规定的获取命令行参数的方法是传递给入口点函数main的argc和argv参数。没有其他标准方法。

某些平台提供非标准方法。例如,如果您使用的是 Windows,则可以使用 GetCommandLineW

这是一个也使用了一些 C++11 东西的示例。

#include <ShellAPI.h> // for CommandLineToArgvW
#include <string>
#include <vector>
#include <codecvt>
#include <locale>

int main() {
#ifdef WIN32
LPWSTR *szArglist;
int argc;
szArglist = CommandLineToArgvW(GetCommandLineW(),&argc);
if(NULL==szArglist) {
std::cerr << "CommandLineToArgvW failed\n";
}
std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>,wchar_t> convert; // codecvt_utf8 or codecvt<char16_t,char,mbstate_t> should work (will work once the char16_t specialization of codecvt works)
vector<string> args;
for(int i=0;i<argc;++i) {
args.push_back(convert.to_bytes(szArglist[i]));
}
#endif //ifdef WIN32

}

关于c++ - 以不同方式获取命令行输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8186993/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com