#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;
}
我正在努力使这项工作,但它导致了分段错误。我检查了我的代码,我发现它没有任何问题。它应该像一个简单的计算器一样工作。然后我尝试了argv或argc的手册页,它说,“没有手动输入...”这样的东西。我的意思是,是不是应该有一个?或者我必须更新一些东西? 如果有人能回答他/她认为可能有用的任何内容,我会很感激。提前致谢!
答案 0 :(得分:1)
您的代码在四个条件中有一个syntaxis / concept错误。
您要求argv[2][0]
,但应该是argv[2]
:
argv[2][0]
表示:指向数组中第三个位置的char(坏)指针的位置argv[2]
表示:指向数组中第三个位置的char的指针的内容这就是您收到Segmentation fault错误的原因。