Понимание ошибки & quot; ошибка: невозможно преобразовать «char **» в «const char *» для аргумента «1» в «двойной atof (const char *)» & quot;

Так что я работаю над этим заданием для своего класса, и книга ДЕЙСТВИТЕЛЬНО неясно, как использовать элементы argc, argv и atof () (которые все для меня новы), поэтому я пытаюсь использовать их, но получаю эта ошибка, и я не совсем уверен, как ее исправить:

Это моя ошибка:

error: cannot convert ‘char**’ to ‘const char*’ for argument ‘1’ to ‘double atof(const char*)’

Это мой код:

int main(int argc, char** argv)
{
//Code removed

//Code removed

float *feet = atof(argv); // <-- it says the error is with this line

//Code removed

return 0;
}

float convertFeet(float feet)
{
float meters = feet * .3048;

return meters;
}

«Цель» этой программы — преобразовать заданные ноги в число с плавающей запятой, а затем отобразить их (при этом также преобразовав их в метры). Я уже знаю, что функция convertFeet () работает так, как я ее тестировал перед добавлением atof (), argc, & argv части программы. Если бы кто-нибудь мог помочь мне лучше понять эту ошибку и решение, которое было бы очень полезно!

Еще раз спасибо,

-Стивен

Постскриптум Это точно ошибка компиляции, как сказал мне мой компилятор. Я просто не опубликовал эту часть ошибки, так как считал эту часть кода излишней.

3

Решение

char ** argv может содержать несколько «строк». (Я знаю, что C / C ++ технически не имеет строкового типа, но я надеюсь, что вы поняли концептуально, что я имею в виду). argv — это массив char * (строк), включающий имя исполняемого файла и все параметры;

Например:
myfile.exe param1 param 2

даст

argv[0] = myfile.exe
argv[1] = param1
argv[2] = param2

и argc = 3

Вы можете сделать это несколькими способами, но самым простым:

float feet = atof(argv[1]);

Вы должны сделать некоторую проверку ошибок, чтобы убедиться, что argc равен по крайней мере 2, или это взорвется на вас. Также может быть более одного параметра argv [2], 3 и т. Д. (Если argc == 1, параметры не указаны)

Надеюсь, это поможет.

4

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector