Crazed
Legacy Member
Ik probeer een willekeurige lijn uit een txt bestand te lezen en gebruik daarvoor volgende code:
Het in te lezen bestand heeft op z'n eerste regel staan hoeveel woorden (lijnen met woorden dus) er in het bestand staan. (Als iemand weet hoe ik dit automatisch door C++ kan laten tellen, be my guest) Dit aantal wordt opgeslaan in de variabele "regels"
Het echte probleem zit hem echter in het selecteren van een willekeurige lijn. Dit is helemaal niet willekeurig. Na drie keer uitvoeren, krijg ik 3x dezelfde waarde, wat dus niet de bedoeling is... Waar zit de fout??
Code:
fstream bestand;
bestand.open("woorden.rvf", fstream::in);
char buffer[20];
if(!bestand)
{
cout << "Kon het bestand niet openen";
}
else
{
// bestand kon worden geopend
char aantal_woorden[3];
bestand.getline(aantal_woorden, 3);
int regels = atoi(aantal_woorden);
srand(time(NULL));
char woord[64];
int random = regels*rand()/(RAND_MAX+1);
cout << "random: " << random;
for(int i = 0; i < random; i++)
{
bestand.getline(woord, 64);
}
cout << endl << random << endl << woord[0] << woord[1] << woord[2];
}
Het in te lezen bestand heeft op z'n eerste regel staan hoeveel woorden (lijnen met woorden dus) er in het bestand staan. (Als iemand weet hoe ik dit automatisch door C++ kan laten tellen, be my guest) Dit aantal wordt opgeslaan in de variabele "regels"
Het echte probleem zit hem echter in het selecteren van een willekeurige lijn. Dit is helemaal niet willekeurig. Na drie keer uitvoeren, krijg ik 3x dezelfde waarde, wat dus niet de bedoeling is... Waar zit de fout??