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