我要带一个格式化的文本文件,并将不同的行放在随机位置的数组中。但是,当我尝试获取时rand() % 8,我会获得以前的值。这使我丢失了一些行,并使数组的某些部分留空。
我应该如何修改它,以便以随机顺序获得从0到7的唯一值?我只使用我在课堂上学到的东西,导师不推荐新东西。请帮助我更改此代码的逻辑。
void get_input(string (&teams)[8][6]) {
srand(time(NULL));
string filename;
double value;
char buffer[100];
int diffnum[8];
string token;
cout << "Enter the input file: ";
cin >> filename;
ifstream infile;
infile.open (filename.c_str());
if (infile.is_open()) {
int teamcounter = 0;
while (infile.getline (buffer, 100) && teamcounter < 8) {
int ran = rand()%8;
for (int find = 0; find < 8; find++) {
while (diffnum[find] == ran) {
ran = rand()%8;
}
}
diffnum[teamcounter] = ran;
int counter …Run Code Online (Sandbox Code Playgroud)