类赋值帮助 - 将输入读入解析器

时间:2013-03-02 06:52:00

标签: c++

这是我的导师为我们提供的起点。我无法使用提供的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 );
}

1 个答案:

答案 0 :(得分: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;
}