所以,我想从用户那里得到一个答案(是或否),如果是,那就做某事,如果没有,做其他事。
我正在使用c ++(使用Code :: Blocks),而且我是编程的初学者。 这就是我设法做的事情:
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
char answer;
answer = 1;
int x;
x = 1;
int number1;
while ( x > 0 )
{ //Ez egy köszönés!
cout<<"Type in a number!\n";
//Kérek egy számot
cin>> number1;
cin.ignore();
//Kiírom a számot
cout<<"You entered: "<< number1 <<"\n";
if ( number1 == 666 ) //Ha number1 = 666 akkor kiírjuk hogy Are you the Devil?
{
cout<<"Are you the Devil?\n";
x = 0;
}
if ( number1 != 666 )
{
if ( number1 > 5 ) //Ha number1 nagyobb 5nél kiírjuk hogy Great Job!
{
cout<<"Great job!\n";
}
if ( number1 < 5 ) //Ha number1 kisebb 5nél kiírjuk hogy Good Job!
{
cout<<"Good job!\n";
}
if ( number1 == 5 ) //Ha number1 = 5 akkor kiírjuk hogy Thank you
{
cout<<"Thank You\n";
}
}
cout<<"\n"; //sortörés
}
cin>> answer;
if ( answer == 1 )
{
cout<<"OH GOD,NO!";
}
}
要求提供一个号码,如果你给它一个,如果它不那么棕褐色就会说:好工作!,如果更好的工作!,如果5谢谢你,并且循环做。 如果你输入666,它会问你是否是恶魔。在这里我想得到一个用户的输入,是或否如果否则它会说:哦上帝,不,如果是,我没有'到了那里......
答案 0 :(得分:1)
用户确认的习语:
std::string answer;
std::cin >> answer;
// Convert to all lower case to reduce number of compares.
// Text is case-sensitive.
std::transform(answer.begin(), answer.end(),
answer.begin(),
std::tolower());
// Now compare
if (answer == "no")
{
// ...
}
对于初学者,一个更简单的解决方案可能是要求单个字符响应:
std::cout << "Continue, Y/N?";
std::cout.flush();
char response;
std::cin >> response;
response = std::toupper(response);
if (response == 'Y')
{
//...
}
编辑1:区分大小写
在C ++中,大写字母与小写字母不同
因此,例如,“否”与“nO”不同。
如果您不将字符串转换为一个案例(全部为低或全部为高),则必须检查每个句子:“no”,“nO”,“NO”,“No”。 “是”的数量更糟
要减少比较次数,请在比较之前将字符串转换为全部或更低。