Имам тази проста C++ програма за конзолно приложение във VS 2013 Express (за Windows Desktop):
#include <iostream>
#include <string>
using namespace std;
int main()
{
string mystr;
cout << "Welcome, what is your name? ";
getline(cin, mystr);
cout << "Nice to meet you, " << mystr << endl;
cout << "May i call you \"Idiot\" for short? (y/n)" << endl;
string mystr2;
getline(cin, mystr2);
while ( ??? )
{
if (cin)
{
if (mystr2 == "y")
{
cout << "Thank you, Idiot" << endl;
}
else
{
if (mystr2 == mystr)
{
cout << "You found the hidden secret! The hidden secret is..... I dunno. It is what ever you want it to be. \n \nProbably a let down." << endl;
}
else
{
if (mystr2 == "n")
{
cout << "Ok then, " << mystr << endl;
}
else
{
cout << "Please enter a valid response (y/n)" << endl;
getline(cin, mystr2);
}
}
}
}
}
}
Току-що започнах да уча и предпочитам да уча, докато правя нещо, така че реших да направя това. Както може би се досещате от последния оператор else, искам да казва "Моля, въведете валиден отговор (y/n)", ако потребителят е въвел нещо различно от y, n или mystr2 == mystr. Работи добре, но трябва да го зацикля, така че съм поставил всичко в оператора while.
Сега имам нужда от израз за оператора while, който няма да го повлияе или е резултат от това, че потребителят е задействал последния оператор else. Този пълнител е това, за което имам нужда от помощ.
Знам, че е малко и безсмислено, но искам да го завърша.
getline
повиквания, за да станат условието. - person chris   schedule 15.04.2014