C++ 'stod()'不起作用,'strtod()'编译过程中抛出错误
C++ 'stod()' not working, and 'strtod()' is throwing an error during compilation
,所以我仍然是C 的新手,我想看看是否可以使用以下代码基于用户输入来打印结果。
代码:
/* Input Example */
// Initialization
// Euler's Constant
double eulersConstant = rand();
// Euler's Guess
string eulersGuess;
// Euler's Guess (Double)
double eulersGuessDouble;
// Print
cout << "What is Euler's Constant?";
// Input
getline(cin, eulersGuess);
// Update > Euler's Guess (Double)
eulersGuessDouble = strtod(eulersGuess);
/* Logic
If
Euler's Guess (Double) is Euler's Constant.
> Print
*/
if (eulersGuessDouble == eulersConstant)
cout << "tYour guess was right! -- 'Outstanding'" << endl;
else
cout << "tYour guess was wrong! -- 'One in a million chance there...'" << endl;
当我从Windows命令提示符中使用g++
对此进行编译时,我会收到此错误:
Learning C.cpp:116:47: error: cannot convert 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}' to 'const char*' for argument '1' to 'double strtod(const char*, char**)' eulersGuessDouble = strtod(eulersGuess); ^
当然,所有这些代码都在int main()
函数内。我认为问题可能来自strtod()
功能,但对此的任何帮助都将不胜感激。
函数 strtod
接受类似C的字符串aka char Array
double strtod(const char *str, char **endptr);
因此,您 CANT 通过类std::string
的实例,但是您可以将其指向使用c_str
方法包含的Contand Chararacter数组。
eulersGuess.c_str();
或您可以使用接受std::string
参数的函数std::stod
。
[live in Ideone]
相关文章:
- 如何解决导入dll过程中Viual Studio中的并排配置错误
- 如何确保不会在 CI 过程中生成错误的代码?
- 为什么在编译过程中尽管有 -I(破折号大写 i)标志,但仍会出现未定义的引用错误?
- RAII获取在破坏过程中捕获的错误的方法
- 编译过程中有许多错误opencv_contrib
- 生成过程中的 Clion 编译器错误
- 我的代码在执行过程中运行良好.但是当我去提交它的显示分割错误时
- 在输入结构对象的输入过程中运行时间错误
- _CRTLISVALIDHEAPPOINTER在破坏过程中的错误
- C 在结构初始化过程中带有内部阵列的奇怪错误
- C++ 'stod()'不起作用,'strtod()'编译过程中抛出错误
- 如何获取有关protobuf解析过程中生成的错误的更多详细信息?(C++)
- 在新汇编过程中浏览以前的补偿错误
- 在包含新CPP文件后的链接过程中,MSVC 错误
- 如何使用"python setup.py build"解决C++/C编译过程中的"conflicting types"错误?
- 校准过程中出现OpencCV错误
- 如何分配一个当前在分配过程中抛出 std::bad_alloc 错误的大量布尔数组
- C++1z-如果在模板展开过程中出现条件,则引发编译错误
- 编译过程中关于 boost 静态库的链接错误"undefined reference"
- 不了解 gSOAP 序列化过程中的错误