- Masszív előrelépésnek tűnik a Zen 5
- NVIDIA GeForce RTX 4080 /4080S / 4090 (AD103 / 102)
- Apple asztali gépek
- Projektor topic
- NVIDIA GeForce RTX 4060 / 4070 S/Ti/TiS (AD104/103)
- Amazon Fire TV stick/box
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- VR topik (Oculus Rift, stb.)
- Milyen billentyűzetet vegyek?
- Videós, mozgóképes topik
Hirdetés
-
Hivatalosan is reagált a Core CPU-k stabilitási gondjáira az Intel
ph A végleges megoldás a Default profil lesz, amit kötelező beépíteni az alaplapgyártóknak.
-
Egyre nagyobb a hatása a választásokra az AI-generálta képeknek
it Az OpenAI ezért külön eszközt hoz létre, hogy azonosítsa a DALL-E 3 által létrehozott képeket.
-
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...
Új hozzászólás Aktív témák
-
-
-
Gyomman
aktív tag
válasz Jester01 #1063 üzenetére
template<typename G>
void operator>>(istream& in, F_file<G>& F)
{
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;
}Itt lenne szegény kód. Az eleje az csak annyi, h megnyitom a fájlt (kicsit bonyolultan van megoldva igaz), aztán az in>>temp résznél már szól, h neki az nem működik. Ha az ignore-on kívül teszem, akkor is szól, nem tudom hol lehet a baj.
[ Szerkesztve ]
Cogito ergo sum
-
j0k3r!
senior tag
válasz Jester01 #1066 üzenetére
hello!
valoszinuleg nagyon alap kerdes, de sajnos ez a resz nem tiszta nekem a kododban:
F_file(const char* _utvonal, const char* _nev)
: file(0), length(0), nev(_nev), utvonal(_utvonal) {};mit csinal a fentebb beillesztett kod? (volna egy tippem, de nem akarok hulyeseget megjegyezni)
[ Szerkesztve ]
some men just wanna watch the world burn...
-
Gyomman
aktív tag
válasz Jester01 #1066 üzenetére
Szia!
Elnézést, ha keveset másoltam be a programomból, de egész jól reprodukáltad, csak annyi a különbség, hogy nekem friend az operator>>, egyébként ugyanez (még pár plusz tagfüggvénnyel megspékelve).
Fura, h ennek ellenére amit te csináltál az lefordul, az enyém meg mégse.Természetesen ügyeltem arra, hogy a megadott bemeneti stream és elem párosra létezzen operator>>
Én ugyanúgy olyan típusokkal dolgozom, amire létezik az operator>>, csak alapból azt írja ki mégis hibának, hogy binary '>>' : no operator found which takes a left-hand operand of type 'std::istream' (or there is no acceptable conversion).Vagy mégiscsak elnézek valamit.
Azt akarnám am csinálni (ezek szerint rosszul, de arra majd rájövök, csak egyelőre ezen a problémán essek túl), hogy egy streamről jön egy adatfolyam hossza, majd utána maga az adat és a hosszát beolvasom a fájlhosszba, az adatot pedig utána a fájlba.
[ Szerkesztve ]
Cogito ergo sum
-
Gyomman
aktív tag
válasz Jester01 #1073 üzenetére
Igen, rájöttem, h az segített volna... Közbe rájöttem magamtól, hogy a const char* típusú fájlra nem akart működni (azt hittem pedig, h azt tudja kezelni, de mégse), így specializáltam a függvényt (meg átírtam végtelen ciklusból ) és most már működni látszik, köszönöm az útmutatásokat!
Cogito ergo sum
-
Brianiac
aktív tag
válasz Jester01 #1197 üzenetére
Értem, köszi az észrevételeket, amit tudok javítok!
1. Ezért már korábban is "kaptam" fórumon, de azért ezt használom mert csak ezt ismerem, ezt tanultuk és órán is mindig ezt használjuk.
2. Erre is csak ugyanazt tudom írni mint az előzőre, a tanárral is mindig ezt használja
3. Ok
4. Javítani fogom
5. Hiba kezelést nem igazán tudom hogyan kellene
6. Javítom
7. Ezt nem teljesen értem
8. Először azt hittem kelleni fog és elfelejtettem kiszedni[ Szerkesztve ]
Lumia 520
-
Brianiac
aktív tag
válasz Jester01 #1224 üzenetére
Hát igazából már a legelejébe, tovább így még nem is jutottam. A 3 nevet bevittem egy két dimenziós tömbbe billentyűzetről, viszont a születési éveket sehogy sem tudom bevinni hogy jó legyen, próbáltam azokat is ugyanúgy egy két dimenziós tömbbe ahogy a neveket de akkor mindig valami hiba volt. A változóban pedig csak egy születési dátumot tudok tárolni és 3 kellene, tehát egy mindegyik névhez.
#include<iostream>
#include<fstream>
using namespace std;
struct csalad
{
char nev [3][10];
int ev;
};
int main ()
{
setlocale (LC_ALL, "Hun");
csalad sz;
int i;
for(i=0; i<3; i++)
{
cout<<i+1<<". nev: ";
fflush (stdin);
cin.getline(sz.nev[i], 10);
}
cout<<"\nA nevek:\n\n";
for(i=0;i<3;i++)
cout<<sz.nev[i]<<endl;
system ("pause");
return 0;
}Lumia 520
-
Brianiac
aktív tag
válasz Jester01 #1228 üzenetére
Úgy látszik ez mst nagyon nem megy, így nem tudom lefuttatni mert a család név bekérésnél hibát kapok.
#include<iostream>
#include<fstream>
using namespace std;
struct ember
{
char nev[10];
int ev;
};
int main ()
{
setlocale (LC_ALL, "Hun");
ember csalad [3];
int i;
for(i=0; i<3; i++)
{
cout<<i+1<<". nev: ";
fflush (stdin);
cin.getline(csalad.nev, 10);
}
for(i=0; i<3; i++)
{
cout<<i+1<<". ev: ";
fflush (stdin);
cin>>csalad.ev;
}
cout<<"\nA nevek:\n\n";
for(i=0;i<3;i++)
cout<<csalad.nev[i]<<csalad.ev[i]<<endl;
for (i=0;i<3;i++)
system ("pause");
return 0;
}Lumia 520
-
doc
nagyúr
válasz Jester01 #1306 üzenetére
arrol nem beszelve hogy ugyanazt a ciklusvaltozot hasznalni az egymasbaagyazott ciklusokban, raadasul azokon belul meg szinten ugyanazzal a nevvel egy ujabb valtozot deklaralni...
azert vannak itt alapveto hianyossagok, szerintem elso korben nem artana gyorsan atfutni egy alapveto C-s tutorialtMOD: most latom, nincsenek is egymasba agyazva, csak baromi felrevezeto az indentalas
viszont a cikluson belul ugyanolyan nevvel masik valtozo, az megvan[ Szerkesztve ]
-
Jhonny06
veterán
válasz Jester01 #1316 üzenetére
Igazából azt nem értettem, hogy akkor mi is a hiba az eredetileg írt kóddal (lehet, hogy benne volt a válasz, csak nem értem):
char* x;
const char** y = &xTehát ha az y nem tudja dupla indirekcióval megváltoztatni azt az értéket, amire az x mutat (illetve címet, most mindegy), akkor követelmény, hogy az x se tudja megváltoztatni, azaz azt is konstansként kell deklarálni, nem? Tehát nem lenne értelme annak (illetve helytelen lenne), ha az y az x-en keresztül nem tudná megváltoztatni, az x viszont igen. Erre jutottam.
[ Szerkesztve ]
-
Jhonny06
veterán
válasz Jester01 #1321 üzenetére
Mondjuk nem tudom, hogy mire kell felhívni a figyelmet, amikor a fordító szól érte és egyértelműen le se fut a kód, csak úgy, ha az x-et is konstansként deklaráljuk, akkor pedig már nem lehet trükközni. Sok ilyen dolog van a C-ben, ami egyértelműen kerülendő és észrevehető, ha másért nem, akkor azért, mert nem fut le.
-
-
-
Azazel999
csendes tag
válasz Jester01 #1986 üzenetére
Köszönöm, de nem ez volt a baj. Tökéletesen értem a pointereket (szerintem) és az, hogyan működnek. A problémám az, hogy nem tudom hogyan valósítsam meg a vágás/összeragasztás műveletét az önszervező bin.ker. fáknál. Tudom rá a szabályt, meg lerajzolom füzetben az egészet, de egyszerűen nem tudom lekódolni. Már tényleg sokféleképpen próbáltam.
-
WonderCSabo
félisten
válasz Jester01 #2086 üzenetére
Bocs, teljesen hülye vagyok, összekevertem a másik iránnyal, általában kiíró operátort szoktam írni, elnézést kérek, nem figyeltem.
#include <string>
#include <iostream>
class c {
public:
// std::ostream& operator<<(std::ostream& os) { // ez nem megy
// return os;
// }
};
std::ostream& operator<<(std::ostream& os, c& a) {
return os;
}
int main() {
c a;
std::cout << a;
return 0;
} -
amargo
addikt
válasz Jester01 #2148 üzenetére
Oks,
modder a leirasod alapjan mar inkabb felre ertettelekAz async es pelda pedig nem bonyolult. Ha elinditod a request-et es egybol a main threaden kiakarod szedni az adatokat, akkor kapsz egy ordas hibat rosszabb esetben pedig nem erted mirt nincs benne adat. Mikozben az adatod majd az responsba jon vissza.
“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”
-
cog777
senior tag
válasz Jester01 #2151 üzenetére
Köszi a tippet a dmalloc-ra, megnézem. Másrész az STL konténerek gondolom hasonló mellékhatást okozna mintha használnám a Qt konténereket bizonyos! fordító alatt pl qcc. Rekurzívan meghívja magát a new operator... ???? g++ -al oké a dolog.
HP ZBook Workstation A3000 - Linux Mint; Raspberry Pi4 - Raspbian
-
cog777
senior tag
válasz Jester01 #2168 üzenetére
Koszonom a tippet, mar fordul. Csak eppen lefagy. Megneztem az eredeti std::allocator-ral is fagy meghozza a find funkcioban kapok segmentation fault-ot. Kiserletezek vele, ha valamire jutok akkor kozze teszem.
HP ZBook Workstation A3000 - Linux Mint; Raspberry Pi4 - Raspbian
-
Dave-11
tag
válasz Jester01 #2179 üzenetére
Na hát jó de én még nem vagyok ennyire pro
A sort-ról eddig még nem hallottam, az isPrime() függvényt meg igazából a neten néztem, mert amit mi írtunk nem akart működni
A tiéd pedig egyszerű is. A static szó egyébként mit tesz? Mert ugyan láttam már, de még nem tanultam róla.:D Semmi :D
-
Dave-11
tag
válasz Jester01 #2195 üzenetére
És azt a hossz ellenőrzést hogyan tudnám például megoldani?
Mondjuk legyen két példa:
1. A szöveg hosszabb mint 20 karakter, simán levágom a végét úgy, hogy egy for ciklussal átmásolom az első 20 karaktert egy másik stringbe vagy tömbbe.
2. A bemenet kisebb mint 20 karakter, ekkor pedig teljesen rendben van a dolog.
És akkor ezt a kettőt egy if-else szerkezetben. Ez így okés, vagy van rá jobb mód?:D Semmi :D
-
Jester01
veterán
válasz Jester01 #2218 üzenetére
Például iso8859-2 kódolásra:
#include <stdio.h>
static const unsigned char table[] = {
/* 0xC0 */ 0, 'A', 0, 0, 0, 0, 0, 0,
/* 0xC8 */ 0, 'E', 0, 0, 0, 'I', 0, 0,
/* 0xD0 */ 0, 0, 0, 'O', 0, 'O', 'O', 0,
/* 0xD8 */ 0, 0, 'U', 'U', 'U', 0, 0, 0,
/* 0xE0 */ 0, 'a', 0, 0, 0, 0, 0, 0,
/* 0xE8 */ 0, 'e', 0, 0, 0, 'i', 0, 0,
/* 0xF0 */ 0, 0, 0, 'o', 0, 'o', 'o', 0,
/* 0xF8 */ 0, 0, 'u', 'u', 'u', 0, 0, 0
};
int removeaccent(int c)
{
unsigned char mapped;
if (c < 0xc0) return c;
mapped = table[c - 0xc0];
if (mapped == 0) return c;
return mapped;
}
int main()
{
int c;
while((c = getchar()) != EOF)
{
putchar(removeaccent(c));
}
return 0;
}Jester
-
Karma
félisten
-
Karma
félisten
válasz Jester01 #2254 üzenetére
Igen, valóban ez a kérdése, de a probléma nem ott van, hanem hogy rossz a vezérlési szerkezet. Végtelen ciklus + break? Remekül karbantartható kódok születtek így, amiért kézeltörésnek kéne járnia.
A felsorolt alternatívákból a kilépési flagre szavaznék akkor már.
Esetleg kombinálva egy do-val a for helyett.“All nothings are not equal.”
-
WonderCSabo
félisten
válasz Jester01 #2266 üzenetére
Ok persze, ez már igaz a Java-ra, sőt már a JavaScript-re is, de ha megnézed akkor azért ez nem klasszikus fordítás, hiszen "futásidőben" teszi ezt a VM (ha az a kód bytecode is). Ha igazán pontosak akarunk lenni, akkor a fordítás és interpretálás közti hibrid a JIT.
[ Szerkesztve ]
-
EQMontoya
veterán
válasz Jester01 #2644 üzenetére
Nagyjából, igen.
Az stiimmel, hogy sizeof(int) != sizeof(double).
64 bit amúgy, linux, gcc. Ez viszont önmagában nem indokolja az "üres helyet".
Az egy paddig, hogy jó legyen az alignment. Elvégre 64 bites proci szereti, ha az osztály mérete 8 bájt többszöröse. Ettől még lehetne a nem használt hely az objektum végén, viszont ugye a cpu 8 bájtos egységeket olvas be 64 biten a memóriából, tehát ha ezen a nem 8-cal osztható címen kezdődne a double, akkor csak két művelettel tudná beolvasni. Ezt pedig nem szeretik. Nem is mindegyik kezeli le, ez ugye SIGBUS signal formájában tud jelentkezni. (pl. ARM-on) Ezért nem a végén tölt fel négy bájttal, hanem a közepén.[ Szerkesztve ]
Same rules apply!
-
Krono91
csendes tag
válasz Jester01 #2647 üzenetére
Ebben igazad van azt már én is átírtam, a kód lefordul utána, de ha megnézed akkor nem lát bele a ListaElem struktúrába a Lista, és nem tudom miért... a favágó megoldás az most hogy külön headerben tárolom a ListaElemet, és friend class a Lista, így látja a privát adattagokat, és így már működik...
De sajnos nem tudom a miértjét:S
Ú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!
- Dell Latitude 3310, 13,3" HD Kijelző, I5-8265U CPU, 8GB RAM, 256GB SSD, WIN 10/11
- GameBoy Advanced SP (AGS-001) + Final Fantasy V és némi ajándék.
- Samsung Galaxy TAB A8 /// Szinte ÚJ // Számla + GARANCIA
- Acer játékra is,15,6", FullHD,6.gen.core i7,GT940 4!!/6GB VGA,8GB Ram,SSD+HDD,jó akku
- Dell Latitude E7470 - i7 6600U / 8-16GB RAM - számla, 6 hó garancia
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Ozeki Kft.
Város: Debrecen