0

重複の可能性:
std::string から float または double

私は電卓を書いて​​います (C++ を学んでいます) が、電卓を作ることに決めました。それは、Java を学ぶときに最初にしたことだったからです。

プログラムは次のことを行います。

  1. ユーザーに最初の番号を尋ねます
  2. ユーザーが数字 (-、+、*、/) で何をしたいのかを尋ねます
  3. 2 番目の番号を尋ねる
  4. 結果を表示します。

Javaでユーザーから数値を取得するとき、 Double.parseDouble(number) を使用して、入力したものが数値かどうかを確認しました。

C++ に同様のコマンドはありますか? 私は調査を行ってきましたが、同等の ASCII と比較するなどのトリックを使用する必要があるようです..基本的に、単純なタスクには大量のコードが必要です...そのルートを取る前に、ここに立ち寄って見たかったおそらく、入力が数値かどうかを確認するために何らかの呼び出しを行うことができる場合。負、ゼロ、正、および小数を含む数値を検証するために必要です...それ以外はすべて拒否され、ユーザーに再度入力を求める必要があります。

Javaでそれを行ったとき、try/catchステートメントを使用しました。入力が無効な場合はメソッド(つまり、それ自体)を返すため、ループしてユーザーに再度入力を求めます。

ありがとう!

4

3 に答える 3

4

使用できますstrtod。アンダーフローと範囲外の値を便利な方法で処理します。

さらに、Joachim Pilborg が指摘しているように、C++11 準拠のコンパイラを使用する場合はstd::stod、標準ライブラリにあります。

于 2012-10-05T09:24:34.880 に答える
0

関数 double atof(const char*) を使用します。

使用例:

const char* = "3.14159";
double pi = atof(myDouble);
于 2012-10-05T09:26:08.333 に答える
-1

isdigit関数を使ってみてはどうでしょうか。

于 2012-10-05T09:27:19.990 に答える