我正在制作一个基本计算器来熟悉传递参数。我编码的函数是:
int op(char* sig, int num1, int num2)
{
char sign=*sig;
if(sign == '+') return num1+num2;
if(sign == '/') return num1/num2;
if(sign == '-') return num1-num2;
if(sign == '*') return num1*num2;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我的主要函数获取数字和符号并调用“op”函数。
int main(int argc, char *argv[])
{
int num1=atoi(argv[1]);
int num2=atoi(argv[3]);
char* sig=argv[2];
int res=op(sig,num1,num2);
printf("%d\n",res);
}
Run Code Online (Sandbox Code Playgroud)
问题是当我使用“./”命令通过终端调用程序时,它不会将该*符号视为字符。相反,当我*在参数中使用时,该参数就变成了pipewriter.c我编码的文件的名称。例如,./pw.exe 3 + 4打印7时./pw.exe 3 * 4只打印 0。
如何将*符号用作字符'*'?
我想知道这意味着什么,我正在做一个带有矩阵的程序,有点像 pacman,但是每当我尝试与该程序交互时,它都会结束并返回“退出状态 42”