Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 29. 01. 2013 18:02

Chanzy
Příspěvky: 172
Reputace:   
 

C++ parsing

Neporadil byste mi tu někdo s následujícím problémem? Mám textový soubor, kde jsou 3 sloupce oddělené různým počtem mezer (tabulátorů) a já potřebuji načtený řádek rozdělit do 3 proměnných. Neexistuje na to nějaká funkce? Zatím mám řešení pomocí cyklů, což je ale moc pomalé v případě, že je tam třeba 1000 mezer.
Díky

Offline

 

#2 29. 01. 2013 18:58

Miky4
Místo: Ostrava!!!
Příspěvky: 676
Reputace:   30 
 

Re: C++ parsing

↑ Chanzy:
Nahradit všechny mezery za jednu a pak split podle mezery.

Offline

 

#3 29. 01. 2013 19:29

Chanzy
Příspěvky: 172
Reputace:   
 

Re: C++ parsing

↑ Miky4:
A můžu se zeptat jak zredukovat ty mezery na jednu? Napadá mě zas jen v cyklu kontrolovat dva znaky, ale to bude podle mě moc pomalé řešení...

Offline

 

#4 29. 01. 2013 20:25

Miky4
Místo: Ostrava!!!
Příspěvky: 676
Reputace:   30 
 

Re: C++ parsing

↑ Chanzy:
C++ neovládám, ale mělo by ti pomoct tohle.

Offline

 

#5 29. 01. 2013 20:42

Stýv
Vrchní cenzor
Příspěvky: 5710
Reputace:   215 
Web
 

Re: C++ parsing

pomocí cyklu to nemůže bejt pomalý, pokud to neděláš úplně blbě. vžyť to má lineární složitost

Offline

 

#6 01. 02. 2013 13:43

hradecek
Příspěvky: 772
Pozice: Student
Reputace:   25 
Web
 

Re: C++ parsing

↑ Chanzy:
Spôsobov je viac než dosť. Prečo to komplikovať...
Ak sa smiem spýtať, čo je zlé na klasickej práci so streamom?

Code:

...
#include <fstream>
...
int n1, n2, n3;
ifstream fin("xyz.txt");
...
fin >> n1 >> n2 >> n3;
...

Netrápte sa nad svojimi problémami s matematikou, môžem vás uistiť, že tie moje sú ešte väčšie. ~~Albert Einstein~~
Jak spozná člověk, že není pitomec ? - Moudrý člověk to nepozná nikdy a blbci je to jedno. ~~Jak přicházejí básnici o iluze~~
Někteří lidi se nikdy nezmění. Anebo se rychle změní a pak se zase rychle změní nazpátek. ~~Homer Simpson~~

Offline

 

#7 10. 03. 2013 23:28

Chanzy
Příspěvky: 172
Reputace:   
 

Re: C++ parsing

↑ hradecek:
Moc děkuju za tvou radu, hodně mi to pomohlo. Teď ale řeším jak v tomto streamu odhalit chyby typu načítání např. "2a" do intu. Tento zápis mi hodí do intu 2, ale potřeboval bych nějak odhalit, že nastal tento problém. už jsem zkoušel !fin, ale ten odhalí jen načítání sloupců, které začínájí nějaký nečíselným znakem. Nemám k dispozici knihovnu ctype. Nevíte někdo jak na to?

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson