类分配帮助-将输入读入解析器

class assignment help- read input into a parser

本文关键字:输入 分配 帮助      更新时间:2023-10-16

这是我的导师给我们的一个起点。我在使用提供的解析器gettoks()从UNIX环境(如"ls"或"hist")中的命令读取输入时遇到了麻烦。Gettoks()是从包含解析器代码的.l中链接的。如何使用toks(它被声明为指向指针的指针)将一行输入传递给gettoks()来解析它(然后它将根据输入返回适当的系统调用)我尝试使用fget但得到编译器错误。如有任何建议,不胜感激。

//*********************************************************
int main( int argc, char *argv[] )
{
    // local variables
    int ii;
    char **toks;
    int retval;
    // initialize local variables
    ii = 0;
    toks = NULL;
    retval = 0;
    // main (infinite) loop
    while( true )
    {
        // get arguments
        toks = gettoks();
        if( toks[0] != NULL )
        {
            // simple loop to echo all arguments
            for( ii=0; toks[ii] != NULL; ii++ )
            {
                cout << "Argument " << ii << ": " << toks[ii] << endl;
            }
            if( !strcmp( toks[0], "exit" ))
                break;
        }
    }
    // return to calling environment
    return( retval );
}

这是您可以用来解析的解决方案。

int main( int argc, char *argv[] )
{
    // local variables
    int ii;
    for(ii=0;ii<argc;ii++)
    {
    cout << "Argument " << ii << ": " << argv[ii] << endl;
    }
    // return to calling environment
    return 1;
}