KGigi Posted January 24, 2010 Posted January 24, 2010 Jaaa értem. És kíváncsi vagy, hogy ez hogy mûködik vector-ral, vagy ne fárasszalak?
Pjotr Posted January 24, 2010 Posted January 24, 2010 Ha ráérsz. Persze lehet, hogy csak összezavarodok.
KGigi Posted January 24, 2010 Posted January 24, 2010 Az osztályban: std::vector<string> szoveg; A függvényed ennyi lesz: szoveg.push_back(t); Persze t nem char*, hanem string.
skybot Posted January 24, 2010 Posted January 24, 2010 Olyant lehet csinálni, hogy 2 int változó tartalmát bele teszem egy stringbe, közéjük meg beillesztek egy tetszõleges szöveget? Pl 2 és 3 esetén. Így nézne ki a string: 2-3.
KGigi Posted January 24, 2010 Posted January 24, 2010 Persze, hogy lehet. Ajánlom figyelmedbe az itoa() függvényt. Nem ANSI, de egyébként bonyolult lenne.
arpsoft Posted January 24, 2010 Posted January 24, 2010 Én meg az sprintf-et, ami ANSI és pofon egyszerű. sprintf(cIdeirunk,"%d-%d",iEgyikszam,iMasikszam); vagy ha tényleg tetszőleges szöveget akarsz beilleszteni: sprintf(cIdeirunk,"%d%s%d",iEgyikszam,cTetszoleges,iMasikszam);
skybot Posted January 24, 2010 Posted January 24, 2010 Bocsi, elfelejtettem írni, hogy C++-ba kellene megoldanom.
arpsoft Posted January 24, 2010 Posted January 24, 2010 cout << iElso << cSzoveg << iMasodik; Ez az alap, ami képernyőre ír. Pontosabban az alapértelmezett output eszközre. Gondolom ez ismerős. String-be pakolni kicsit trükkösebb, ott már saját stream-et kell létrehozni: ostringstream temp_kimenet; temp_kimenet << iElso << cSzoveg << iMasodik; string kimenet = temp_kimenet.str(); cout << kimenet; A temp_kimenet - ez a stream objektumunk - csak azért kell, hogy használni tudjuk a jól megszokott << operátorunkat. Az str metódus adja vissza string-ként az eredményt, amit eltárolunk a kimenet string-ben. Ezt aztán - csak úgy, szorgalmi feladatként - kiírjuk az output eszközre.
skybot Posted January 25, 2010 Posted January 25, 2010 Örök hála. Akkor ez úgy működik, mint a fájlba írás, csak itt nem fájlba, hanem stringbe írunk.
skybot Posted January 28, 2010 Posted January 28, 2010 Nem mûködik a dolog. Hogyasszondja: 122 D:\Érettségi\Programozás\2007.10\foci.cpp aggregate `std::ostringstream temp_kimenet' has incomplete type and cannot be defined
skybot Posted February 2, 2010 Posted February 2, 2010 Megtörtént. Ez volt a hiba. Most már működik. Köszi.
skybot Posted February 20, 2010 Posted February 20, 2010 Olyan feladatom lenne, hogy egy fájlból adatokat olvassak ki. Nos elsõ sor menne is. cout << "1. feladat: " << endl; fstream be("sms.txt", ios::in); int k; int ora[100], perc[100], telszam[100]; string uzi[100] [100]; be >> k; for(int i=0; i<k; i++) { be >> ora[i]; be >> perc[i]; be >> telszam[i]; be >> uzi[i]; } Az utolsó adat egy szöveges üzenet lenne. Nos ezt, sehogy sem tudom kiolvasni a fájlból. Valami fura kódot ír ki. Gyanítom, hogy nem az üzenetet, hanem valami mást olvasok ki a fájlból. Az üzenet egy külön sorban lenne. Meg lehet, valahogy oldani, hogy a számok kiolvasása után a következõ sorra ugorjon a program, majd kiolvassa a szöveget és kezdõdjön elölrõl a ciklus?
Pjotr Posted February 20, 2010 Posted February 20, 2010 string uzi[100] [100]; --> char uzi[100][100]; be >> uzi; --> be.getline(uzi,100);
skybot Posted February 20, 2010 Posted February 20, 2010 string uzi[100] [100]; --> char uzi[100][100]; be >> uzi; --> be.getline(uzi,100); Ha egy sort akarok beolvasni működik. De ha előtte be akarom olvasni számokat akkor nem. Na kezd alakulni. Ha számokat beolvasom char-nak, át lehet később rakni intbe ugye?
skybot Posted February 20, 2010 Posted February 20, 2010 Azt gondoltam, hogy ugye mindig a 2. sor a szöveg, tehát első sornál egy ciklussal kiolvasnám a számokat, majd a páros sorokat pedig egy másik ciklussal olvasnám ki. Nem lehetne a sorokat stringbe olvasni char helyett?
Pjotr Posted February 20, 2010 Posted February 20, 2010 De, csak akkor ne azt írod, hogy string uzi[][], hanem azt, hogy string uzi[]. (Legalábbis így gondolom.) Bele kell rakni egy if elágazást, hogy a páros soroknál a számokat olvassa, páratlannál az üzenetet. A fájl pedig azért kellene, mert levegőbe beszélve én se értem magamat.
KGigi Posted February 20, 2010 Posted February 20, 2010 Ha váltakozva vannak a sorok, akkor nem kell elágazás, elég a két utasítás közé betenni egy olvasást. Ha a sorok formátuma is azonos, akkor pedig meg lehet oldani egy ciklussal, aminek a magja egy szekvencia, elemei egy-egy olvasóciklus.
skybot Posted February 21, 2010 Posted February 21, 2010 Informatika résznél itt megtalálható a feladat és a forrásfájl is. Link Ja és a getline-nal, nem tudok stringbe olvasni. Próbáltam, de lehet csak én vagyok béna.
skybot Posted February 21, 2010 Posted February 21, 2010 Hogy és miként? Ha írnál egy példát megköszönném, ugyanis, ha csak simán char helyett egy stringet írok bele, nem működik. Valamint a 2. paraméter(100) a char tömb hosszát jelöli, ahogy olvasgattam neten. Nos stringnél ez értelmetlen lenne nem?
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now