Jump to content
GSForum - Segélyvonal

Programozás C/C++-ban


Recommended Posts

Posted

Jaaa értem. :) És kíváncsi vagy, hogy ez hogy mûködik vector-ral, vagy ne fárasszalak?

Posted

Ha ráérsz. :) Persze lehet, hogy csak összezavarodok. :fogatlan:

Posted

Az osztályban: std::vector<string> szoveg;

 

A függvényed ennyi lesz: szoveg.push_back(t); Persze t nem char*, hanem string.

Posted

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.

Posted

Persze, hogy lehet. Ajánlom figyelmedbe az itoa() függvényt. Nem ANSI, de egyébként bonyolult lenne.

Posted

Én meg az sprintf-et, ami ANSI és pofon egyszerű. :P

sprintf(cIdeirunk,"%d-%d",iEgyikszam,iMasikszam);

vagy ha tényleg tetszőleges szöveget akarsz beilleszteni:

sprintf(cIdeirunk,"%d%s%d",iEgyikszam,cTetszoleges,iMasikszam);

Posted

Bocsi, elfelejtettem írni, hogy C++-ba kellene megoldanom. :huh:

Posted

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.

Posted

Örök hála. :istenvagy: Akkor ez úgy működik, mint a fájlba írás, csak itt nem fájlba, hanem stringbe írunk. :)

Posted

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 

Posted

És ha simán stringstream-et írsz?

Posted

Megtörtént. Ez volt a hiba. Most már működik. :oké: Köszi.

  • 3 weeks later...
Posted

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?

Posted

string uzi[100] [100]; --> char uzi[100][100];

 

be >> uzi; --> be.getline(uzi,100);

Posted
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?

Posted

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?

Posted

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.

Posted

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.

Posted

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.

Posted

Getline és simán mehet stingbe. Mennie kell.

Posted

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?

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...