gpt4 book ai didi

c++ - 运行期间传递的参数的平方根

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:23:01 24 4
gpt4 key购买 nike

我是 C/C++ 语言的新手,我想问一个简单的问题。我写了以下代码:

#include <stdio.h>
#include <math.h>

int main(int argc, char ** argv){
printf("Square root from %f is %f", argv[1], sqrt(argv[1]));
}

但它不起作用,因为 argv[1] 的类型为 char*。如何将 argv[1] 转换为 double,如果不可能则抛出异常?

最佳答案

最简单的解决方案是使用 atof .因此,你会写这样的东西:

printf("Square root from %s is %f", argv[1], sqrt(atof(argv[1])));

当然,您可以研究更高级别的替代方案,例如 C++11 的 std::stod , 但对于这个简单的案例来说,这将是一种矫枉过正,但如果你以后坚持使用 C++ 代码,如果我是你,我会这样写:

std::string myString = argv[1];
std::cout << "Square root from " << argv[1] << " is "
<< std::sqrt(std::stod(myString)) << std::endl;

您还需要将第一个占位符更改为 %s,因为您正在那里打印第一个参数,就像您编写字符串一样。

在您的最终代码中,还请确保 argc 在尝试访问字符串数组的第二项之前至少为 2。

关于c++ - 运行期间传递的参数的平方根,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23172472/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com