2017-04-20 474 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'的值。然後,您可以使用這個變量來檢查什麼用戶,如下填寫:

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試圖讀取一個字到字符串cif(cin>>c)檢查您是否成功讀取單詞。

這與用戶輸入詞"c"無關。你有一個名爲c的變量。什麼你可能想爲std::string operation,因此您可以測試

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