开发者

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.
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜