Nahodne slovo zo subora TXT. – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Nahodne slovo zo subora TXT. – C / C++ – Fórum – Programujte.comNahodne slovo zo subora TXT. – C / C++ – Fórum – Programujte.com

 

SoftOrig0
Newbie
20. 7. 2012   #1
-
0
-

Zdravím potrebujem pomoc ohladne nahodneho slova, ktore by som vytiahol zo subora.
Skusal som urobit funkciu ktora by hadzala nahodne cislo od 0 do pocet slov ktore sa nachadzaju v txt dokumente.
A nasledne nato by som urobil cyklus. 
Lenze tu je problem ked urobim cyklus tak neviem vobec ako dosiahnut toho aby preskakovalo urcite riadky ktore koncia na \n a vypisala urcity riadok.
priklad;
V subore txt je: 10 riadkov.
Program nahodne vyberie 1 z 10 riadkov;
Nasledne ho ulozi do premennej s ktorou budem chciet pracovat koli hadaniu pismen.
Vedel by mi niekto skusený poradiť ?
Ďakujem :)

Nahlásit jako SPAM
IP: 178.40.119.–
yaqwsx+9
Posthunter
20. 7. 2012   #2
-
+1
-
Zajímavé

Pokud řádky nemají nějakou pevně danou délku nebo tak něco, tak ti nezbyde nic jiného, než těch předchozích 10 řádků načíst a zahodit. V souboru totiž můžeš říci chci n-tý byte, ale nedokážeš říci chci n-tý řádek - protože řádek je opět jenom nějaký znak.

Nahlásit jako SPAM
IP: 85.160.55.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
TheOndrap+2
Super člen
20. 7. 2012   #3
-
0
-

Přesně tak. Můžeš procházet ten načtený text a počítat znaky CR("\n") , případně v Unixu je to CR,LF. Podstatný je to, že tvůj soubor je jeden velký string a v tom se taky nemůžeš posunovat po řádcích :)

Nahlásit jako SPAM
IP: 213.129.139.–
ZČU v Plzni je mnohem víc, než jenom právnická fakulta !!
Fakulta aplikovaných věd www.fav.zcu.cz
"Když nedokážete říci věci jednoduše, pak jim dostatečně nerozumíte"
a
~ Anonymní uživatel
10 příspěvků
20. 7. 2012   #4
-
0
-

#2 yaqwsx

Nahlásit jako SPAM
IP: 90.182.226.–
Porcepoque0
Newbie
25. 7. 2012   #5
-
0
-

Jestli jsem to správně pochopil, udělal bych to takhle (Návod je jen pro jazyk C++):

1) V nějakém cyklu bych spočítal slova (Operátor >> by načítal slova. až se bude slovo rovnat "", cyklus skončí).
2) Vytvořil bych operátorem new[] pole typu string
3) Operátorem >> bych v cyklu for uložil slova do pole.
4) Vygeneroval bych pomocí rand() % velikost_pole náhodný celý číslo od 0 do velikosti pole.
5) Pracoval bych s řetězcem v poli (nazev_pole[rand() % velikost_pole])
6) Operátorem delete[] bych smazal pole.

Nahlásit jako SPAM
IP: 88.102.98.–
yaqwsx+9
Posthunter
25. 7. 2012   #6
-
0
-

#5 Porcepoque
Když už C++, tak se vykašli na new a použij vector.

Nahlásit jako SPAM
IP: 85.160.44.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 14 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý