2017-04-20 4 views
0

正方形の周囲または面積を計算したいと思います。 ユーザがc=calculate perimetera=areaを入力した場合。 cin>>a>>c;コマンドの後にプログラムがジャンプします。私は何をすべきか?C++のif(cin >>)コマンドを使用

#include<iostream> 
#include <string> 
using namespace std; 
int main() 
{ 
    int kenar; //kenar means side length 
    string c,a; 
    cout<<"karenin kenar uzunlugunu girin :"; 
    cin>>kenar; 
    cout<<"cevre icin c, alan icin a girin :";// type c for perimeter,a for area 
    cin>>a>>c; 

     if (cin>>c) 
     { 
      cout<<4*kenar<<endl; 
     } 
     else if (cin>>a) 
     { 
      cout<<kenar*kenar<<endl; 
     } 
     else 
     { 
      cout<<"yanlis giris"<<endl; //cout<<"you type wrong"" 
     } 
} 
+0

何かを比較しようとしているのなら、 '>'ではなく '>'を使うべきです。 '>>'は入力ストリームから読み込むためのものです。 –

答えて

2

基本的に、ユーザー入力に基づいて 'c'または 'a'のいずれかの値を持つ1つの変数を持つ必要があります。その後、ユーザーは以下のように入力した内容を確認するために、この変数を使用することができます。

int main() 
{ 
    int kenar; 
    char option; //note I have changed it to char 
    cout<<"karenin kenar uzunlugunu girin :"; 
    cin>>kenar; 
    cout<<"cevre icin c, alan icin a girin :"; 
    cin>>option; 

    if (option == 'c') 
    { 
     cout<<4*kenar<<endl; 
    } 
    else if (option == 'a') 
    { 
     cout<<kenar*kenar<<endl; 
    } 
    else 
    { 
     cout<<"yanlis giris"<<endl; //cout<<"you type wrong"" 
    } 
} 
+0

非常に多くの感謝:)それはうまく動作します! – husamsdu

0

cin >>cは、文字列cに単語を読み込むしようとします。 if(cin>>c)は、単語を正常に読み取ったかどうかを確認します。

これは、単語"c"を入力したユーザーとは関係ありません。あなたはcという名前の変数を持っています。おそらく望んでいたのはstd::string operationなので、テストすることができます

if (cin>>operation) { 
    if (operation=="c") { 
    // ... 
    } 
    else (operaion=="a") { 
    // ... 
    }