2014-02-07 112 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