小编Joh*_*han的帖子

在 Linux 中通过终端将 * 作为参数传递时使用“*”作为字符

我正在制作一个基本计算器来熟悉传递参数。我编码的函数是:

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。

如何将*符号用作字符'*'

c shell

3
推荐指数
1
解决办法
85
查看次数

退出状态 42 是什么?

我想知道这意味着什么,我正在做一个带有矩阵的程序,有点像 pacman,但是每当我尝试与该程序交互时,它都会结束并返回“退出状态 42”

c++

-5
推荐指数
1
解决办法
4568
查看次数

标签 统计

c ×1

c++ ×1

shell ×1