所以我正在为我的课程完成这项任务,书籍真的不清楚如何使用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和&amp;之前测试了它。 argv程序的一部分。如果有人能帮助我更好地理解这个错误,那么解决方案将非常有用!
再次感谢,
-Stephen
P.S。这肯定是编译错误,正如我的编译器告诉我的那样。我只是没有发布错误的那部分,因为我认为该部分代码是多余的。
答案 0 :(得分:4)
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没有提供参数)
希望有所帮助。