为什么这个函数输出一个单词多次而不是一次

why is this function outputting a word multiple times instead of one?

本文关键字:一次 单词多 函数 为什么 一个 输出      更新时间:2024-05-10
#include <iostream>
#include <string>//needed to make string array
#include <fstream>//Needed for redaing in from external file
#include <cstdlib>//needed for rand() function (for random word)
#include <ctime>//needed for time() funtion to seed rand()
using namespace std;
void wordPick();
int main()
{
wordPick();
return 0;
}
void wordPick()//reads in external file and puts it in an array for a library of words to randomly choose
{
char secretWord;
srand(time(0));
ifstream inFile("randwords.txt");
if(inFile.is_open())
{
string wordlist[10];
for(int i = 0; i < 10; ++i)
{
inFile >> wordlist[i];
srand(time(0));
string secretword = wordlist[rand() % 10];
cout<< secretword << endl;
}
}
}

我的程序应该从外部文件列表中提取一个随机单词并一次性输出,但实际上,它基本上是用所选单词覆盖列表的其余部分。

这是一个Hangman游戏,用户将不得不猜测,所以它只需要一次。谁能帮我三天后到期吗。

移动此:

srand(time(0));
string secretword = wordlist[rand() % 10];
cout<< secretword << endl;

for循环之外,并删除对srand(time(0)):的冗余调用

for(int i = 0; i < 10; ++i)
{
inFile >> wordlist[i];
}
string secretword = wordlist[rand() % 10];
cout<< secretword << endl;