2014-02-07 111 views
1

我很新編程。 我想製作一個應用程序,詢問您的信息並將其保存到文本文件中(但稍後會提供)。C++ - 讀取和比較用戶輸入?

我被困在這裏,在這裏我假設使程序讀取用戶輸入這樣說:

char nimi[20]; 
int aika; 
int ika; 
char juoma[3]; 

cout << "Hello!\nWhat's your name?\n"; 
cin >> nimi; 
cout << "\n\nHi "; 
cout << nimi; 
cout << "!\n"; 
cout << "\nES or MF?"; 
cin >> juoma; 

程序應該讀如果juoma是「ES」或「MF」,然後執行一些代碼取決於答案。

如果像這樣的工作,它會解決它,但它不會:

if(juoma==ES){ 
cout << "Nice choice!" 
} 
+1

使用'的std :: string' – P0W

回答

5
if(juoma=="ES") 
{ 
    cout << "Nice choice!" 
} 

你失蹤了雙引號。您需要聲明變量juoma爲std::string才能工作。在C++中使用char數組是一種普通的折磨,不要那樣做。

+0

很大,但不是爲我工作因爲某種原因.. – Claudio

+0

'CIN >>信息酒店;如果(juoma ==「ES」){ cout <<「Hyva valinta!\ n」; } else if(juoma ==「MF」){ cout <<「Hyi!Juo ES!」; }' – Claudio

0

由於nvoigt提示:你必須添加雙引號,用編譯器將能夠創建一個臨時的std :: string對象,並用它來與它對比信息酒店:

一個可能的解決方案,它使用常量的std :: string對象將是:

const std::string esCompareHelper("ES");  
const std::string mfCompareHelper("MF"); 

if((esCompareHelper == juoma) || (mfCompareHelper == juoma)) 
{ 
    // your specialized code 
} 
+0

與nvoigt的答案相比,這是否有點複雜? – Claudio

+0

其意圖是指出C++的運算符重載功能和創建的臨時對象,因爲作者寫道:「我對編程非常新穎」 – Sonic78