argv从C中的控制台输入读取*字符时出现问题

Zac*_*dle 2 c math stderr argv

我试图读取:(int 1)operator(int 2)或returnType(int 1)operator(int 2),共有4 - 5个参数,来自控制台并根据输入执行数学运算符.它适用于除*之外的所有内容(用于乘法).它在我的代码中从以下错误catch返回错误:

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

无论我放入什么,它都会遇到这个错误.如果我"测试X string1*string2"或"测试string1*string2"无论是方式,4或5个参数,它都会给我一个错误(也为1-抛出参数) 10个参数,刚刚测试过看).我认为不需要更多代码,因为它可能只需要操作*(特殊字符?)的输入,但如果需要更多代码,请告诉我.

Ign*_*ams 12

它运作得很好.你的shell是通配符.引用它.

./someprogram a '*' b
Run Code Online (Sandbox Code Playgroud)