Command line 命令行参数:分段错误 #包括 #包括 #包括 #包括 int main(int argc,char*argv[]){ printf(“按以下格式写入:\n”); 双结果,op1,op2; op1=atof(argv[1]); op2=atof(argv[3]); 如果(argv[2][0]='+') 结果=op1+op2; 如果(argv[2][0]='-') 结果=op1-op2; 如果(argv[2][0]='/')) 结果=op1/op2; 如果(argv[2][0]='x') 结果=op1*op2; printf(“结果:%f”,结果); 返回0; }

Command line 命令行参数:分段错误 #包括 #包括 #包括 #包括 int main(int argc,char*argv[]){ printf(“按以下格式写入:\n”); 双结果,op1,op2; op1=atof(argv[1]); op2=atof(argv[3]); 如果(argv[2][0]='+') 结果=op1+op2; 如果(argv[2][0]='-') 结果=op1-op2; 如果(argv[2][0]='/')) 结果=op1/op2; 如果(argv[2][0]='x') 结果=op1*op2; printf(“结果:%f”,结果); 返回0; },command-line,Command Line,我正试图使这项工作,但它导致了分割错误。我已经检查了我的代码,我只是找不到任何错误。它应该像一个简单的计算器一样工作。然后我尝试了argv或argc的手册页,它说,“没有手动输入…”之类的。我是说,不是应该有一个吗?还是我必须更新一些东西? 如果有人能回答他/她认为有帮助的任何问题,我将不胜感激。提前谢谢 您的代码在四个条件中存在语法/概念错误 您正在请求argv[2][0],但应改为argv[2]: argv[2][0]表示:指向字符(bad)的指针在数组中第三个位置的位置cero argv

我正试图使这项工作,但它导致了分割错误。我已经检查了我的代码,我只是找不到任何错误。它应该像一个简单的计算器一样工作。然后我尝试了argv或argc的手册页,它说,“没有手动输入…”之类的。我是说,不是应该有一个吗?还是我必须更新一些东西?
如果有人能回答他/她认为有帮助的任何问题,我将不胜感激。提前谢谢

您的代码在四个条件中存在语法/概念错误

您正在请求
argv[2][0]
,但应改为
argv[2]

  • argv[2][0]
    表示:指向字符(bad)的指针在数组中第三个位置的位置cero
  • argv[2]
    表示:指向数组中第三个位置的char的指针的内容

这就是为什么你会出错。

我认为这篇文章离题了,但我还是会帮你的。是什么命令调用您的程序来回答您的问题?为什么要使用
argv[2][0]
而不是
argv[2]
?你确定你的
atof()
函数正在工作吗?哦,我真傻。应该是2点。它正在工作。谢谢对我来说,这看起来像是C,而不是命令行参数。这可能是更好的问题,所以,我没有看到任何与ubuntu在这里
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>

int main(int argc, char *argv[]) {

printf("Write in this format: <operand1> <operator> <operand2>\n");
double result, op1, op2;

op1 = atof(argv[1]);
op2 = atof(argv[3]);

if(argv[2][0]=='+')
    result = op1 + op2;
if(argv[2][0]=='-')
    result = op1 - op2;
if(argv[2][0]=='/')
    result = op1 / op2;
if(argv[2][0]=='x')
    result = op1 * op2;

printf("Result: %f", result);

return 0;
}