C++ file IO seeking to a specific line
for instance, I have this test.txt containing :
apple
computer
glass
mouse
blue
ground
then, I want to retrieve one random line from the text file. here's my code :
ifstream file;
file.open("t开发者_JAVA技巧est.txt", ios::in);
char word[21];
int line = rand()%6 + 1;
for (int x = 0 ; x < line ; x++)
test.getline (word, 21);
cout << word;
the problem is the variable 'word' always contains the first line, no matter what random number given...
Seed the random number as suggested by the comments above
#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;
If you want to do this process for large number of lines, here is more efficient way:
- Create an array which can hold strings.
- Put each word in array such that array index=line no.
- Now generate random number and access it with array index.
精彩评论