- Karácsonyfaként világíthat a Thermaltake új CPU-hűtője
- Az USA vizsgálja a RISC-V kínai terjedésének kockázatát
- Kicsit extrémre sikerült a Hyte belépője a készre szerelt vízhűtések világába
- Egészen nagy teljesítményspektrumon fedné le a mobil piacot az AMD
- Kihívás a középkategóriában: teszten a Radeon RX 7600 XT
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Gaming notebook topik
- Milyen videókártyát?
- Házimozi haladó szinten
- Milyen TV-t vegyek?
- VR topik (Oculus Rift, stb.)
- Apple notebookok
- NVIDIA GeForce RTX 3080 / 3090 / Ti (GA102)
- Az USA vizsgálja a RISC-V kínai terjedésének kockázatát
- Logitech Z906
Hirdetés
-
AMD Radeon undervolt/overclock
lo Minden egy hideg, téli estén kezdődött, mikor rájöttem, hogy már kicsit kevés az RTX2060...
-
Az Apple iPadOS-t is megrendszabályozza az EU
it Az EB közölte: az Apple iPad táblagépekre írt iPadOS rendszere is kapuőrnek számít, az üzleti felhasználókra gyakorolt fontossága miatt.
-
Az USA vizsgálja a RISC-V kínai terjedésének kockázatát
ph A Kereskedelmi Minisztérium egyelőre csak felméri a helyzetet, egyelőre nem látni, hogy tudnak-e bármit is tenni.
Új hozzászólás Aktív témák
-
Zulfaim
csendes tag
Szevasztok!
Bufferelten kezelt fájlt kellene írnom c++-ban OO-an.
Csináltam egy buffer osztályt, ahol tárolok egy pointert és a méretet.
Ennek kéne működnie:
buffer+=szoveg;
ahol mindketten string-et tároló tömbök.
a szoveget is úgy tárolom, hogy pointer+méret, de azt a main()-ben hozom létre.
Ezt operátor overloaddal kéne megoldani, de nem tudom hogy.
Tudna valaki segíteni? -
Zulfaim
csendes tag
class buffer {
char* buff;
int size;
public:
//buffer() : buff(0), size(0){}
buffer(int s=10){buff=new char[size=s];}
buffer(const buffer&);
buffer& operator=(const buffer&);
friend ostream& operator<<(ostream& s, const buffer b);
~buffer(){ delete[] buff; }
buffer& buffer:perator=(const char* value)
{
delete[] buff;
if( size=strlen(value))
{
buff=new char[size+1];
strncpy(buff,value,size);
}
return *this;
}
};
buffer::buffer(const buffer& e)
{
buff=new char[size=e.size];
for(int i;i<size;i++)
{
buff=e.buff;
}
}
buffer& buffer:perator=(const buffer& e)
{
if( this!= &e)
{
delete[] buff;
buff=new char[size=e.size];
for(int i=0;i<size;i++)
{
buff=e.buff;
}
}
return *this;
}
ostream& operator<<(ostream& s, const buffer b)
{
for(int i=0;i<b.size;i++)
{
s << b.buff;
}
return(s);
}
int main()
{
buffer b;
b=''xyz'';
b+=''-=EZ A BUFFERHEZ FUZOTT RESZ=-'';
cin.get();
return 0;
}
Ezzel mi a baj?
[Szerkesztve] -
Zulfaim
csendes tag
már megvan.
Valaki tudna segíteni, hogy hogy lehetne ezt még kibővíteni egy operator+= overloaddal? -
Zulfaim
csendes tag
buffer& buffer:perator+=( const char* value)
{
char* temp=new char[size+strlen(value)+1];
if(value)
{
strcpy(temp,buff);
strcpy(temp + strlen(buff), value);
delete[] buff;
buff = temp;
}
return *this;
}
int main()
{
char s[7]=''BUFFER'';
buffer b;
b=s;
cout<<b;
b+=s;
cout<<b;
cin.get();
return 0;
}
nem működik rendesen. -
Zulfaim
csendes tag
nem tudom hova feltölteni.
#include <cstring>
#include <iostream>
using namespace std;
class buffer {
char* buff;
int size;
public:
buffer(){buff=''ZZZ''; size=3;}
buffer(const buffer&);
buffer& operator=(const buffer&);
friend ostream& operator<<(ostream& s, const buffer b);
~buffer(){ delete[] buff; }
buffer& buffer:: operator+=( const char* value)
{
char* temp=new char[strlen(buff)+1];
strcpy(temp,buff);
if(size+=strlen(value))
{
delete[] buff;
buff=new char[size+1];
strcpy(buff,temp);
strcpy(buff+strlen(value),value);
}
delete[] temp;
return *this;
}
buffer& buffer:: operator=(const char* value)
{
delete[] buff;
if( size=strlen(value))
{
buff=new char[size+1];
strcpy(buff,value);
}
cout<<''__az '=' this-je__''<<*this;
return *this;
}
};
buffer::buffer(const buffer& e)
{
buff=new char[size=e.size];
for(int i;i<size;i++)
{
buff=e.buff;
}
}
buffer& buffer:: operator=(const buffer& e)
{
if( this!= &e)
{
delete[] buff;
buff=new char[size=e.size];
for(int i=0;i<size;i++)
{
buff=e.buff;
}
}
return *this;
}
ostream& operator<<(ostream& s, const buffer b)
{
for(int i=0;i<b.size;i++)
{
s<<b.buff;
}
return (s);
}
int main()
{
char s[7]=''BUFFER'';
buffer b;
cout<<b;
b=s;
cout<<b;
cout<<endl;
b+=s;
cout<<b;
cin.get();
return 0;
}
most az a baj vele, hogy a this-be ilyen baromságokat rak( memóriaszemét), de nem tudom, hogy mitől kapja. Nem hiszem, hogy a konstruktor hibája lenne. -
Zulfaim
csendes tag
Most a program beolvasás részét próbálom megoldani, de valami probléma van vele.
int karakterek_szama()
{
fstream fp(''c:\\txt.txt'',ios::in);
char s[100];
int k=0;
while(fp>>s)
++k;
fp.close();
return k;
}
istream& operator>>(istream& s, buffer b)
{
int k=karakterek_szama();
delete[] b.buff;
b.buff=new char[(b.size=k)+1];
for(int i=0;i<b.size;++i)
{
s>>b.buff;
}
return (s);
}
void beolvas(buffer b)
{
fstream fp(''c:\\txt.txt'',ios::in);
while(fp>>b.buff)
fp.close();
}
A karakterek_szama() fgv.-el meghatározom, hogy mennyi memóriaterület kell.
Ezt lefoglalom és kiolvasom a fájl tartalmát.
A beolvas függvény friend.
Nem működik.
[Szerkesztve] -
Zulfaim
csendes tag
Befejeztem.
Ez lett a vége:
#include <cstring>
#include <iostream>
#include <fstream>
using namespace std;
class buffer {
char* buff;
int size;
public:
buffer():buff(0),size(0){}
buffer(const buffer&);
buffer& operator=(const buffer&);
buffer& operator+=(const buffer&);
bool operator==(const buffer&);
buffer& buffer:: operator+=( const char*);
buffer& buffer:: operator=(const char*);
bool buffer:: operator==(const char*);
friend void beolvas(buffer &);
friend void kiir(buffer &);
friend ostream& operator<<(ostream& s, const buffer b);
friend istream& operator>>(istream& s, const buffer b);
~buffer(){ delete[] buff; }
};
buffer::buffer(const buffer& e)
{
buff=new char[(size=e.size)+1];
if (e.buff)
strcpy(buff,e.buff);
}
buffer& buffer:: operator+=( const char* value)
{
char* temp=new char[size = strlen(buff)+ strlen(value) +1];
strcpy(temp,buff);
strcat(temp, value);
delete[] buff;
buff = temp;
return *this;
}
buffer& buffer:: operator+=(const buffer& e)
{
char* temp=new char[size+=(e.size+1)];
strcpy(temp,buff);
strcat(temp,e.buff);
delete[] buff;
buff=temp;
return *this;
}
buffer& buffer:: operator=(const char* value)
{
delete[] buff;
if( size=strlen(value))
{
buff=new char[size+1];
strcpy(buff,value);
}
return *this;
}
buffer& buffer:: operator=(const buffer& e)
{
if( this!= &e)
{
delete[] buff;
buff=new char[size=e.size];
strcpy(buff,e.buff);
}
return *this;
}
bool buffer:: operator==(const char* value)
{
if(size==strlen(value)) return true;
else return false;
}
bool buffer:: operator==(const buffer& e)
{
if(size==e.size) return true;
else return false;
}
ostream& operator<<(ostream& s, const buffer b)
{
for(int i=0;i<b.size;++i)
{
s<<b.buff;
}
return (s);
}
int karakterek_szama()
{
fstream fp(''c:\\txt.txt'',ios::in);
char c;
int k=0;
while(!fp.eof())
{
fp.get(c);
++k;
}
fp.close();
return k;
}
istream& operator>>(istream& s, buffer b)
{
int k=karakterek_szama();
delete[] b.buff;
b.buff=new char[(b.size=k)+1];
for(int i=0;i<b.size;++i)
{
s>>b.buff;
}
return (s);
}
void beolvas(buffer& b)
{
int k=karakterek_szama();
delete[] b.buff;
b.buff=new char[(b.size=k)+1];
fstream fp(''c:\\txt.txt'',ios::in);
while(!fp.eof())
{
fp.getline(b.buff,b.size);
}
fp.close();
}
void kiir(buffer& b)
{
fstream fp(''c:\\txt.txt'',ios:ut);
fp<<b.buff;
fp.close();
}
int main()
{
buffer b;
buffer a;
beolvas(b);
char s[7]=''+FUZES'';
char s2[11]=''ASDFWERGWE'';
a=s2;
cout<<(a==b);
cout<<endl;
b+=s;
cout<<b;
cout<<endl;
b+=a;
cout<<b;
kiir(b);
cin.get();
return 0;
}
[Szerkesztve] -
Zulfaim
csendes tag
Utólag:
4-es lett a házim.
Kösz a segítséget mindenkinek! -
Zulfaim
csendes tag
Valaki leírná nekem egy példán keresztül szemléltetve, az iterátor használatát?
Előre is köszi.
Ú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!
- Android alkalmazások - szoftver kibeszélő topik
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Ukrajnai háború
- Videó stream letöltése
- Gaming notebook topik
- Motorola Moto G24 Power - hol van az erő?
- Milyen videókártyát?
- Helldivers 2 (PC, PS5)
- Xbox Series X|S
- Vicces képek
- További aktív témák...