- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Milyen egeret válasszak?
- Nvidia GPU-k jövője - amit tudni vélünk
- AMD Navi Radeon™ RX 9xxx sorozat
- Hobby elektronika
- Házimozi belépő szinten
- Gaming notebook topik
- Milyen billentyűzetet vegyek?
- Milyen processzort vegyek?
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
Ú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
Hirdetés
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Autószerelők, autószerelés
- Milyen autót vegyek?
- Autós topik
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Sorozatok
- Milyen egeret válasszak?
- Garmin Forerunner 970 - fogd a pénzt, és fuss!
- Robotporszívók
- Anglia - élmények, tapasztalatok
- További aktív témák...
- Lenovo ThinkPad T14 3 Gen 16/256GB SSD, Újszerű, 1 Év Garanciával
- Xiaomi 15 Ultra 512GB, Kártyafüggetlen, 1 Év Garanciával
- Samsung Odyssey OLED G8! 32"/4k/240hz/0,03ms/10BIT/Freesync-G-sync/HDMI 2.1/Smart Monitor
- Új 512GB WD SN5000S Gen4 x4/ Steam Deck ready/ garancia/ ingyen fox
- i7 8700/ RX6500/ 32GB DDR4/ 512GB m.2/ garancia/ ingyen foxpost
- Azonnali készpénzes AMD CPU AMD VGA számítógép felvásárlás személyesen / postával korrekt áron
- AKCIÓ! Apple Macbook Air 13" 2020 M1 8GB 256GB SSD notebook garanciával hibátlan működéssel
- Samsung Galaxy S22 Ultra 512GB, Kártyafüggetlen, 1 Év Garanciával
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7600X 32/64GB RAM RX 9070 16GB GAMER PC termékbeszámítással
- Samsung Galaxy Xcover 5 64GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest