Hogy lehet ebben az esetben adatokat beolvasni txt-ből C++ban?
Egy struktúrába kéne az adatokat beolvasni.
Könyvek adatait kéne tárolni az alábbi struktúrába.
Az adatok pedig ilyen formában vannak a txt-ben:
Programozzunk C nyelven 2002 3610 2
Pokoli tortenetek 2012 3324 5
struct konyv
{
char cim[40];
int kiadev;
int ar;
int eladottdb;
}
A gondot az okozza, hogy szóköz van a könyvek címében. Én pedig csak úgy tudok beolvasni, hogy szóközig olvasson mindig.
Hogyan lehetne megoldani ezt a problémát? Hogy lehet megoldani, hogy szóközök után lévő szöveget ne próbálja a program beleerőszakolni egy int típusú változóba?
Előre is köszi a segítséget! :)
Annyi de annyi megoldás van rá...
1) Például írsz egy speckó függvényt, ami nem elölről kezdi vagdosni az inputot vagdosni, hanem hátulról. És megadható neki, hogy legfeljebb hány szeletet vágjon fel.
2) Feldarabolod a string-et szóközök mentén. Ebből lesz egy tömb, aminek az utolsó három eleme tartalmazza a kiadási évet, az árat és az eladott mennyiséget. A tömb maradék részét egyesíted egy string-be és megvan a cím
3) Rámozdulhatsz egy formális nyelvtannal is akár
És még sorolhatnám.
Csinálhatod azt is, hogy egy könyv két sorban szerepel. Egy sor a címnek, egy a többi adatnak, pontosvesszővel elválasztva. De akár tehetsz minden adatot külön sorba is, és akkor a soremelés karakter lesz az elválasztó. (Vigyázz, hogy Win-nél ez általában két karakter.)
Vagy mondjuk nem szóközzel választod el őket. Hogy érted, hogy "csak úgy tudok beolvasni, hogy szóközig olvasson mindig" ? Használhatsz mondjuk \0 karaktert is.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!