- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Ulefone Armor X32 Pro
- Milyen okostelefont vegyek?
- Sony Xperia 1 V - kizárólag igényeseknek
- Yettel topik
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Samsung Galaxy A54 - türelemjáték
- Android alkalmazások - szoftver kibeszélő topik
- Apple Watch Ultra - első nekifutás
- Apple Watch
Hirdetés
Új hozzászólás Aktív témák
-
Karma
félisten
válasz
bandi0000 #3635 üzenetére
Ennél csak jobb megoldás van. Egy dolog, hogy nehezen olvasható és követhető a ciklusváltozók belső manipulációja miatt, de még le is fagyhat az algoritmusod (még ha ez egy ötöslottónál nem is valószínű).
Szerintem itt nem baj, ha a valóságra támaszkodsz: vegyél egy vectort, benne a számokkal 1-90 között, használd az std::shuffle függvényt hogy megkeverd őket, és vedd ki az első öt számot.
-
Karma
félisten
válasz
ToMmY_hun #3243 üzenetére
Miért pont socketek? Mi lesz a socketek állapotgépével, a hibakezeléssel?
Miért törnél arra, hogy újra feltaláld a kereket?Van rengeteg protokoll, amit mások már implementációval együtt kidolgoztak neked.
Ott az MQTT, ami elég karcsú beágyazott rendszereknek is. Az óvilág szabványaiból ott az SNMP. Vagy ott a Protocol Buffers, a Thrift és az Avro, amikkel hatékonyabb és strukturált kommunikációt írhatsz. De ha az overhead nem számít, Pythonban egy sorral tudsz HTTP szervert írni, amit a másik oldalad egyébként bejáratott eszközökkel és egyszerűen hívogathat...Ebben semmi C++ specifikus nincs, nem véletlenül tettem OFF-ba a hozzászólásom. A megközelítésed a Java világban is öngyilkosság.
-
Karma
félisten
-
Karma
félisten
válasz
Mikeboy666 #3000 üzenetére
Olvashatatlan leginkább. A fórummotor alaphelyzetben kiveszi az indentálásokat, és a [i]-t szereti dőlt formázásnak értelmezni, amitől elrontja a kódodat végig. Kérlek, használd a Programkód gombot, amikor kódot másolsz be.
(Most átformázom kézzel grátisz.)
-
Karma
félisten
válasz
EQMontoya #2762 üzenetére
Egy 2 GB-os fájlnál ez a stratégia már nem nagyon fog működni (Windowson, 32-bites bináris esetén).
Nekem egyébként nem világos, hogy a történet merről kezdődik: van egy blokkokra (három soros egységekre) tagolható, gyakorlatilag végtelen fájl, amit "el kéne forgatni" úgy, hogy egy blokk hosszú legyen és végtelen széles?
A blokk magassága fix?
Mert akkor meg lehet csinálni minimális memóriaigénnyel és a bemenet egyszeri olvasásával. Ha külön ideiglenes fájlba gyűjtesz minden egyes sort (ez blokkmagasság darab fájlt jelent), mindegyiknek szigorúan a végére írsz (minden 3*m+i-edik sort a bemenetről, ahol m a blokk száma, i pedig a fájl indexe), majd a legvégén összefűzöd a három fájlt, kész is az eredmény.
Ha a blokkmagasság nem ismert, akkor a feladatnak nincs sok értelme.
-
Karma
félisten
válasz
kmisi99 #2488 üzenetére
WonderCSabo már szólt korábban, úgyhogy még mielőtt nagyon belemennénk, tedd fel a kérdést a C programozás topikban, ahová való.
-
Karma
félisten
válasz
mgoogyi #2400 üzenetére
Ezt tapasztaltam igen, ha az enumot kihagytam a buliból, megjavult a sor...
De közben megoldódott, kaptam egy szeletet a másik fél tesztprojektjéből, amiben mbstowcs helyett MultiChar... valami függvényt használtak a 8-16 bites konverzióra, erre átálltam teljesen, és elmúlt a hiba...
Holnap esetleg bemásolom az eredeti kódomat, hátha valaki látja mi a baj vele. Én továbbra se látom.
-
Karma
félisten
válasz
mgoogyi #2397 üzenetére
És WonderCsabo: erre nincs lehetőség, mert a C++ -> C# irányban elég korlátozott lehetőségeim vannak (egy féle, WinRT specifikus tömb, lista, dictionary). Legalább generikus, úgyhogy tudok saját objektumokat belepakolni (ez a String^, String^, enum hármas).
Mivel ez egy blocker probléma, ma öltem időt a kísérletezésbe. Az eredmény már annyira nem determinisztikus, hogy kvantummechanikai jelleget mutat
Schrödinger macskája pörög a hátára kötött vajaskenyérrel.
Átírtam az adatgyűjtő metódust, hogy ciklusban százszor hajtsa végre a lépést, és az eredménx a jó-rossz között ingadozott egymás alatt. A teljes folyamatot ciklusba téve még mindig ez a sor billegett, ergo nincs a hívások számához vagy hyorsaságához kötve.
Debug változatot sajnos nem kaphatok a fekete dobozból (másik fél policyje), így a saját kódomat is csak Release módban fordíthatom. De itt van a másik kvantumjelenség: azért ilyenkor is meg tudok állni breakpointokon, megpróbálhatok belenézni a változókba, de ha ezt teszem, minden számolt érték átmegy zajba. Mint az elektronok elhajlása résen...
Maga a 8/16 konverzió az mbstowcs/wcstombs segítségével megy, és mivel minden kommunikáció alapja a fekete doboz és a C# világ között, elég sokat hívom - nem ezzel lehet a baj.
Lokalizáció csak a telefon ujraindításával változhat, nem kavarhat be. Főleg hogy az előző két függvény nem locale érzékeny.
A szöveg prefixelésével sokat próbálkoztam: ha rossz, akkor a konstans string se jön vissza, ha jó, akkor meg igen. Így gyanússá vált, hogy nem a szöveg összeállításával, hanem az enumnál lehet a gond, átírtam fix értékre, amitől stabilizálódott a szöveg
A baj csak az, hogy semmi értelme, mert az enumot kiválasztó függvényt a szövegnél is felhasználom...
Nekem továbbra is megvan az a sejtésem, hogy a fekete doboz belepiszkít a stackbe, elrontva az előtte lévő wstringet. De nem tudom bizonyítani - a fejlesztőinél nem mutat ilyen tüneteket.
Ha nem fogadnák el a workaroundot, holnap megnézem hogy binárisan hogy viszonyul a zaj a szöveghez.
-
Karma
félisten
Közben nekem meg lenne egy rejtélyes elméleti kérdésem, ami a munkahelyemen megakasztott. Kódot sajnos nem másolhatok, de nem is kódszintű megoldást keresek, csak ötleteket hogy mit nézzek még meg.
A jelenség elég karakteres.Adott egy Windows Phone 8 projekt, benne egy C++/CX komponens. Ez a komponens egy bináris formában kapott fekete dobozt ölel körbe, ami egy bejövő stringet feldolgoz, és különböző dolgokat számol ki belőle.
A wrapperem egy listába gyűjti a kulcs-érték párokat, kb. huszat, egy fentről hívott metódusra válaszul. Minden elem hasonlóan fest: van egy konstans kulcs; az érték meg egy libből kapott 8-bites string ami köré concatenálni kell pár dolgot, végül 16-bitesre konvertálom.
Ez az esetek 99%-ában tökéletesen működik. De van egyetlen pár, ami semmiben se különbözik a többitől szerkezetileg (sőt három teljesen megegyező jön utána), ami kivétel. Egyszer jó értéket ad, máskor kínai jeleket (mindig ugyanazokat), aztán újra meg újra kiértékelve valamelyik a kettőből, random.
Milyen memóriakezelési hiba lehet az, ami ilyen randomsághoz vezet?
-
Karma
félisten
válasz
bandi0000 #2382 üzenetére
Bemásolom amit még hat előtt nem tudtam befejezni.
---
Folytatva a gondolatmenetedet a C# topikban: "a franc tudja mi ez de akkor sem működik"
Hát nincs az az isten, aki tudja hogy ez a kódrészlet mi akar lenni.Egyrészt attól, hogy a ciklusváltozót 2-112 (111 ciklus) között futtatod, ugyanúgy a fájl első sorától kezdi beolvasni. Az olvasást különösebben nem érdekli a ciklusváltozód.
Másrészt az is biztos, hogy a sor végén lévő szövegeknek nem jól foglaltál helyet. Most foglaltál 19 karakternyit, miközben neked 112-szer 20 kellett volna (kétdimenziós karaktertömb). Helyette char[112][21] kellene alaphangon. Így már az fscanf alapvetően rendben lenne.
A plusz egy soros problémát meg úgy kellett volna megoldanod, hogy fscanf helyett a fgets() függvénnyel egész sorokat dolgozol fel, aztán sscanf-fel szeded ki belőle az adatot. A legelső sort meg egyszerűen eldobod.
-
Karma
félisten
válasz
PumpkinSeed #2300 üzenetére
Milyen platformon, milyen infókat szeretnél?
-
Karma
félisten
válasz
PumpkinSeed #2288 üzenetére
Mondjuk ennyiből nem derült ki szerintem, hogy mit kell csinálni a nyolc királynővel. Játékot kell írni, ami bekér egy koordinátát és ellenőrzi, hogy szabályos-e a lépés vagy sem? (Lásd "amazon játék").
Vagy kiszámolja a nyolc királynő megoldásait? -
Karma
félisten
Több lehetőség is van. A getline-nak van egy háromparaméteres formája, aminek megadhatod az elválasztó karaktert. De azt is csinálhatod, hogy kihasználod a >> operátor tokenolvasási képességét, így whitespace-enként olvas ki egy darabot a fájlból.
-
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. -
Karma
félisten
válasz
PumpkinSeed #2252 üzenetére
Hogy mit? Miért tennél ilyet?
Egyébként amit írni próbálsz, a "break label", Javaban van csak(*), C++-ban nincs. Használhatnál goto-t a kiugráshoz, de sokkal-sokkal célravezetőbb lenne, ha megtanulnád a do...while ciklust használni.
(*): Meg potenciálisan más nyelvekben, passzolom.
-
Karma
félisten
-
Karma
félisten
válasz
loopati #2235 üzenetére
Kérdés, hogy az egyszerűséget kinek a szemszögéből nézzük. A legegyszerűbb naív algoritmus az, ha végigmész a string karakterein, és egy mapet töltesz fel vele - a karakter a kulcs, a hozzá tartozó érték meg az előfordulások száma, amit eggyel növelgetsz. Ha végére értél a szövegnek, minden kellő infő ott lesz.
Meh, lassú voltam
-
Karma
félisten
válasz
loopati #2228 üzenetére
Ha az utolsó számjegy kell, ne adj hozzá egyet. Ha két számjegy kell, vonj ki egyet belőle. Az egyszerűség kedvéért legyen ez a kapott szám X.
Emeld a 10-et az X-edik hatványra, aztán csinálj egy egész osztást az eredeti számból. Az eredmény így a felső egy (vagy kettő) számjegy lesz.
-
Karma
félisten
Ez nem a fordítás, hanem a futtatás végét jelzi. Hasznos is, mert látod hogy milyen kóddal léptél ki (main függvény return érték), meg az időt.
Ha a kapott .exe fájlt te futtatod egy parancssorból, nem fogod látni.
Ennek fényében nem is tudom miért akarod kikapcsolni
A Google eddig azt mondja, hogy nem is lehet.
-
-
Karma
félisten
-
Karma
félisten
válasz
beast27 #2022 üzenetére
Nem, ez a topik áll legközelebb hozzá.
De a kérdésed sokkal alapvetőbb, szerintem üss fel valami szakirodalmat.
-
Karma
félisten
válasz
Dave-11 #2012 üzenetére
Miért pont a GTK-t választottad? Egyrészt az egy C library, nem C++, másrészt ha nem kötelezően ez a parancs, miért nem Qt?
A kérdésre válaszolva a lib használatához két dologra van szükség: az include path helyes beállítására (hogy a C fordító megtalálja a headeröket, azaz fel kell venned a GTK megfelelő mappáját oda); másrészt a linkernek tudnia kell arról, hogy egybe kéne fordítani a cuccod a GTK library-val.
CB-t már nagyon régen nem használtam, úgyhogy nem mondom meg merre is találod ezeket. De valószínűleg a projekt tulajdonságainál.
-
Karma
félisten
válasz
jattila48 #1871 üzenetére
Nem úgy értem a cserét, hanem hogy sehol se használsz Derived tömböt, csak Base tömböt és virtuális metódusokat. Élő helyzetben ennek még értelme is lehet
Veszélyességet csak nagyon madártávlatból gondoltam: StackOverflown olvastam, hogy van olyan architektúra, ahol a pointerek mérete nem állandó. Arra nem emlékszem melyik, valószínűleg nem is releváns.
Agyilag ma elég zokninak érzem magam.
-
Karma
félisten
válasz
jattila48 #1867 üzenetére
Semmilyen környezetben nem legális művelet a tömb átcastolása, még ha véletlenül működik jelen esetben. A Base** és a Derived** között nincs semmilyen kapcsolat, jogos a compiler panasza.
Egyszeri megoldásnak jó amit csináltál, de nem lehetne a Derived*[]-öt teljesen Base*[]-re cserélni?
-
Karma
félisten
válasz
Dave-11 #1855 üzenetére
Továbbra se javaslom a C++/CLI-t. Ha már egyszer CLI-re dolgozol (amit bevonzottál a Windows Forms-szal), vannak fejlesztőbarátabb nyelvek is, nem véletlen emlegetem a C#-ot
Én eléggé beleszülettem (meg egyetemen tanultam meg a nyelvi alapokat), így nem nagyon tudok jó forrást, de a StackOverflow megér egy keresést. Ez mondjuk egy C#-os topik linkje.
-
Karma
félisten
válasz
Dave-11 #1853 üzenetére
Azt szabad tudni, hogy miért erőlködsz a Visual C++-szal, ha nem értesz hozzá? Miért nem inkább C# kódot írsz? Akkor legalább lenne IntelliSense VS2010-ben is.
A formnak elvileg nincs is Name propertyje a designerben, mert nincs sok értelme. A Text propertyje befolyásolja az ablak címét.
A Location pedig Point típusú, úgyhogy nem fogsz tudni stringet megadni neki. Sőt az se jó, ha a point X vagy Y propertyjét kézzel frissíted, ez a sor viszont működik:
button1->Location = Point(button1->Location.X, button1->Location.Y + 10);
-
Karma
félisten
válasz
Dave-11 #1850 üzenetére
Nem értem a kérdés azon részét, hogy elérni az adatokat. Nem a Form codebehind fájljába írod ezt a logikát?
Már ha Windows Formsot használsz a Designerrel.
Ha igen, akkor megadhatsz minden komponensnek egy Name tulajdonságot, amivel el tudod érni kódból (ha a GenerateMember.vagy nagyon hasonló nevű property true, ami alapból az).
Ha meg kézzel csinálod a GUI-t, akkor te irányítasz mindent.
Hozzá kell tennem, hogy én elsősorban C#-os vagyok, és abból indulok ki jobb híján.
-
Karma
félisten
A legegyszerűbb az lenne, ha leraknál egy rejtett fájlt mindkét meghajtóra (azonos névvel+más tartalommal vagy eltérő nevekkel, ízlés dolga), és ezt ellenőrzöd.
Platformfüggetlenül szerintem nem nagyon van más megoldásod. Már a volume label olvasásához is WINAPI-t kell használnod, pl. így.
-
Karma
félisten
válasz
dabadab #1833 üzenetére
A tesó topikban nem olyan rég már többen is írtunk látszatos magyarázatot
A veszélyeket kiemelni viszont jó húzás volt -
Karma
félisten
-
Karma
félisten
válasz
Dave-11 #1824 üzenetére
Hát bármi más, amit visszatérési típusnak megadsz. Amíg helloworldözöl valószínűleg int, double, vagy egyéb primitív típusok főleg - ezt írod a void helyére és kész.
Egyébként a void *-nak különleges jelentése van, ez az általános pointer amihez nem tartozik típus. Manuális memóriakezelésnél (C-ben malloc/free) kerül elő főleg, de ideális viszonyok között C++-ban nem kellene ezzel találkoznod (magasabb szintű absztrakcióknak hála).
-
Karma
félisten
válasz
FireKeeper #1030 üzenetére
Hibás a szintaxis. *this-t hamarabb próbálhatsz meg visszaadni.
Osztályreferencia nem nagyon van, szerintem objektumreferenciára gondoltál. -
Karma
félisten
válasz
DiscoStu #992 üzenetére
Elég egyértelmű, hogy mi fáj neki. A második függvény default paramétere miatt nem lehet eldönteni, hogy a hívásnál melyikre gondolsz - az egyparaméteresre, vagy a kétparaméteresre true második paraméterrel? Gondolj bele egy kicsit, honnan kéne tudnia? Ugye.
Vagy nevezd át az egyiket, vagy töröld a true default értéket. Vagy töröld az egyparaméteres függvényt teljes egészében, hiszen egyenértékű a másikkal valószínűleg...
Ú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!
- Cyberpunk 2077
- 3D nyomtatás
- Formula-1
- Vicces képek
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- Apple MacBook
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Elektromos autók - motorok
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Windows XP
- További aktív témák...
- BESZÁMÍTÁS! MSI MAG 255XF FHD IPS 300Hz 0,5ms monitor garanciával hibátlan működéssel
- Olcsó Gamer PC-Számítógép! Csere-Beszámítás! Xeon 5650X / GTX 1650 / 24GB DDR3 / 250SSD+500HDD
- Nvidia Quadro P400/ P600/ P620/ P1000/ T400/ T600/ T1000 - Low profile (LP) + RTX A2000 6/12Gb
- Újra Akcióban!!! Ducky One 2 Mini és SF billentyűzetek a bolti ár töredékéért! Számla+Gari
- Samsung Galaxy A53 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: FOTC
Város: Budapest