0

这是我的导师为我们提供的一个起点。我很难找到一种方法来使用提供的 parcer 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 );
}
4

1 回答 1

0

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

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;
}
于 2013-03-02T09:32:26.460 回答