Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
válasz
Gyomman
#1069
üzenetére
Azt egyáltalán megnézted, mit VÁLTOZTATOTT az operator>> függvényben?
Csak mert a hsz.-edből nem úgy tűnt.
Jester01 megmutatta a hiányosságokat a Te kódodban, és kiegészítette még egy lehetséges példakóddal is.(#1068) j0k3r!: ez az F_file osztály konstruktora, aminek van egy inicializáló listája is, ami értéket ad az egyes tagváltozóknak, igazából csak azért írta bele a kódba, mert Gyomman teljesen kihagyta az F_file kódját, így másnál nyilván elég nehéz lenne kipróbálni, miért is nem fordul a kód.
-
Jester01
veterán
válasz
Gyomman
#1064
üzenetére
Már csak a hibaüzenet hiányzik, no meg hogy teljes lefordítható és futtatható kódot prezentálj. Ebből ugyanis hiányzik maga a példányosítás illetve az egész F_file. Én vettem a fáradságot és értelemszerűen kipótoltam valamivel, az szó nélkül működik. Természetesen ügyeltem arra, hogy a megadott bemeneti stream és elem párosra létezzen operator>> (arra gondolok, hogy neked esetleg ez hibádzik).
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
template <typename G>
class F_file
{
public:
F_file(const char* _utvonal, const char* _nev)
: file(0), length(0), nev(_nev), utvonal(_utvonal) {};
FILE* file;
int length;
const char* nev;
const char* utvonal;
};
template<typename G>
void operator>>(istream& in, F_file<G>& F)
{
if (F.file) fclose(F.file);
char* ttemp=new char[strlen(F.nev)+strlen(F.utvonal)+5];
strcpy(ttemp,F.utvonal);
strcat(ttemp,F.nev);
strcat(ttemp,".dat");
F.file=fopen(ttemp,"a");
G temp;
int len;
(in>>len).ignore(1); //szóközt eldobjuk
F.length+=len; //hosszt megnöveljük
while((in>>temp).ignore(1))
{
fwrite(&temp,sizeof(G),1,F.file);
}
delete [] ttemp;
}
int main(int argc, char *argv[])
{
F_file<int> f("/tmp/", "test");
cin >> f;
return 0;
}Az fwrite hívásból mellesleg hiányzott egy & jel, és úgy egészében véve sem értem mit akarsz csinálni, de ez így legalább valamit csinál

Ú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!
- Projektor topic
- Honor Magic6 Pro - kör közepén számok
- Vége egy korszaknak: PlayStatonre is jön a Halo: Campaign Evolved
- Bemutatkozott a HHKB legújabb, Topre kapcsolókkal szerelt billentyűzete
- GTA V
- Xiaomi Smart Band 8 - folyamatosan
- Battlefield 6 teszt
- Milyen billentyűzetet vegyek?
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- droidic: Windows 11 önállóság nélküli világ: a kontroll új korszaka
- További aktív témák...
- Asus TUF Gaming A15 GAMER LAPTOP 15.6" FHD IPS 144Hz -25% Ryzen 5-7535HS 16GB, 512GB RTX 2050 4GB
- XBOX Series S 512GB, 6 hónap teljeskörü garanciával, üzletből eladó!
- ASUS VivoBook Max X541UVK i5-7200U 8GB RAM 512GB SSD NVIDIA GeForce 920MX 2GB Windows 11
- Szép! HP EliteBook 840 G10 Hordozható Ultrabook Fémház 14" -50% i5-1335U 32/1TB Iris Xe FHD+
- Új OEM INTEL XEON E-1241V3/E-1270V3
- Ygitk ZP-THP60 vezeték nélküli fejhallgató / 12 hó jótállás Akkumulátoros vezeték nélküli fejhallga
- Apple iPhone 15 128GB,Újszerű,Dobozával, 12 hónap garanciával
- ÚJ Dell Latitude 15 5550 - 15.6"FullHD IPS - Ultra 5 135U - 16GB - 512GB SSD - Win11 - 2,5+ év gari
- Lenovo A485 Ryzen 5 pro 2500U, 16GB RAM, 256-512GB SSD, jó akku, számla, garancia
- HIBÁTLAN iPhone 12 mini 64GB Red -1 ÉV GARANCIA - Kártyafüggetlen, MS2036
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: NetGo.hu Kft.
Város: Gödöllő
Csak mert a hsz.-edből nem úgy tűnt.

