【发布时间】:2014-04-11 12:48:43
【问题描述】:
以下是我目前遇到问题的一段代码。我的函数(名为 getGuess)需要能够接受多个独立输入的猜测(我已经简化了这部分代码,以便输入 5 个猜测)并形成它的单个字符串输出(名为 prevGuesses)。猜测有一个限制,因为它们必须是小写字符并且不能重复(这个限制参数是在函数 prevGuesses 内的 while 循环中设置的)。目前 prevGuesses 字符串的范围是本地的,并且无法保存应该在 int main 函数中 for 循环的每个循环中添加的猜测字符。您可以忽略我的 int main 函数代码的开始部分,其中需要一个名为短语的输入。
#include <iostream>
#include <string>
using namespace std;
char getGuess(string prevGuesses);
int main(){
char guess;
string phrase, unsolved, prevGuesses;
cout << "Enter phrase: ";
getline(cin,phrase);
for (int i=0; i<5; i++){ // i<5 is an arbitrary parameter designed for 5 guesses
getGuess(prevGuesses);
cout << prevGuesses << endl; //this serves as a check for prevGuesses string
//currently blank for every output
}
cout << prevGuesses << endl; //also blank
//suppose to be a string of the 5 guessed characters
}
char getGuess(string prevGuesses){
char guess;
cout << "Enter a guess: ";
cin >> guess;
while ((guess < 'a') || (guess > 'z') || (prevGuesses.find(guess, 0)
<= prevGuesses.size())){
cout << "Invalid guess! Please re-enter a guess: ";
cin >> guess;
}
prevGuesses = prevGuesses + guess;
cout << prevGuesses << endl; //every output is currently the single guess character
return guess;
}
【问题讨论】: