首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Visual Studio C++中读取程序参数的问题

在Visual Studio C++中读取程序参数,可以通过以下方法实现:

  1. 使用argcargv参数

在C++主函数中,argc表示程序参数的个数,argv表示程序参数的数组。argv[0]是程序名称,argv[1]argv[argc-1]是程序参数。

代码语言:cpp
复制
#include<iostream>

int main(int argc, char* argv[]) {
    for (int i = 0; i < argc; ++i) {
        std::cout << "argv[" << i << "] = "<< argv[i]<< std::endl;
    }
    return 0;
}
  1. 使用GetCommandLine函数

GetCommandLine函数可以获取整个命令行字符串,然后可以使用strtok函数将其分割成单独的参数。

代码语言:cpp
复制
#include<iostream>
#include<string>
#include<Windows.h>

int main() {
    LPTSTR cmdline = GetCommandLine();
    std::wstring wstr(cmdline);
    std::string str(wstr.begin(), wstr.end());
    char* p = strtok(const_cast<char*>(str.c_str()), " ");
    while (p != nullptr) {
        std::cout << p << std::endl;
        p = strtok(nullptr, " ");
    }
    return 0;
}
  1. 使用boost::program_options

boost::program_options是一个用于解析程序参数的库,可以方便地将参数转换为不同的数据类型。

代码语言:cpp
复制
#include<iostream>
#include<boost/program_options.hpp>

namespace po = boost::program_options;

int main(int argc, char* argv[]) {
    std::string name;
    int age;

    po::options_description desc("Allowed options");
    desc.add_options()
        ("help", "produce help message")
        ("name", po::value<std::string>(&name)->required(), "your name")
        ("age", po::value<int>(&age)->required(), "your age");

    po::variables_map vm;
    po::store(po::parse_command_line(argc, argv, desc), vm);
    po::notify(vm);

    if (vm.count("help")) {
        std::cout<< desc<< std::endl;
        return 0;
    }

    std::cout << "Name: "<< name<< std::endl;
    std::cout << "Age: "<< age<< std::endl;

    return 0;
}

以上是在Visual Studio C++中读取程序参数的常用方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券