I think the following answer is more along the lines of what you are looking for:
You should look at applying the Template Pattern (Template Method in “Design Patterns” [Gamma, el al])
In short it’s overall processing looks like this:
If the arguments to the program are valid then
Do necessary pre-processing
For every line in the input
Do necessary input processing
Do necessary post-processing
Otherwise
Show the user a friendly usage message
In short, implement a ConsoleEngineBase class that has methods for:
PreProcess()
ProcessLine()
PostProcess()
Usage()
Main()
Then create a chassis, that instantiates a ConsoleEngine() instance and sends the Main() message to kick it off.
To see a good example of how to apply this to a console or command line program check out the following link:
http://msdn.microsoft.com/en-us/magazine/cc164014.aspx
The example is in C#, but the ideas are easily implemented in any other environment.
You would look at the GetOpt() as just the part that fit’s into the argument handling (pre-processing).
Hope this helps.