我知道(至少在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
//}