Boost logo

Boost Users :

Subject: Re: [Boost-users] Boost program option parsing issue.
From: Vivek Anand (vickywindwin_at_[hidden])
Date: 2013-08-22 09:58:11


On Thu, Aug 22, 2013 at 5:58 PM, Tarcisio Fedrizzi
<tarcisio.fedrizzi_at_[hidden]> wrote:
>
> Hi,
> why would you need to run the program with --input-file without a value?

A third-party client will be using my program through a script or
through exec(). I do not have control over that code.

Currently, my validation check throws error that output-file not
specified. Actually its the input file which is missing.

>
> If you want to set the inputFile variable to a default value if it is not specified
> on the command line simply assign it where you declare the variable. Alternatively
> you can assign the variable like this:
>
> if (vm.count("input-file")) {
> ...
> } else {
> inputFile = "whatever";
> }
>
> Best regards,
> Tarcisio Fedrizzi
>
>
>
> On Mon, Aug 19, 2013 at 6:46 PM, Vivek Anand <vickywindwin_at_[hidden]> wrote:
>>
>> Hi All,
>>
>> I am using program option for my program. Here is my code snippet
>>
>> string inputFile, outputFile;
>>
>> /* Populate command line arguments */
>> po::options_description desc("Usage: KDMGenerator [OPTIONS]");
>> {
>> desc.add_options()
>> ("help", "prints this message")
>> ( "input-file", po::value<string>(&inputFile), "input file name" )
>> ( "output-file", po::value<string>(&outputFile), "output file name");
>> }
>>
>> po::variables_map vm;
>> po::store(po::parse_command_line(argc, argv, desc), vm);
>> po::notify(vm);
>>
>> if (vm.count("help") || !vm.size())
>> {
>> cout <<desc;
>> return 0;
>> }
>>
>> if(vm.count("input-file"))
>> {
>> cout << "Input file :" << inputFile << '\n';
>> }
>>
>> if(vm.count("output-file"))
>> {
>> cout << outputFile << '\n';
>> }
>>
>>
>> The issue I am facing is that if i I call my program without passing value for input file, something like
>>
>> ./myapp --input-file --output-file out.txt
>>
>> I get Input file: --output-file
>>
>>
>> i.e the value "--output-file" get stored in inputFile and vm.count("output-file") returns zero.
>>
>> Is this the desired behavior? Is there any workaround for this?
>>
>> --
>> Vivek,
>>
>>
>> _______________________________________________
>> Boost-users mailing list
>> Boost-users_at_[hidden]
>> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>
>
>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users

-- 
Warm regards ,
Vivek,
(¨`·.·´¨) Always
`·.¸(¨`·.·´¨) Keep Smiling
(¨`·.·´¨)¸.·´ N Be Happy!!
`·.¸.·´

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net