2012-04-10 11 views
2

Ich versuche zu lesen: (int 1) operator (int 2) oder returnType (int 1) operator (int 2) , insgesamt 4 - 5 Argumente, von der Konsole und führen Sie einen mathematischen Operator basierend auf dem Eingang. Es funktioniert für alles außer * (für Multiplikation). Es ist ein Fehler in meinem Code aus dem folgenden Fehler Fang zurückkehren.argv Probleme beim Einlesen von * Zeichen von der Konsoleneingabe in C

if(argc == 4){ 
    do this... 
} 
else if{ argc == 5){ 
    do this... 
} 
else { 
    fprintf(stderr,"usage error, invalid arguments\n"); 
    return 3; 
} 

es diesen Fehler trifft, egal was ich setzte in Wenn ich „test X Zeichenfolge1 * string2“ oder „test Zeichenfolge1 * string2“ tun So oder so, 4 oder 5 Argumente, es gibt mir einen Fehler (auch Argumente für 1-10 Argumente werfen, nur getestet, um zu sehen). Ich glaube nicht, dass dafür mehr Code benötigt wird, da es wahrscheinlich nur die Eingabe von * (Sonderzeichen?) Manipulieren muss, aber wenn mehr Code benötigt wird, lass es mich wissen.

Antwort

12

Es funktioniert gut. Ihre Shell klopft den Platzhalter. Zitieren Sie es.

./someprogram a '*' b 
+0

Oder verwenden Sie '\ *' oder 'set -o noglob' –

+0

Siehe dachte ich auch, ich habe das Problem ist, dass der Professor ein Skript ausgeführt wird, der den Code als I-Eingang läuft es (kein ' "oder \ oder irgendetwas, nur *). Ist das sogar innerhalb des Codes zu erkennen? Es scheint, als würde es immer zusammenwachsen, oder? –

+0

Dann ist das Skript Ihres Professors gebrochen. –