Hirdetés
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- VR topik (Oculus Rift, stb.)
- Őszköszöntő hardverkeverék
- Sokat megélt veterán CPU-t hoz vissza a piacra az Intel
- Autóhifi
- Nagyon bízik az Instinct MI450-ben az AMD alelnöke
- Milyen SSD-t vegyek?
- Fujifilm X
- Mégis mi értelme az Xbox PC-nek, ha limitálja a hardverválasztékot?
- TCL LCD és LED TV-k
Új hozzászólás Aktív témák
-
nukeleo
csendes tag
Sziasztok!
Ittlenne a kódom: nem tudom miert csak egy sort olvas be a forrásfájlbol, a bufferba? Segitsetek, lehet a beolvas függvényem nem jo, vagy a buff tárolo, nem tudom...
/*csomo felesleg is van most benne amit nem használtam még, tekintsetek el töle*/
THX nagyon elöre is; nukeleo
#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 &);
//void beolvas(const char*);
friend ostream& operator<<(ostream& s, const buffer b);
friend istream& operator>>(istream& s, const buffer b);
~buffer(){ delete[] buff; }
};
/*void beolvas(const char* file)
{
fstream fp(file,ios::in);
char *c = new char[500];
fp.close();
fp>>c;
cout<<c;
}
*/
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)
//{
if(b.size)
s<<b.buff;
//}
return (s);
}
int karakterek_szama()
{
fstream fp(''adat.txt'' ,ios::in);
char d;
int k=0;
while(!fp.eof())
{
fp.get(d);
++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(''adat.txt'' ,ios::in);
while(!fp.eof())
{
fp.getline(b.buff,b.size);
}
fp.close();
cout<<k;
}
void kiir(buffer& b)
{
fstream fp(''adat2.txt'',ios:ut);
fp<<b.buff;
fp.close();
}
char menu ()
{
char n;
cout<<'' MENU \n\n'';
cout<<''1: File beolvasás \n'';
cout<<''2: Szöveg hozzáadása a fájlhoz \n'';
cout<<''3: Aktualis buffer tartalma\n'';
cout<<''4: Mentés\n'';
cout<<''0: Exit \n'';
cin>>n;
return n;
}
int main(){
char m;
buffer a;
buffer b;
char *c = new char[20];
char *d = new char[500];
while ((m = menu())!= '0')
{
switch (m)
{
case '1':
beolvas(b);
cin.get();
cin.get();
break;
case '2':
cin>>d;
b+=d;
;
break;
case '3':
cout<<b;
cin.get();
cin.get();
break;
case '4':
kiir(b);
break;
}
system (''CLS'');
}
} -
nukeleo
csendes tag
Sziasztok!
A kérdésem az lenne, hogy itt van ez a beolvas függvény:
void beolvas(buffer& b)
{
int k=karakterek_szama();
delete[] b.buff;
b.buff=new char[(b.size=k)+1];
fstream fp(''adat.txt'',ios::in);
while(!fp.eof())
{
fp.getline(b.buff,b.size);
}
fp.close();
}
Hogy kellene módosítani ezt(vagy lehet mást is ajánlani), hogy paraméterként elötte lehetne a fájl nevét bekérdezni, és azt a fájlt
nyitná meg utána????
köszi a válaszokat. -
nukeleo
csendes tag
Hali!
Bocs az elözző üzenetemért, csak nagyon kész vagyok ,mert holnapra kell leadnom a házimat,és ilyenkor szoktam hülyeségeket beszélni!
Az utlsó elötti üzenetemben mar irtam mit szeretnék, de most akkor konkrétabban leírom:
Azt szeretném megcsinálni, hogy egy beolvasott fileban (szöveges) lekérdezni hány sor van, és tudjak beszurni / törölni sorokat a megadott sorba!
Azt az utasítast kaptam hogy : operator[] (indexelő operatort ) használatával!
Ha tudtok vmi függvénnyel segíteni, vagy mar kész progit mutatni, köszönöm! -
nukeleo
csendes tag
hali
Azt szeretném , hogy mielott kiirom a fileba az adatokat, törölje ki az adat2.txt -bol ami benne van_???
Hogy lehetne?
void kiir(buffer& b)
{
fstream fp(''adat2.txt'',ios:ut);
fp<<b.buff;
fp.close();
}
THX -
nukeleo
csendes tag
Sziasztok!
Sürgős segiítség kellene C++-ban:
az a feladatom , hogy egy beolvasott fileban (szöveges) nézzem meg hány sor van, és tudjak beszurni / törölni sorokat a megadott sorba !
Valamint a fájlban tudjak keresni egy megadott szot, és kiirja hogy hanyadik sorban van a keresett szo!
Azt az utasítast kaptam hogy operator[] (indexelő operatort ) használjak!
Aztán még , két txt fájlt tartalmát kiirni egy harmadik fájlba!
ugy hogy használjak egy buffert is!
nagyon köszönöm a válaszokat
Ú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!
- Fűnyíró topik
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Formula-1
- A fociról könnyedén, egy baráti társaságban
- World of Tanks - MMO
- VR topik (Oculus Rift, stb.)
- Őszköszöntő hardverkeverék
- Honor Magic7 Pro - kifinomult, költséges képalkotás
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Sokat megélt veterán CPU-t hoz vissza a piacra az Intel
- További aktív témák...
- LG 32GS95UE - 32" OLED / UHD 4K / 240Hz - 480Hz & 0.03ms / 1300 Nits / NVIDIA G-Sync / AMD FreeSync
- Új és újszerű 17.3" Gamer, irodai, üzleti készülékek nagyon kedvező alkalmi áron Garanciával!
- BESZÁMÍTÁS! MSI B450 R5 5500 16GB DDR4 512GB SSD 1TB HDD GTX 1060 6GB Zalman N5 MF ADATA 600W
- HIBÁTLAN iPhone 13 mini 128GB Green -1 ÉV GARANCIA - Kártyafüggetlen, MS3336
- AKCIÓ! Asus ROG Flow Z13 +ROG XG RTX 3070- i9 12900H 16GB DDR5 1TB SSD RTX 3050Ti 4GB + RTX 3070 W11
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest