2012-03-13 121 views
-2

我不知道爲什麼這會給我帶來麻煩,我想我在測試中早些時候做到了,並且它工作正常。獲得比較!和用戶輸入

我使用cin獲得一些用戶輸入,然後將其作爲字符傳遞給另一個方法。然後,我只想說:

if(userInput == '!'){ 
    //do Something 
} 

但它並沒有得到它,所以我試圖定義一個字符爲:

const char myChar ='\u033f'; 


if(guess == myChar){ 
    exit(0); 

} 

但這只是給了我幾個編譯甚至你我的錯誤從另一個StackOverflow線程獲取它。

我必須誤解這裏的根本,有人能給我啓發嗎?

TIA

+0

使用'strcmp'來比較字符串 – 2012-03-13 00:17:51

+0

你得到了哪些編譯器錯誤? – Anthony 2012-03-13 00:18:53

+0

@HunterMcMillen:他沒有比較字符串,他比較了'char'......他說。 – 2012-03-13 00:21:07

回答

2

下面的例子爲我工作:

#include <iostream> 

int main() { 
    const char myChar = '!'; 
    char guess; 
    std::cin >> guess; 
    if (guess == myChar) { 
     exit(0); 
    } 
    std::cerr << "No!" << std::endl; 
} 

或許,如果你的問題是澄清多一點,我可以編輯這個答案是一個小更完整。

2

好了,這對我的作品,所以我覺得你的問題是,你還沒有發佈的區域。

#include <iostream> 

using namespace std; 

int main() { 
    char c; 
    cin >> c; 

    if(c == '!') 
     cout << "Worked!" << endl; 
    else 
     cout << "Something else..." << endl;  
} 

那麼,現在我們已經證明了最基本的示例作品,那麼向我們展示更多的代碼呢?向我們展示如何聲明userInput以及您在哪裏閱讀,即完整工作(或者說,非工作...)代碼示例。

0

我下面的作品,並會拍攝一個感嘆號。

#include <iostream> 

int main() 
{ 
    char a; 
    if(std::cin >> a && a=='!') 
     std::cout << "! received" << std::endl; 
} 
+0

...「修改」? :-D – 2012-03-13 00:23:55

+0

@ EdS.I並不是最好的打字員。 :( – 111111 2012-03-13 00:24:54