好吧,我几乎得到了这个工作,但我坚持使用b的第二部分,让它显示数组中该位置的单词。以下是我需要它做的清单。
从文本文件中将50个单词读入字符串数组
该程序将使用随机数:
a.-它将生成一个介于2和7之间的随机数,用于选择句子中使用的单词
b.-它将为选择单词生成一个随机数。数字将在0到49之间,因为它们是数组中单词的位置
它会在屏幕上显示句子。
提前感谢您提出任何建议
#include <string>
#include <iostream>
#include <fstream>
#include <time.h>
#include <stdlib.h>
#include <vector>
using namespace std;
int main() {
ofstream outFile;
ifstream inFile;
string word;
vector <string> words;
srand(time(0));
int Random2 = rand() % 7 + 1;
inFile.open("words.txt");
if (!inFile.is_open()) { //tests to see if file opened corrected
exit(EXIT_FAILURE);
}
while (getline(inFile, word)) { //Puts file info into string
words.push_back(word);
}
for (int i = 0; i < Random2; i++) {
int Random1 = rand() % 49 + 1;
cout << words[Random1] << endl;
}
cin.get();
}
答案 0 :(得分:0)
您在预期范围内生成随机数的逻辑是不正确的。
int Random2 = rand() % 7 + 1;
将Random2
的范围设为1到7,包括两者。如果您希望范围为2 o 7(包括两者),则需要使用:
int Random2 = rand() % 6 + 2;
而且......
int Random1 = rand() % 49 + 1;
将范围或Random1
设置为1到49,包括两者。如果您希望范围为0到49(包括两者),则需要使用:
int Random1 = rand() % 50;
你的其余代码看起来还不错。