- Apple Watch Sport - ez is csak egy okosóra
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- Telekom mobilszolgáltatások
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Samsung Galaxy S22 Ultra - na, kinél van toll?
- Mobil flották
- Leesett a kamionról több millió eurónyi Z Fold7
- Xiaomi 15 - kicsi telefon nagy energiával
- Samsung Galaxy A56 - megbízható középszerűség
Hirdetés
Talpon vagyunk, köszönjük a sok biztatást! Ha segíteni szeretnél, boldogan ajánljuk Előfizetéseinket!
Új hozzászólás Aktív témák
-
WonderCSabo
félisten
vagy
string s;
getline(cin, s);
f.open(s.c_str());fstream :: is_open helyett én fstream::good -ot szoktam használni
-
FireKeeper
nagyúr
az megvan, hogy melyik függvényt kéne használnom (az fstream kell majd), hanem azt nem tudom hirtelen, hogy hogy kell azt kezelni, hogy a fájl nem a .exe mappájában van, hanem egy más elérési úton, hogy hogy kell beparaméterezni a függvényt, hogy bármilyen helyen lévő fájlból tudjon dolgozni.
vagyis a felhasználó megadja az elérési utat és a fájlnevet, és nekem utána ebből kell dolgoznom. -
G4bi89
senior tag
Igen elfogadták és big thanks.
Nem pofátlanságból nem írtam eddig hanem mert nem volt időm. Megírtam hozzá a dokumentációt is még mert az is kellett és elfogadta azt is meg magát a program kódot.
Meg írtunk egy ZH-t a struktúrákból ami érdekes módon megy 26pontból 17-et értem el. Mondjuk maradék 9pontból is meglehetett volna pár, de nem tudtam befejezni volt benne hiba így inkább töröltem az a részt mivel ha nem fut le a program akkor 0 pont az egészreaz meg nem vicces.
Jhonny06: Olvass vissza ez nem programozói szak hanem rendszergazda... Most első félévben van prog és soha többet...
-
Jhonny06
veterán
Hanyagold az ilyen kéréseket, már párszor csináltam hasonlót gyakorlás/jószívűségem miatt, de soha nem jött semmi válasz vissza (na jó, talán egyszer).
Mondjuk az illető nagyobbat fog szívni, mert ha nem gyakorolja, akkor nem fogja tudni, esetleg következő alkalommal belekérdeznek.. meg kell adni neki az induláshoz a segítséget, aztán hagyni, hadd szenvedjen. Az ilyenek minek mennek progra?
-
pityaa23
senior tag
-
Sk8erPeter
nagyúr
Egyébként a vector, string és ehhez hasonlók az STL-tárolók témakörbe tartozik.
Igen nehéz lenne általánosan megfogalmazni, mikor melyik típus jó, de pl. a vector egy olyan osztály, amelynek sablonparaméterként át lehet adni a típust. Elég hasznos, mert így szinte bármilyen adattípust tudsz kezelni (egész számok, karakterek, karaktertömbök, stb.). -
Sk8erPeter
nagyúr
Innen letölthetsz C++-os jegyzeteket (előadónk oldala), a lényeg röviden elég jól benne van mindegyik anyagrészből: [link] (most épp le tudod tölteni, félév elején eltűnnek a linkek (mondjuk a cím elérhető), hogy lehessen látni, épp hol tartunk)
(#811) emvy: tudom én, hogy tudod.
-
Jester01
veterán
Háááát, ha egyszer úgyis 1000 elemű fix méretű tömbbe olvasol, akkor aztán tök mindegy utána mit varázsolsz. Totál felesleges átmásolni egy másik (immár megfelelő méretű) tömbbe.
setlocale(LC_ALL,"Hun"); ebben nem vagyok olyan biztos, hogy működik. Nálam tuti nem. Persze ha nem is ellenőrzöd a visszatérési értéket akkor sose tudod meg.
numberofstars ez jó félrevezető változónév az imperialista kémek megtévesztésére ... mivelhogy még véletlenül sem a csillagokat számolja.
if(numberoftips<=10 && numberofstars==unknownlength) itt szerény véleményem szerint mindenképp numberoftips<=10
system("pause"); ezért, ha én tanár lennék, azonnal egyest adnék...
+1: kellene egy #include <cstdlib> a (s)rand miatt.
-
WonderCSabo
félisten
Magyarul akasztófázni kell.
Szerk.
for (int i=0;i<vector[randomodik].length();i++)
{
if ( vector[randomodik].substr(i,1) == betu)
{
// csinálja ezt
}
} -
Jester01
veterán
Az alap operator>> az éppenséggel benyel mindenféle szóközt (whitespace). Most akkor tuti, hogy vectort nem szabad használni? Mert azzal kb ennyi az egész:
#include <fstream>
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
ifstream file("teszt.txt", ios::in);
if(!file.good())
{
cout<<"Hiba a fajllal...";
return 1;
}
vector<string> words;
while(file.good())
{
string word;
file >> word;
words.push_back(word);
}
for(int i = 0; i < words.size(); i++)
{
cout <<"i: "<< i <<".: " << words[i] << endl;
}
return 0;
} -
Sk8erPeter
nagyúr
Ezt könnyű megoldani, csináld azt, hogy az if(c==' ') count++; rész után tegyél egy nagy else blokkot, a következőképpen:
if(c==' ') count++; //szóközt kaptunk, növelünk, következő helyre tároljuk a szót
else{
if(count<default_size){ //még beleférünk
words[count].push_back(c);
}
else{ //nyújtózkodunk
//........
//........
}
}És ezzel elvileg jó.
-
Sk8erPeter
nagyúr
Ja bocsi, az elkerülte a figyelmem, hogy az a lényeg, hogy szavanként tárold el.
Az sem túl nehéz, akkor meg csináld azt, hogy mondjuk sima string helyett string*-ot használsz.Írtam egy példát, bevallom, nem igazán néztem át, hogy helyes-e, és mivel láttam, hogy sürgős, elég gyorsan írtam, így lehetnek benne hibák, mindenesetre kipróbáltam, és működik.
Az eredeti példa analógiájára csináltam, de kissé átalakítva.Így néz ki:
// string::push_back
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main ()
{
ifstream file ("teszt.txt",ios::in);
if( !file.good() ){ //Fájlpara
cout<<"Hiba a fajllal...";
}
else //OK
{
string* words;
const int default_size=100; //kezdetben pl. 100 méretű tömböt hozunk létre
words=new string[default_size];
int size=default_size; //eltároljuk az alapértelmezett (kezdő)méretet, ha kell, növelünk
int count=0; //hol tartunk a tömbben? (egyszerűbb nyilvántartani)
while( file.good() ) //countot majd a cikluson belül növeljük
{
char c=file.get();
if(c==' ') count++; //szóközt kaptunk, növelünk, következő helyre tároljuk a szót
if(count<default_size){ //még beleférünk
words[count].push_back(c);
}
else{ //nyújtózkodunk
//pl. duplázzuk a kezdőméretet
string* tmp=new string[size*2]; //átmeneti változó, kétszeres kezdőmérettel
for(int uj=0;uj<count;uj++){ //csak count-ig van értelme menni, csak addig töltöttük fel
tmp[uj]=words[uj];
}
size*=2; //duplázzuk
tmp[count].push_back(c);
delete[] words; //töröljük az eredeti adatait
words=tmp; //végül belemásoljuk a nyújtott mérettel
}
}
for(int i=0;i<count;i++){
cout <<"i: "<<i<<".: "<< words[i] << endl;
}
}
return 0;
} -
Sk8erPeter
nagyúr
Akár úgy is megoldhatod, ahogy itt szerepel: istream::read - C++ Reference
// read a file into memory
#include <iostream>
#include <fstream>
using namespace std;
int main () {
int length;
char * buffer;
ifstream is;
is.open ("test.txt", ios::binary );
// get length of file:
is.seekg (0, ios::end);
length = is.tellg();
is.seekg (0, ios::beg);
// allocate memory:
buffer = new char [length];
// read data as a block:
is.read (buffer,length);
is.close();
cout.write (buffer,length);
delete[] buffer;
return 0;
}Viszonylag primitív (de végül is célravezető) megoldás, a fájl végére ugrik, így tudja meg a fájl méretét, ennek megfelelő helyet foglal, majd vissza az elejére, és elkezdi a beolvasást fájl végéig.
De emvy megoldás-javaslata is tökéletes.
---------------------------------------------------------------------------------------------
Szerk.:
(#771) j0k3r!
persze, a string típus is teljesen jó.PÉLDA:
string::push_back// string::push_back
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main ()
{
string str;
ifstream file ("test.txt",ios::in);
while (!file.eof())
{
str.push_back(file.get());
}
cout << str;
return 0;
}Sokkal rövidebb is a kód.
-
Sk8erPeter
nagyúr
Eddigi olvasgatások alapján a Szoftverfejlesztés C++ nyelven c. könyv elég jónak tűnik, de feltételezi a C nyelv ismeretét, nem írtad, hogy van-e ilyen alapod.
Ha nincs, akkor pl. a Programozzunk C++ nyelven c. könyv.Ezenkívül/ehelyett biztos a többiek is tudnak még ajánlani megfelelő forrásokat.
-
Gyuri16
senior tag
#include <iostream>
#include <sstream>
#include <time.h>
using namespace std;
int main() {
time_t t;
time(&t);
struct tm * tt = localtime(&t); // feltoltjuk a tm structot
// kiszamoljuk az ertekeket a struct leirasa alapjan
int year = 1900 + tt->tm_year;
int month = 1 + tt->tm_mon;
int day = tt->tm_mday;
stringstream ss; // Int -> String konverziohoz
ss << year << '.'; //Ev
if (month < 10) { // 1 helyett 01 legyen
ss << 0;
}
ss << month << '.'; //Honap
if (day < 10) {
ss << 0;
}
ss << day << '.'; //Nap
string datum = ss.str(); //stringet csinalunk belole
cout << datum << endl;
return 0;
}most vettem csak eszre, hogy char tombot hasznalsz, szoval akkor meg stringbol csinalni kell egy char[]-t, pl igy:
char d[12];
strcpy(d, datum.c_str());
(strcpynek a string.h include kell)
vigyazz mert a te kododban csak 11 byteot foglalsz le a datumnak, de az 12 byteot foglal (a null byte a vegen)
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- iKing.Hu Samsung Galaxy S25 Plus Navy 12/256 GB Használt, karcmentes állapotban 3 hónap garanciával!
- iKing.Hu - Apple iPhone 15 Plus Black Használt, karcmentes 256 GB tárhely 3 hónap garancia!
- iKing.Hu - Motorola Razr 40 Ultra Glacier Blue 8 GB RAM / 256 GB tárhely Használt, karcmentes
- iKing.Hu - Motorola Razr 50 Ultra Midnight Blue Használt, karcmentes állapotban 12 GB RAM / 512 GB
- iKing.Hu - Xiaomi 14 Ultra Ultra White Használt, karcmentes állapot, Kamerás csúcsmobil
- Telefon felváráslás!! Xiaomi 13T, Xiaomi 13T Pro, Xiaomi 14T, Xiaomi 14T Pro
- LG UltraGear Gaming Monitorok -30%
- BESZÁMÍTÁS! ASRock B360M-HDV i5 8500 16GB DDR4 512GB SSD GTX 1660 Super 6GB ZALMAN S3 TG NJOY 500W
- BESZÁMÍTÁS! ASROCK B550 R5 3600 16GB DDR4 250GB SSD 1TB HDD RX 5700 XT 8GB CM MasterBox MB500 700W
- Telefon felvásárlás!! iPhone 12 Mini/iPhone 12/iPhone 12 Pro/iPhone 12 Pro Max
Állásajánlatok
Cég: FOTC
Város: Budapest