当答案错误时重复一个问题



所以我基本上必须创建一个小测验,但我不确定当答案错误时,我会如何重新提问。我相信这是一个循环,但我不知道是哪一个。这就是我目前拥有的

#include <iostream>
using std::cin;
using std::cout;
int main() {
std::string answer;
cout << "Is K before T in the alphabet ?";
cin >> answer;
if (answer == "y") {
cout << "Well done!";
}
else {
cout << "Try again";
}

您可以使用一个简单的布尔控制变量:来执行类似的操作

int main()
{         
std::string answer;
bool isCorrect = false;

while(isCorrect == false)
{   std::cout << "Is K before T in the alphabet ?";
std::cin >> answer;

if (answer == "y")
{
isCorrect = true;        
std::cout << "Well done!";
}
else
{
std::cout << "Try again";
}
}
}

如果你计划有几个问题,你可以创建一个助手函数,然后为每个问题调用它:

bool inputValidation(std::string strQuestion, std::string strAnser) {
std::string userInput;
std::cout << strQuestion;
std::cin >> userInput;
while (true) {
if (userInput == strAnswer)) {
return true;
}
else {
std::cout << strQuestion;
std::cin >> userInput;
}
}
}
int main() {
bool correct = InputValidation("What is the answer?","42");
correct = InputValidation("Is K before T in the alphabet?", "yes");
}

然后,你可以把所有的问题和答案放在一张地图上,并使用for each循环来循环浏览每个问题和答案对。如果你需要多个输出,比如说;y"=="是=="1〃;,你可以通过vector<std::string>作为答案。

最新更新