2017-07-28 11 views
-2

マインは円の面積を計算する単純なC++プログラムですが、このエラーが発生します。私?私はC++を初めて使っています。ここに私のプログラムは次のとおりです。エラー:バイナリ '>>':オペランドが見つかりません 'const char [1]の右オペランドをとります

#include "stdafx.h" 
#include <iostream> 
using namespace std; 

int main() 
{ 
    int area; 
    float r; 
    area = 3.14 * r * r; 
    cin >> "enter the radius" >> r; 
    cout << "Area of the circle is:" << area; 

    return 0; 
} 
+1

'cinを>>"を入力してください半径 ">> r;'これは間違っています。これは次のようになります: 'cout <<"半径を入力してください: "; cin >> r; 'また、areaを計算する前にradiusを求めます。 – DimChtz

+2

なぜ多くの人がキーボードのスペースとタブキーを使うのを恐れているのだろうと思っています。 – muXXmit2X

答えて

3

あなたはリテラル"enter the radius"にでを読み取ることができません。これは、コンパイラがあなたに言っているものです:それはconst char[1]タイプのリテラルの最初の要素に書き込もうとしています。

出力するときと同じように、メッセージをcout経由でユーザーに表示する必要があります。 rが知られるまで続い

cin >> r; 

を使用して半径を読み込むまたareaを評価するべきではありません。

(ちなみに、piのあなたの定義はfloatタイプのために悲惨である:私はpiためatan(1)*4を使用する傾向がある; C++標準ライブラリには、あなたのためにそれを定義していない)

+0

途方もなく哀れです。 'cmath'ヘッダーを含め、PIもEも実際には何かが欠けていると感じない。あなたのトリックは素晴らしいですが、それはconstexprの任意の種類のためにそれを使用することを防ぎます。とにかく。 – spectras

+0

#include "stdafx.h" #include using namespace std; int main() { \t int area; \t float r; \t面積= 3.14 * r * r; \t cout << "半径を入力" << r; \t cin >> r; \t cout << "円の面積は" << area; \t getchar(); \t return 0; } –

+0

@spectras:この式に基づいて、メタプログラミングを使用してPIを計算できます。https://en.wikipedia.org/wiki/Bailey%E2%80%93Borwein%E2%80%93Plouffe_formulaそれで、あなたは 'constexpr'としてそれを持つことができます!しかし** **生産に入れないでください! – Bathsheba

関連する問題