0

これが私のインストラクターが私たちに提供してくれた出発点です。提供されているパーサー gettoks() を使用して、「ls」や「hist」などの UNIX 環境のコマンドから入力を読み取る方法を見つけるのに苦労しています。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 に答える