打印String Vector的内容

时间:2015-10-02 02:17:24

标签: c++ string vector

好吧,我几乎得到了这个工作,但我坚持使用b的第二部分,让它显示数组中该位置的单词。以下是我需要它做的清单。

  1. 从文本文件中将50个单词读入字符串数组

  2. 该程序将使用随机数:

    a.-它将生成一个介于2和7之间的随机数,用于选择句子中使用的单词

    b.-它将为选择单词生成一个随机数。数字将在0到49之间,因为它们是数组中单词的位置

  3. 它会在屏幕上显示句子。

  4. 提前感谢您提出任何建议

    #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();
    }
    

1 个答案:

答案 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;

你的其余代码看起来还不错。