argv: Platzhalter bereinigen
Ich habe an einem Beispiel im K & R C-Buch gearbeitet, in dem Sie aufgefordert werden, einen RPN-Rechner zu erstellen, der Eingaben über Befehlszeilenargumente akzeptiert. Meine Lösung durchläuft im Wesentlichen die angegebenen Argumente und spuckt die Antwort aus, aber mir ist etwas aufgefallen:
Wenn ich das Multiplikationszeichen (ein Sternchen) geben würde'*'
Ohne einfache Anführungszeichen geht gcc davon aus, dass es sich um eine Wildcard-Eingabe handelt. Daher ist meine Eingabe von
$./rpn 5 10 *
gibt mir eine Ausgabe von
read 5
read 10
read rpn
read rpn.c
= 0
Wrapping das Sternchen mit einfachen Anführungszeichen behebt das Problem
$./rpn 5 10 '*'
read 5
read 10
read *
= 50
Meine Frage ist, ob es eine Möglichkeit gibt, Eingaben zu bereinigen, sodass mein Programm nicht erfordert, dass der Stern in einfache Anführungszeichen gesetzt wird. ?