C++-ban hogy tudom azt a sort kiiratni egy txt fájlból?
bekérek 1 stringet pl cica és a txt fájlomba ilyen sorok vannak hogy
a Alpha
b Bravo
c Charlie
akkor hogyan tudom azt a sort kiiratni a fájlomból?
amire én gondoltam, hogy
while(!fájlom.eof()){
getline(fájlom, sor);
if(sor[0]==bekerszto[x]
cout<<sor;
Harriet Beecher Stowe-ról még csak-csak hallottam rebesgetni, de mi fán terem a bekerszto?
Mindenesetre valami a bemutatotthoz hasonlót kéne csinálnod, amennyiben a bekerszto[x] egyetlen karakter, és a feltétel végére is teszel zárójelet. Ja, meg nem használsz ékezetes azonosítókat.
Gondolom van rá magyarázat, hogy miért volt egyszerűbb megkérdezni, mint kipróbálni, de elég furán hat.
jajj bekertszo akart lenni, és most nézem hogy nem irtam le az egészet, ami gondot okoz, hogy ha nincs a karakter a txt fájl 1. oszlopában pl egy ! jel akkor még 1 felkiáltójelet kell rakni mellé
pl cica!
c Charlie
i India
c Charlie
a Alpha
! !
ez az output, és ez okoz gondot, hogy ami nincs az 1. oszlopba azt hogyan kell, órán nem sokat beszéltünk a fájlkezelésről és neten nem igen találok ilyenhez hasonló feladatot
„ha nincs a karakter a txt fájl 1. oszlopában pl egy ! jel”
Ezt nem egészen értem, úgyhogy megpróbálom önkényesen értelmezni. Ha tényleg nincs karakter az első oszlopban, akkor az egész sorban sincs, gondolom, akkor a beolvasott string hossza 0, ami ezt az esetet egyértelművé teszi. De úgy tűnik, nem erről van szó, hanem arról, hogy van ugyan karakter, csak nem betű, hanem egyéb jel. Ezt mondjuk ilyen feltétellel ellenőrizheted (csak hasból írom, nem próbáltam ki):
...
cout << sor;
if (sor[0] < 'a' || sor[0] > 'z') cout << '!';
cout << endl;
A cicás példád alapján, ha jól értem, vizsgálandó az az eset is, ha van ott ugyan egy megfelelő betű, de nem jelzésként, hanem az már a szó kezdete. Ez abban különbözik a normális ügymenettől, hogy ilyenkor a második karakter nem szóköz, tehát még egy feltétellel észrevehető:
if (sor[1] != ' ') cout << '!';
A feltételek össze is vonhatók, ha jól tippelek, így:
if (sor[0] < 'a' || sor[0] > 'z' || sor[1] != ' ') cout << '!';
Elmellőztem azt a helyzetet, amikor nincs jelzőkarakter, a szó pedig csak egy betűs, pl. az „a” névelő, illetve a jelzőkarakter után hiányzik a szó. Ez megint csak a string hossza alapján szűrhető. Még tovább is lehetne boncolgatni, hogy mi van akkor, ha nem a jelzőnek megfelelő betűvel kezdődik a szó, vagy több szóköz van a kelleténél, stb., de azt hiszem, ez már meghaladja a feladat kereteit. Én mindenesetre elfáradtam, megyek aludni.
Hm, így újra belenézve meglehetősen zavaros, hogy voltaképpen mit akarsz csinálni. Jobb lenne egy pontosabb leírás, és nem ártana, ha a teljes eddigi kódodat fölraknád valahová. Az egyik legegyszerűbb kódmegosztó oldal:
Az adatfájlt majd valahogyan összeügyeskedjük hozzá. Én csak este kerülök elő legközelebb.
Én meg továbbra is azt mondom, hogy a büdös életben nem fogtok programozni, amíg nem értitek a feladatot és/vagy egy normális épkézláb kérdést nem tudtok megfogalmazni.
Mi köze a "cica" stringnek a fájlod tartalmához???
A válaszaid tovább olvasva neked hatalmas káosz van a fejedben.
Nem csodálom, hogy nem megy.
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!