私はまだC++が新しく、以下のコードを使用してユーザ入力に基づいて結果を出力できるかどうかを確認したい。C++ 'stod()'が動作していません。 'strtod()'がコンパイル時にエラーを投げています
コード:
/* 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()
関数から発生している可能性があると思いますが、これについての助けに感謝します。
http://en.cppreference.com/w/cpp/string/byte/strtof – juanchopanza