Ich habe mir angewöhnt, bei Aufruf ohne Argumente die interne Hilfe auszugeben. Wenn man wirklich einen Lauf ohne Argumente braucht (z.B. Filterfunktion von stdin nach stdout), kann man das per "programmname --" erreichen.
Hmm, finde ich jetzt allgemein ein bischen kontraintuitiv -- jedenfalls für unixoide Benutzer. Wenn ich ein Programm in einer shell das erste mal ohne Argumente aufrufe, und dann den "secondary prompt" sehe, weiß ich sofort, dass es sich um einen filter handelt, der auf stdin wartet. Kommt sofort die --help-Message, gehe ich eher davon aus, dass entweder stdin garnicht verarbeitet wird oder ich irgendwo "-" anstelle eines pfades als synonym für stdin/out verwenden kann... auf "programmname --" würde ich erstmal nicht kommen. Unter Windows sind die Erwartungen allerdings eh andere... Doppelklick sollte zumindest was hilfreiches bewirken.
Ich denke, ich werde das demnächst einfach umbauen, - als Dateiname => stdin, kein Argument => --help. Die Idee mit system("pause") ist auch gut, wenn man unter windows ist, idealerweise aber auch nur dann, wenn ich feststelle, dass ich als einziger Prozess in einer Konsole laufe, ein pauschales "pause" auch aus der cmd.exe heraus fände ich auch seltsam.