例如,我有 test.txt ,其中包含:
apple
computer
glass
mouse
blue
ground
然后,我想从文本文件中检索一个随机行。 这是我的代码:
ifstream file;
file.open("test.txt", ios::in);
char word[21];
int line = rand()%6 + 1;
for (int x = 0 ; x < line ; x++)
test.getline (word, 21);
cout << word;
问题是变量'word'总是包含第一行,无论给出什么随机数......
答案 0 :(得分:4)
按照上述评论的建议播种随机数
#include <cstdlib>
#include <ctime>
#include <fstream>
//...other includes and code
ifstream file;
file.open("abc.txt", ios::in);
char word[21];
srand( time(NULL) );
int line = rand()%6 + 1;
for (int x = 0 ; x < line ; x++)
file.getline (word, 21);
cout << word;
答案 1 :(得分:0)
如果你想为大量的行做这个过程,这里有更有效的方法: