通过CommandLine Handling Class中的方法返回Argv [0] C ++

时间:2014-09-26 03:57:02

标签: c++ class argv

我知道(至少在C ++中,我假设任何时候使用它)argv [0]引用文件路径,因为程序通常是那里列出的第一个参数。对于我正在上课的项目,我已经创建了一个处理命令行的类(就项目的约束而言,我们正在创建一个可以读取文本文件并计算单词唯一性的项目)

所以我会停止抨击并找到问题 - 在我的命令行课程中我想要一个方法来“返回argv [0];”但是说隐含在一个方法中并不起作用。这是我的头文件代码和类:

CmdLine.h

#pragma once

#include<string>
#include<algorithm>

class CmdLine
{
public:
    CmdLine( int argc, char* argv[] );
    ~CmdLine();

    std::string getFile ( int index );
    int getNumFiles ( void );

    std::string getFlag ( int index );
    int getNumFlags( void );
    bool isFlag ( char c );

    std::string getCommandPath ( );

private:
    int myArgc;
    char** myArgv;

    int myNumFiles;
    std::string myFileNames[ 100 ];

     int myNumFlags;
    std::string myFlags[ 100 ];

private:
    CmdLine( const CmdLine& other );
    CmdLine& operator=( const CmdLine& rhs );
};

CmdLine.cpp:

#include <iostream>
#include <string>

#include "CmdLine.h"

using namespace std;

CmdLine::CmdLine(int argc, char *argv[])
{
    myArgc = argc;
    myArgv = argv;
    myNumFiles = 0;
    myNumFlags = 0;

    for ( int i = 1; i < argc ; i++ )
    {
        std::string arg = argv[i];
        if ( arg[0] == '/' )
        {
            myFlags[ myNumFlags++ ] = argv[i];
        }
        else
        {
            myFileNames[ myNumFiles++ ] = argv[i];
        }
    }
}

CmdLine::~CmdLine()
{}

int CmdLine::getNumFiles ( void )
{  
    return myNumFiles;
}

string CmdLine::getFile ( int index )
{
    //Check to see if index < number of files
     return myFileNames[ index ];
}

int CmdLine::getNumFlags ( void )
{
    return myNumFlags;
}

string CmdLine::getFlag( int index )
{
    return myFlags[ index ];
}

//string CmdLine::getCommandPath ( )
//{
//  return 
//}

0 个答案:

没有答案