How to parse command line parameters.

#include <iostream>
using namespace std;
//  控制台传的参数:  "./a.out -f /home/in.txt -o /home/out.txt"
int main(int argc, char* argv[]) {
    //    argv[0]="./a.out";
    //    argv[1]="-f";
    //    argv[2]="/home/in.txt";
    //    argv[3]="-o";
    //    argv[4]="/home/out.txt";
    //    argc=5;
    if (argc < 5) { // Check the value of argc. If not enough parameters have been passed, inform user and exit.
        std::cout << "Usage is -in <infile> -out <outdir>\n"; // Inform the user of how to use the program
        std::cin.get();
        return 0;
    } else { // if we got enough parameters...
        char* myFile,* myPath, *myOutPath;
        std::cout << argv[0]<<endl;
        for (int i = 1; i < argc; i++,i++) { /* We will iterate over argv[] to get the parameters stored inside.
                                          * Note that we're starting on 1 because we don't need to know the
                                          * path of the program, which is stored in argv[0] */
            cout<<argv[i]<<"  ";
            if (string(argv[i]) == "-f") {
                // We know the next argument *should* be the filename:
                myFile = argv[i + 1];
            } else if (string(argv[i]) == "-p") {
                myPath = argv[i + 1];
            } else if (string(argv[i]) == "-o") {
                myOutPath = argv[i + 1];
            } else {
                std::cout << "Not enough or invalid arguments, please try again.\n";
                return 0;
            }
            std::cout << argv[i+1] <<endl;

        }
        std::cin.get();
        return 0;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值