Forum » Programiranje » Vislice
Vislice
prognoob ::
Imam problem z vislicami v c++.
Pri nakljućnem izboru besed iz datoteke mi vedno vzame le zadnjo besedo.
prosim za pomoč!!
moj program:
http://download.yousendit.com/B552C2EE7...
Pri nakljućnem izboru besed iz datoteke mi vedno vzame le zadnjo besedo.
prosim za pomoč!!
moj program:
http://download.yousendit.com/B552C2EE7...
prognoob ::
Roadkill ::
Nisem ravno C++ znalec ampak probaj uporabit srand.
Drugač pa poglej katere vrednosti ti zavzema "random".
Drugač pa poglej katere vrednosti ti zavzema "random".
Ü
VASkO ::
z branjem z uporabo >> iz datoteke prides do konca fajla (eof) in potem ti drugo zanko enostavno preskoci
edit:
tudi ce datoteko znova odpres, ne resetiras eof bita (moras dodati file.clear()). pa iste datoteke ne rabis 2x odpirat:
// preberi število vrstic v datoteki
while (!file.eof())
{
file >> beseda;
file_rows++;
}
file.clear();
file.seekg(0,fstream::beg);
// izberi naključno število med 1 in številom vrstic v datoteki
int random = rand()%(file_rows-1)+1;
// poišči besedo v prej naključno izbrani datoteki
for (int x=0;!file.eof() ; x++)
{
file >> beseda;
if (random == x)
break;
}
file.close();
edit:
tudi ce datoteko znova odpres, ne resetiras eof bita (moras dodati file.clear()). pa iste datoteke ne rabis 2x odpirat:
// preberi število vrstic v datoteki
while (!file.eof())
{
file >> beseda;
file_rows++;
}
file.clear();
file.seekg(0,fstream::beg);
// izberi naključno število med 1 in številom vrstic v datoteki
int random = rand()%(file_rows-1)+1;
// poišči besedo v prej naključno izbrani datoteki
for (int x=0;!file.eof() ; x++)
{
file >> beseda;
if (random == x)
break;
}
file.close();
Zgodovina sprememb…
- spremenil: VASkO ()
Jean-Paul ::
VASkOva rešitev dela, ampak je počasna. Svetujem, da prebereš najprej vse besede v neko podatkovno strukturo (npr. std::vector<std::string>), ki ima dostop do poljubnega elementa v O(1).
http://www.cppreference.com/cppvector/p...
edit: No, predpostavil sem, da boš naključno izbiro besede ponovil večkrat. Če ne, je VASkOva rešitev več kot dobra.
http://www.cppreference.com/cppvector/p...
edit: No, predpostavil sem, da boš naključno izbiro besede ponovil večkrat. Če ne, je VASkOva rešitev več kot dobra.
Zgodovina sprememb…
- spremenil: Jean-Paul ()
VASkO ::
to je avtorjeva resitev s popravkom, da deluje. ma ko delas neke vecje I/O operacije pa je itak terba v racun vzet se performance algoritma. za vislice pa ni frke :)
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Linux wirelessOddelek: Operacijski sistemi | 1141 (630) | AlienRR |
» | Ubuntu 9.04 & ati mobility radeonOddelek: Operacijski sistemi | 977 (929) | roba87 |
» | [c++]file read problemOddelek: Programiranje | 1584 (1319) | 'FireSTORM' |
» | VB6 - ne zaključi proces programa - pomoč !!!Oddelek: Programiranje | 1388 (1229) | Mavrik |
» | Kako v VB prebereš določeno vrstico v txt file?Oddelek: Programiranje | 848 (744) | pro2c |