#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;
}
Я пытаюсь выполнить эту работу, но это вызывает ошибку сегментации. Я проверил свой код, и я просто не могу найти с ним ничего плохого. Он должен работать как простой калькулятор. И затем я попробовал страницу man для argv или argc, и он говорит: «Нет ручного ввода для ...» что-то вроде этого. Я имею в виду, разве не должно быть одного? Или мне нужно что-то обновить? Буду признателен, если кто-нибудь ответит все, что он/она думает, что может помочь. Заранее спасибо!Аргумент командной строки: ошибка сегментации
Я думаю, что это сообщение вне темы, но я все равно вам поможем. Какую команду вы вызываете в свою программу в свой вопрос? Почему вы используете 'argv [2] [0]' вместо 'argv [2]'? Вы уверены, что ваша функция 'atof()' работает **? – Lucio
О, глупо меня. Предполагается, что он работает. Сейчас он работает. Благодаря! – 2013-03-11 01:39:05
Это похоже на C, а не аргументы командной строки. Это МОЖЕТ быть лучше спрошено на SO, я вообще не вижу ничего общего с ubuntu здесь –