- eBay-es kütyük kis pénzért
- sziku69: Fűzzük össze a szavakat :)
- LOGOUT - ezmiez?
- DraXoN: Utolsó 2011-3
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- Luck Dragon: Asszociációs játék. :)
- gban: Ingyen kellene, de tegnapra
- laskr99: Processzor és videokártya szilícium mag fotók újratöltve!
- Magga: PLEX: multimédia az egész lakásban
- Carlytoo: Pánikszindróma #3
Új hozzászólás Aktív témák
-
proof88
addikt
válasz
InterFox #2599 üzenetére
Ha meg akarod úszni az alap dolgokat mint pl ablak létrehozása, OpenGL vagy D3D inicializálás, stb., akkor valamilyen már megírt játék- és/vagy 3D-motort ajánlok, amit felhasználhatsz játékkészítésre. Manapság már sok ilyen van, amihez ingyen hozzá lehet férni. Unity például. De itt van egy lista.
Szerintem érdemes ilyenekkel megismerkedni, bár én még mai napig egyiket sem próbáltam ki játékkészítés céljából. Én anno több mint egy évtizede még DarkBASIC-et kezdtem el használni játékkészítésre, akkoriban még programozásban is kezdő voltam, de kényelmes volt hogy egy függvényhívás egy 3D-s modell betöltése, stb. De akkoriban még nem voltak ilyen fejlett motorok elérhetően, mint ma. -
proof88
addikt
válasz
InterFox #2594 üzenetére
Hello, DevCpp-t sajnos már nagyon régóta nem fejlesztik, legalábbis a legújabb verzió is már nagyon sok éve jött ki. Inkább próbálj CodeBlocks-ot, vagy Qt Creator, vagy Visual Studio Express Edition.
Milyen 3D-re gondoltál? Konkrétan a matekos háttere érdekel mélyen, vagy csak 3D-s alkalmazásokat akarsz összedobni? -
InterFox
senior tag
Sziasztok.
Befejeztem a C++ alapjait, most szeretnék továbblépni egy kis 3D programozásra.
Milyen fordító programot és oktatóanyagot javasoltok erre?
DEV C++, Code block vagy már? -
proof88
addikt
válasz
jattila48 #2592 üzenetére
Hello,
a mondandód első felére az a válaszom (ősosztály függvényének elfedése), hogy igazad van, és ezért virtuálisként kell definiálni az ősosztályban azt a függvényt, amit a származtatott osztály felüldefiniálhat, így nem lesz gond. Ezért is szoktuk alapból virtuálisként definiálni a destruktort is, hogy mindenképpen lefusson a származtatott osztály destruktora is törléskor.
Statikus tagokat nem lehet felüldefiniálni. Én csak simán átgondolom ilyenkor, hogy biztos statikus tagot akarok-e ebben az esetben. -
jattila48
aktív tag
BUÉK mindenkinek!
Egy kis agyalgás: Általában rossz ötlet publikusan származtatott osztályban elrejteni az ős valamely tagfüggvényét, mivel ez esetben a származtatott osztályból létrehozott objektum különbözőképpen viselkedik, ha az ős osztályra mutató pointeren/hivatkozáson keresztül hívjuk meg az adott tfv.-t, mint ha közvetlenül. Ez idáig tiszta sor, de mi a helyzet a statikus tfv.-ekkel? A statikus tfv.-ek ugyebár nem az objektumhoz, hanem az osztályhoz kötődnek (vagyis nem függenek/nincsenek hatással egy adott objektum állapotától/ra), így az előző tanács ilyenkor értelmetlen. Sőt, az ilyen osztályok könnyen lehetnek template argumentumok, amikor pontosan az kell, hogy a származtatással létrehozott osztály adott statikus tfv.-e másképp viselkedjen, mint az ős osztályban (leginkább ezért készül belőle származtatott osztály). Mi a véleményetek?
-
attis71
tag
Szia,
meg fogattam a tanácsodat.
Értem most már a belső for-t.
A belső for első vizsgálatánál a feltétele első fele hamis érték ezért rövidzár miatt kilép,
az if-ben a kifejezés igaz és átmásolja numbers tömb 0.-ik elemét az output tömb-be és
counter-t 1 -el növeli. Jön a külső for, majd megint a belső. Itt már a belső for első feltétele
igaz (j<counter) a második miatt addig megy amíg azonosságot nem talál vagy túl indexelődik
(növeli j-t +1).
Ha talál kiugrik a belső for-ból átmásolja és counter-t +1.
Kérdés az if a túlindexelés miatti kiugrás miatt kell?
Ha valamit rosszul értelmeztem, javíts ki létszi.attis71
-
LW
őstag
válasz
attis71 #2588 üzenetére
Szia!
Papír-ceruza módszert ajánlom. Vezesd vég az algoritmust a bemeneti számokkal és úgy tanulod meg a legjobban. A belső for-nak két megállási feltétele van. Egy a túlindexelés ellen, egy a kereséshez. Ha megtalálta, akkor megáll, ellenkező esetben a túlindexelés ellen lép ki. Utóbbi esetben a tömb elemszáma == index.
Hol tanulsz?
-
attis71
tag
válasz
PumpkinSeed #2576 üzenetére
Köszi.
-
"Ha a fuggveny, amit hivsz, virtualis, akkor igazabol barmi megtortenhet, lenyegeben a leszarmazott osztalyok azonos nevu (virtualis) metodusai mind elerhetoek lesznek a hivo (friend) szamara."
Igen, de csak akkor, ha az adott objektumra base class tipusu pointerrel hivatkozik az ember (mert kulonben latja a fordito, hogy a leszarmazott methodjat kellene hivni)
#include <stdio.h>
class Q
{
protected:
friend class P;
virtual int q()
{
return 9;
}
};
class R : public Q
{
protected:
virtual int q()
{
return 3;
}
};
class P
{
public:
int p()
{
R r;
Q* q=&r;
//return r.q(); // NOT OK
return q->q(); // OK
}
};
int main(void)
{
P p;
printf("%d\r\n",p.p());
} -
válasz
jattila48 #2583 üzenetére
Jah, a lathatosag ellenorzese csak compile-time tortenik, es kizarolag azt nezi meg a fordito, hogy az az osztaly, amin _keresztul_ elered a metodust, az friend-e vagy sem. Ha a fuggveny, amit hivsz, virtualis, akkor igazabol barmi megtortenhet, lenyegeben a leszarmazott osztalyok azonos nevu (virtualis) metodusai mind elerhetoek lesznek a hivo (friend) szamara.
-
válasz
jattila48 #2581 üzenetére
Ugye ez egy statikus fuggveny, forditasi idoben eldol, hogy melyik fuggvenyt hivja. Megnezi az R-t eloszor, latja, hogy nincs ott ilyen nevu fuggveny. Megy felfele az oroklesi hierarchiaban, megtalalja Q::q-t. Ezek utan megnezi, hogy a lathatosagi szabalyokkal mi a helyzet, es latja, hogy Q::q az lathato P-bol, mert P friendje Q-nak, es mar kesz is.
Ha R::q-t is definialnad, akkor mar nem mukodne. Tehat a fordito _eloszor_ keresi meg a fuggvenyt, amit hivni kellene, utana ellenorzi a lathatosagot.
-
jattila48
aktív tag
Sziasztok!
Az alábbi kódrészlet lefordul és le is fut, pedig szerintem nem kéne.
class Q{
private:
friend class P;
static int q(){return 9;}
};
class R : public Q{
//int r(){return Q::q();}
};
class P{
public:
int p(){return R::q();}
};void main(void)
{
P p;
printf("%d\r\n",p.p());
}A probléma az, hogy a P osztály eléri a az R::q-t, holott a q az R ősének (Q-nak) private tagja, és a P a Q-nak barátja, nem az R-nek. A kikommentezett sor természetesen nem fordul le, mert az R számára a private q tag nem elérhető. Úgy tűnik, hogy az R::q() hívás valójában Q::q(), csak nem értem miért.
-
cattus
addikt
Üdv.!
C++ alatt lehet olyat csinálni, hogy az ABC egyes betűinek előfordulási számát egy szövegben letárolom egy tömbben úgy, hogy pl. az "E" betű számosságát a t['E'] helyen lévő szám adja meg (azaz ahelyett, hogy az "E" betű számát a t[5] adná meg, lehet-e erre t['E']-ként hivatkozni?)
-
PumpkinSeed
addikt
válasz
attis71 #2573 üzenetére
Mivel a fejlődésed érdekében nem szeretném megcsinálni helyetted itt egy részletes magyarázat:
(Ha bárminemű hibát találtok benne javítsátok én se vagyok túl nagy szakértő, illetve a kódom nem egy professzionális kód amelynek a futásideje n elemű tömb esetén is 1 nanomásodperc, úgy kérném véleményezni, hogy kezdő vagyok.)Adott az a[] tömb amiben bizonyos számú szám tárolódik. Ezen kívül létrehozol egy tömböt ami ugyan annyi elemet tárol mint az a tömböd, legyen mondjuk res[sizeof(a)]; Ha jól tudom C++-ban a sizeof függvény határozza meg a tömb méretét. Azért kell ugyan annyi eleme legyen a result tömbnek mint az eredeti tömbnek, mert tegyük fel, hogy egy ismétlődő elem sincs ezért mindent át kell másolni. (Nem tudom, hogy C++-ban hogyan néznek ki a dinamikus tömbök, vagy vektorok, vagy van-e megoldás erre.) Majd következik a program lényegi része. Kezdődik egy for ciklussal, amely végig indexeli a result tömböt i-től sizeof(a)-ig. Mivel az első elem átmásolásakor biztos nem lesz ismétlődés így egy if feltételben akár meg is lehet adni, hogy csak a második lefutás után vizsgálja meg az értéket, így az első futás egyszerűen res = a(i);. A következő futás lesz az érdekes ugyanis ide kell egy új for ciklus ahol ismét beindexeled a res[] tömböt, de j-től csak i-ig mész el. Itt megvizsgálod, hogy a[k] == res[j];,(a k változó a későbbiekben lesz érdekes érdemes 1-re deklarálni.) ha igen akkor egy változót ami most mondjuk cnt növeled eggyel, cnt++. Ha ennek a for ciklusnak a végén a cnt értéke 0 akkor a res tömbben az adott a(i) még nem szerepel ha 0-nál nagyobb akkor már szerepel. Értelemszerűen jól működő kód esetén ez nem lehet nagyobb 1-nél. Majd a cnt változót nullázod, ugyanis ha mindig benne hagynád az értéket akkor az első egyezés után soha többet nem másolna át értéket.
Itt fontos rész következik, ha a cnt értéke mint már mondottam 0-nál nagyobb akkor k++ ha viszont 0 akkor előbb átmásolod res(i) = a[k]-val az értéket majd utána k++.Remélem érthető volt és tudtam vele segíteni.
-
LW
őstag
Amit tőletek kérnek:
int numbers[] = {3,4,1,2,2,5,2,1};
const int N = 8;
int output[N];
int counter = 0;
for(int i = 0; i < N; i++){
int j = 0;
for(; j < counter && output[j] != numbers[i]; j++);
if(j == counter){
output[j] = numbers[i];
counter++;
}
}
for(int i = 0; i < counter; i++){
cout << output[i] << " ";
}Ez pedig eggyel C++osabb megoldás:
int numbers[] = {3,4,1,2,2,5,2,1};
const int N = 8;
int output[N];
int counter = 0;
for(int i = 0; i < N; i++){
if(output+counter == find(output, output+counter, numbers[i])){
output[counter] = numbers[i];
counter++;
}
}
for(int i = 0; i < counter; i++){
cout << output[i] << " ";
} -
attis71
tag
válasz
PumpkinSeed #2568 üzenetére
Pontosabban eltudnád magyarázni?
attis71 -
attis71
tag
Sziasztok,
köszönöm az eddigi hozzászólásotokat.
Ehhez is kellene egy kis segítség:#include <iostream>
#include <iomanip>
using namespace std;
//függvény deklarációk
void Buborek(int rendezettTomb[], int N);
void Paros(int parosTomb[], int N, int& darab);
const int N = 16;
//Főfüggvény
int main()
{
//tömbök, változók
int A[] = { 11, 22, 44, 22, 55, 88, 77, 55, 22, 88, 99, 44, 33, 55, 22, 66 };
int darab = 0;
int hivatkozas = 0;
// eredeti tömb kiiratás
cout << "Eredeti tomb:" << endl;
for (int i = 0; i<N; i++) cout << " " << A[i];
cout << endl;
// A tömb növekvő sorrendben I./a feledat
Buborek( A, N);
// Rendezett tömb páros elemei
Paros( A, N);
system("pause");
return 0;
}
//buborékos rendező függvény
void Buborek(int rendezettTomb[], int N)
{
for (int i = 1; i<N; i++)
{
for (int j = N - 1; j >= i; j--)
{
if (rendezettTomb[j - 1]>rendezettTomb[j])
{
int seged = rendezettTomb[j - 1];
rendezettTomb[j - 1] = rendezettTomb[j];
rendezettTomb[j] = seged;
}
}
}
cout << "A tomb novekvo sorrendben:" << endl;
for (int i = 0; i < N; i++) cout << " " << rendezettTomb[i];
cout << endl;
}
// Páros számokat kiválasztó függvény
void Paros(int parosTomb[], int N, int& darab)
{
int db = 1;
cout << "Rendezett tomb paros szamai:" << endl;
for (int i = 0; i < N; i++)
{
if (rendezettTomb[i] % 2 == 0)
{
parosTomb[i] = rendezettTomb[i];
cout << " " << parosTomb[i];
db++;
}
}
darab = db - 1;
cout << endl;
}A Buborek rendező függvény kimenetét szeretném tovább rendezni a Paros függvénnyel,
csak nem tudom hogyan adjam át vagy hivatkozzak rá.
attis71 -
LW
őstag
Szerintem felesleges a set-et belevinni, az ellenőrzős megoldás jobb a programozás elsajátításához.
-
PumpkinSeed
addikt
válasz
attis71 #2566 üzenetére
Én úgy valósítanám meg, hogy az egészet elkezdem belemásolni egy új tömbbe, és minden elem másolása előtt megnézem, hogy a régi tömbben benne van-e már az átmásolandó elem. Ha mondjuk benne van akkor megszakítod a ciklust, ha nincs akkor átmásolod. Ha elakadnál a megvalósítással kérdezz.
-
sssirius
tag
válasz
attis71 #2566 üzenetére
Ha nem fontos a sorrendhelyesség, akkor használj std::set-et. A tömb összes elemét belerakod a halmazba, majd utána kiíratod őket, és minden elem csak egyszer fog szerepelni.
Egyéb megoldás:int out[N];
int size;
bool found;
for(int i=0; i<N;i++) {
found = false;
for(int j=0; j<i; j++) {
if(A[i]==out[j]) {
found = true;
}
}
if( !found ) {
out[size]=A[i];
size ++;
}
}Csak figyelni kell rá, hogy nem az egész tömb tartalmaz "értelmes" adatot.
Nem próbáltam ki, de kb. stimmel. -
attis71
tag
Sziasztok!
Tudnátok segítséget adni egy tömbben vannak ismétlődő számok, egy másik tömbbe ki kell írni ismétlések nélkül. Eddig jutottam:
int A[]={,2,2,4,4,6,6};
const int N=6;
for(int i =0; i<N-1;i++)
{ for(int j=i+1;j<N;j++)
{
if(A[j]<A[i])
{
}
}
}attis71
-
-
Sziasztok!
Egy lottó húzó programot kellene írnom, ami véletlen számokat generál, és nem ismétlődhetnek. Viszont ezzel az ismétlődés kiszűréssel gondban vagyok, mert nem igazán akar működni. Az egyszerűség kedvéért direkt csak 0 és 5 között akarom kiválasztani a számokat, mert így ugye nagyobb az esélye alapból hogy ismétlődjenek. De valamiért legtöbbször van közte ismétlődő, holott csak ki kellene írnia a 0,1,2,3,4 számokat valamilyen sorrendben.. Mi lehet a gond?
Itt a progi: Kép
-
kingabo
őstag
válasz
kemkriszt98 #2556 üzenetére
Az ideiglenes megoldások a legállandóbbak!
-
Jester01
veterán
válasz
kemkriszt98 #2556 üzenetére
Egyszeri használatra meg ez fölösleges program, sokkal egyszerűbben is le lehet ezeket gyártani.Na mindegy.
-
Jester01
veterán
válasz
kemkriszt98 #2554 üzenetére
Azért azt érzed, hogy ez borzalmas, ugye?
A hiba mindenesetre itt van: string s = "PC" + a+b+c+d;
Itt a + operátor az nem karakter hozzáfűzés, hanem a "PC" konstanshoz képest pointer művelet. Éljen az operator overloading
Egy lehetséges javítás: string s = string("PC") + a + b + c + d; -
kemkriszt98
tag
Sziasztok, megint egy (számomra vicces esemény)
Valaki megkért, hogy dobjak össze egy kis programot ami legenerálja az összes lehetséges kódot a következők alapján:"PCxyzq", ahól az x,y,z és q az ÁBC összes nagy és kisbetűje illetve bármelyik számjegy lehet. Az ötletem a következő: 4db for ciklus megy '0'-tól 'z'-ig és a közbeeső speciális karaktereket simán átugrom... viszont a kimenet így néz ki. Csak ez olyan sokszor, hogy a txt 382mb-t foglal...
A programom:
int db=0;
ofstream f("pc-codes.txt",ios::out);
for(char a='0';a<='z';(int)a++){
bool b1,b2,b3;
b1 = (a>='0' && a<='9');
b2 = (a>='A' && a<='Z');
b3 = (a>='a' && a<='z');
if(!b1 && !b2 && !b3) continue;
for(char b='0';b<='z';(int)b++){
b1 = (b>='0' && b<='9');
b2 = (b>='A' && b<='Z');
b3 = (b>='a' && b<='z');
if(!b1 && !b2 && !b3) continue;
for(char c='0';c<='z';(int)c++){
b1 = (c>='0' && c<='9');
b2 = (c>='A' && c<='Z');
b3 = (c>='a' && c<='z');
if(!b1 && !b2 && !b3) continue;
for(char d='0';d<='z';(int)d++){
b1 = (d>='0' && d<='9');
b2 = (d>='A' && d<='Z');
b3 = (d>='a' && d<='z');
if(!b1 && !b2 && !b3) continue;
string s = "PC" + a+b+c+d;
f<<s << endl;
cout << "Wait...";
db++;
}
}
}
} -
Ragnar95
félisten
Sziasztok!
Olyan problémába futottam, hogy vektorok piszkálásánál hiba csúszott az algoritmusba, viszont jó lenne látni, hogy pontosan mi is az, így debuggolnám Netbeansben, viszont a debug nem írja ki a vektor értékeit, mint Javánál.
Van esetleg valami megoldás rá, hogy belelássak a vektorba debug közben Netbeansben?Előre is köszönöm a segítséget
-
sssirius
tag
válasz
kemkriszt98 #2550 üzenetére
Kipróbáltam és valóban 0-t eredményez bármilyen karakter beadása esetén. A system("PAUSE") hívást nem használtam még sosem, én cin.ignore(10000, "\n")-t használnék és utána cin.get().
Halvány emlékeimben még rémlik olyasmi, hogy a következő beolvasás előtt érdemes meghívni a cin.sync()-et is.A cin.clear() csak az error flag-et fogja helyrerázni, de ha közben leütsz egy billentyűt akkor az bennmarad a bufferben ezért kell a cin.ignore(10000, "\n") ami legfeljebb 10000 karaktert figyelmen kívül hagy, amíg nem érkezik egy újsor karakter. Így az ENTER-t leütve tudod folytatni a programodat (ha jól sejtem azért van benn a system("PAUSE").
-
kemkriszt98
tag
válasz
sssirius #2549 üzenetére
Elméletileg ha automatikusan átalakulna akkor (szerintem) az kellene történjen, hogy egy 9 elemű tömb 101. elemét használnám és mindenféle vicces szám jönne ki és nem pedig az amit fent leírtam
Az atoi-s megoldás jónak tűnik.
Attól függetlenül én még kíváncsi lennék miért nem müködik a clear ()...Szerk.: csak, hogy egyértelmű legyen a beolvasott érték alapján piszkálok egy tömböt...
-
sssirius
tag
válasz
WonderCSabo #2547 üzenetére
Régen csináltam már ilyesmiket, de az az érzésem, hogy ha a felhasználó beír egy "e" betűt, akkor azt gond nélkül át fogja alakítani egy egész számmá.
Javaslom neked a stringstream-ek használatát. Ott egy kicsit jobban kézben lehet tartani az ilyesmit.
Ha mindenképp ennél az eljárásnál szeretnél maradni, akkor szerintem olvass be sztringbe és utána használd az atoi vagy strtol függvények egyikét.Szerk.: egyel feljebb lévő hsz.-re szerettem volna válaszolni, bocs.
-
kemkriszt98
tag
válasz
WonderCSabo #2547 üzenetére
while(running) //<-- bool típus
A gond nem itt van... hanem, hogy többet nem áll meg a cin-nél, hogy bekérdezzen valamit hanem rögtön bejut az if be, ott meg ott a continue úgyhogy kezdi elölről... (persze ami még az if ben van az lefut rendesen)
-
WonderCSabo
félisten
válasz
kemkriszt98 #2546 üzenetére
Hogy hogy mg sem áll többet? Mi a while feltétele? Posztold azt is.
-
kemkriszt98
tag
Sziasztok, kezelni szeretném azt ha a felhasználó nem megfelelő típusú adatot ír be. Előzetes ismereteim és a Google segítségével ezt raktam össze:
if(!(cin >> y)){ // az "y" egy int típus, és a felhasználó mondjuk az "e" betűt írja be...
cin.clear();
cout << "Invalid!" << endl;
system("PAUSE");
continue;
}viszont ez azt eredményezi, hogy a while (,ert ez egy whileban van) , rossz típus esetén, ezentúl meg sem áll többet csak a system("PAUSE") kedvéért.
-
kemkriszt98
tag
válasz
WonderCSabo #2544 üzenetére
Nem azt írtam, hogy nem értem az üzenetet hanem, hogy nem olvastam el csak azt ami a jelzett sorra vonatkozik
Szerk.: Ez a téma rég túl van tárgyalva
-
WonderCSabo
félisten
válasz
kemkriszt98 #2543 üzenetére
-
sssirius
tag
válasz
kemkriszt98 #2541 üzenetére
Értem, oké. Ha kételkedsz a szintaktika helyességében, akkor érdemes a függvény hívását kikommentezni. Bár nem biztos, hogy olyan hibaüzenetet kaptál volna ami nyomra vezet.
Nem akartam rosszindulatúan kötekedni, csak én mindig parancssorból szoktam fordítani (new Windows), és ilyen esetben ott szerintem kiírná, hogy mi a baja. -
sssirius
tag
válasz
kemkriszt98 #2536 üzenetére
Ahogy dabadab kolléga mondja... de azért egy fordításnyi fáradtságot szerintem rá lehetne szánni az ilyesmire, ha már annyira érdekel. Ez csak személyes vélemény.
-
válasz
kemkriszt98 #2536 üzenetére
"Meg lehet ezt hívni 1 paraméterrel?"
Nem, mert le se fordul, default parametereket csak utolsokent lehet megadni.
-
LW
őstag
válasz
kemkriszt98 #2536 üzenetére
Szia!
Jobb oldalra szokás tenni az alapértelmezett értékes paramétereket, így az ismereteim szerint nincs értelme.
Pl. C# azt hiszem szól is ezért. -
kemkriszt98
tag
Sziasztok, elméleti kérdés:
Adott ez a fügvény:
void lol(int a=5, int b){
//...
}Meg lehet ezt hívni 1 paraméterrel? Tehát lehet jelölni, hogy amit a hívásnál átadok neki az a második paraméternek számít? Vagy ilyen esetben mincs is értelme az alapértelmezett értéknek?
-
sssirius
tag
válasz
Atti575 #2529 üzenetére
Ez nekem úgy tűnik több sebből vérzik... a tömbök elemeit [] operátorral hivatkozzuk, tehát rend[i], valamint én a fopen() függvényt szoktam használni, ha már C (nem C++), de gondolom az általad használt függvény is működik...
Azt viszont nem látom, hogy mitől várod azt, hogy ár szerint növekvő sorrendben írja ki...
Itt egy egyszerű (de nem túl hatékony) helybenrendező algoritmus:
int i,j;
for( i=0; i<db; i++) {
for( j=i; j<db; j++) {
if(rend[i].ar > rend[j].ar) {
struct Nyilvan tmp = rend[i];
rend[i] = rend[j];
rend[j] = tmp;
}
}
} -
Atti575
tag
Helyesbítek
3. Autók listázása: a lista.txt fájlba írja ki az autókat, egy sorban egy autó adatait, de ár szerint növekvőleg -
Atti575
tag
Na már csak az kell hogy ar szerint legyen kiirva egy sorba a többit megcsináltam
void listaKi() {
Nyilvan rend[db];
for (int i=0; i<db; i++) {
strcpy(rend[i].marka, nyilvan[i].marka);
strcpy(rend[i].tipus, nyilvan[i].tipus);
rend[i].ar = nyilvan[i].ar;
strcpy(rend[i].rendszam, nyilvan[i].rendszam);
rend[i].muszaki = nyilvan[i].muszaki;
}
//fájlba írás
FILE *fp = fileOpen("lista.txt","wt");
if (fp!=NULL) {
for (int i=0; i<db; i++) {
fprintf(fp, "%s %s %d %s %d\n",
rend[i].marka,
rend[i].tipus,
rend[i].ar,
rend[i].rendszam,
rend[i].muszaki
);
}
}
fflush(fp);
fclose(fp);
}Kijavítottam a formázást. A Programkód gomb használata nagyon fontos, nélküle a szögletes zárójelet simává változnak, és minden indentálás elveszik, olvashatatlanná téve a fórumot.
[ Módosította: Karma ]
-
sssirius
tag
válasz
Atti575 #2525 üzenetére
std::ofstream out("output.txt");
out << adat;
out.close();Nyilván ha a második sort ciklusban hívod minden autóra, akkor többet is ki tudsz íratni. Ha pedig különböző sorba akarod íratni, akkor out << adat << std::endl;
Persze lehet, hogy rosszul gondolom mit szeretnél...
-
Atti575
tag
Halli mindenkinek
Kellene egy kis segítség a beadandómhoz
Adott egy feladat txtböl kell fájlokat beolvasni majd kiíratni egy sorba ár szerint rendezve
Meg addig megvan hogy új autókat tudjak felvenni de amit felveszek azt az istenes se tudom kiíratni txtbeThx Elöre is
-
rt06
veterán
nem tudom, hogy ez-e a megfelelo hely a kerdesemnek, de jobb otletem hirtelen nincs (fokent azert, mert semmit nem ertek a c/cpp programozashoz)
szoval adott egy (ket) alkalmazas, konkretan a libTorrent/rTorrent paros, amiket szeretnek windoze-on, cygwin-en belul leforditani
ez eddig megy is, megpedig a -U__STRICT_ANSI__ CXXFLAG megadasaval
ket kerdesem lenne ennek kapcsan
1: mennyire lehet ez "veszelyes"? vagy a program mukodesere egyaltalan nincs hatassal?
2: hogyan lehet ezt annal szebben megoldani, hogy a configure.ac file-ba beteszem az alabbi blokkot:AC_CANONICAL_HOST
AC_MSG_CHECKING(for Cygwin)
case $host in
*cygwin*)
OS_CYGWIN=yes
CXXFLAGS="$CXXFLAGS -U__STRICT_ANSI__"
;;
*)
OS_CYGWIN=no
;;
esac
AC_MSG_RESULT($OS_CYGWIN) -
bucsupeti
senior tag
válasz
wowpegazus #2520 üzenetére
Ha a csilivili nem lenne fontos akkor sima excel, esetleg Visual Basic for Application makrókkal.
-
PumpkinSeed
addikt
válasz
wowpegazus #2520 üzenetére
Valamilyen programozási nyelv, mondjuk JAVA elsajátítását ajánlom.
-
wowpegazus
tag
Sziasztok!
Nem tudom jó helyen érdeklődök-e, remélem tudtok nekem segíteni. Nem tudok programozni, de szeretnék készíteni egy szerepjátékos karakter készítő alkalmazást. Az elképzelés valami olyasmi lenne, mint egy klasszikus rpg játékban.
Teljes képernyős módban futna a program, egyéni háttérrel, esetleg zenével.
Az elején 24 kaszt közül választhatna a játékos. Ezeket ikonok jelképeznék. Ha valamelyikre rákattint a játékos, azt kiválasztja, és jobb oldalon egy rövid leírást felhoz a program.
Lenne egy olyan oldal is, ahol a játékos eloszthat pontokat a karakter főbb tulajdonságai között, + - gombokkal növelve az értéket.
A karakterkészítés egyes lépései között alul tovább, illetve vissza gombbal lehetne lépkedni. A lényeg, hogy a user sok mindent választhatna, amiket aztán a gép állítana össze helyette. A választáshoz a listákat pl. excelből képes lenne beolvasni a program.A végén a kész karaktert egy excel alapú karakterlapra kinyomná a program.
Valami ilyesmi lenne az elképzelés. Tudtok segíteni ezt milyen ingyenes programmal lehetne elkészíteni a legkönnyebben? Win7 64bit oprencerem van, i5 3550 procival, 8 gb ram, radeon 6850hd videokártyával.
Bárminek nekiállok, csak valami irány kellene, merre kezdjem el.
Hálás köszönettel:
Wowpegazus
-
LW
őstag
válasz
WonderCSabo #2518 üzenetére
Btw tényleg mókás megoldás tartom.
Obfuszkált kódot még nem kaptam házi/zh feladat gyanánt, de az ő stílusa közelített felé. -
LW
őstag
válasz
csabi94 #2516 üzenetére
Attól függ melyik egyetemen keztél el tanulni. Jobb helyeken komolyan veszik a programozást. A programozói szemlélet elsajátítása fontosabb, mint egy-egy nyelv jellegezetéssei és szintaxisa.
Ha még nem volt dolgod programozással, akkor vedd komolyan és készülj hétről hétre, találj ki feladatokat, amit megoldasz. Előre is tanulhatsz. Sokan csúsznak a programozás miatt, mert sok tárgy épül rá, ezért is hangsúlyozom, hogy készülj. Le fogják adni, de ahhoz, hogy megtanulj programozni neked kell úgy hozzáállni.
Két évfolyam programozás kurzusának lebonyolításában is részt vettem és hiába csökkent a színvonal és az elvárt szint a hallgatók ugyan olyan arányban buktak, a kettes-hármas szint fogyott csak.
Nem vagy hátrányban, ismerek olyan embert, aki az egyetemen tanult meg programozni és jobban oldja meg a problémákat, mint aki jónak vallotta magát az elejétő kezdve. Hogyan tudsz tanulni? Csináld. Szívj a kreált bugjaiddal. Könyvből nem lehet.
UI: Volt egy hallgató, aki csak bitenkénti xor-ral volt hajlandó int két típusú változó értékét kicserélni harmadik deklarálása nélkül. Egészen addig nem hittem el, amíg nem találkoztam a házi feladatával.
-
csabi94
őstag
Igazából most kezdtem el felsőoktatásban tanulni, ezért is kérdeztem, hogy másoktól is halljam, hogy mennyire nehezen tanulható. Az azért érdekelt, hogy otthon is tanulható-e, mert már most lépéshátrányban vagyok a többiekkel szemben, mert mindenki tanult régebben gimiben valamilyen nyelvet, csak én nem.
-
doc
nagyúr
válasz
Ereshkigal #2513 üzenetére
azert tanulni nem a Stroustrup konyvbol kell...
bar igy hirtelenjeben nem tudok kezdoknek valo konyvet ajanlani, biztos van jonehanykimondottan 'nehez' nyelvnek nem mondanam a C++-t, de valoszinuleg konnyebb mondjuk Pythonnal vagy akar C#-pal kezdeni (mondom ezt ugy, hogy en nagyon szeretem, es a fo" nyelvemnek tartom a C++-t, mig a Pythont vagy a C#-ot egyaltalan nem kedvelem)
-
válasz
Ereshkigal #2513 üzenetére
Egyaltalan nem ertek egyet, rengeteg olyan dolog van a C++-ban, ami feleslegesen bonyolitja egy kezdo eletet. A nyelv maga oriasi, meg kvazi profikent is bele lehet futni olyasmikbe, amikre sose szamitottal volna. Szoval tok feleslegesnek tartom ezzel kuzdeni, amikor vannak nyelvek, amik sokkal 'kisebbek' (marmint a nyelvi konstrukciok szama es bonyolultsaga alacsonyabb), es ugyanugy majdnem mindenre jok.
-
válasz
csabi94 #2511 üzenetére
Annyira nehéz nyelv, mint a többi, amit egyébként ajánlanának.
Bármelyik nyelv megtanulható otthon.
Nem kell sírni, segítenek biztosan, ha kérdésed lesz.
(Rég volt a kezemben C++ könyv, így nagyon nem merek ajánlani, de anno nálunk Bjarne Stroustrup könyve alapműnek számított.) -
csabi94
őstag
Sziasztok!
A C++ mennyire nehéz nyelv? Vannak olyan jó kis leírások magyarul, ami alapján otthon is megtanulható?
Most nézem, hogy 7.20-án volt az utolsó hozzászólás? Már nem is él ez a topik?
Pedig most kezdtem el tanulni...
-
#39560925
törölt tag
válasz
kingabo #2507 üzenetére
Tudom mit csinál az a try-catch blokk, az előzményt is olvasd el.
Csak debugolas céljából volt ott. Végülis fölöslegesen, mert már emvy segítségével megoldódott a probléma.
Tehát az előzmény:
SO-n azt írták, hogy egy kezeletlen exception miatt meghívódik a terminate() ami meghívja az alkalmazás abort()-ját és ezért áll le.
Próbáltam, hogy try-catch blokkba elkapok mindent a függvényhívás körül, de ugyan úgy abortálódott a futás. Egyébként msdn-en semmit nem írnak arról, hogy ezek a függvények exceptiont dobnának. -
kingabo
őstag
válasz
#39560925 #2494 üzenetére
Első kép: kivétel esetén egy memória szemetet adsz vissza! Illetve semmiből sem látszik, hogy hiba történt: se log, se vmi kiíratás, se vmi extremális elem visszaadás, amit a hívó oldalon ellenőrzől, vagy egy bool érték, hogy sikerült-e, vagy bármi amiből a hivó oldalon rájösz, hogy hiba volt, ill debug közben kiírná, hogy hohó hiba törpént...
-
#39560925
törölt tag
Először is odaadom a Socket és az UDP_Socket forrását. A thread indítása elég összetett és inkább nem adnám oda. A threadként elindított függvény egy objektum tagfüggvénye, és ezt az objektumot először inicializálom az első beérkező csomag függvényében.
Így deklarálom az objektumot:
auto forwarder = std::make_shared<RTP_proxy>();Ha a csomagban megfelelő content van és még nem létezik forwarder a forráscímhez tartozóan, akkor csinálok egy új forwardert:
forwarder = std::make_shared<RTP_proxy>(proxy_IP, rtp_addr, call_ID);Hozzáadom a forwardereket tároló map-hez:
RTP_forwarder_list[rtp_addr] = forwarder;És elindítom az új szálat:
std::thread(&RTP_proxy::run, RTP_forwarder_list[rtp_addr].get()); -
válasz
#39560925 #2500 üzenetére
Az UDP_Socket forrasat es azt, ahol a threadet inditod, nem tudod felrakni a pastebinre (vagy akar ide, de pb jobb)? Ha jol latom, ez nem titkos (merthat eleve adtal rola sok kepernyofotot).
Miben kulonbozik a ket thread?
Plusz:
- a debug opcioknal kapcsold be a 'break on first chance exceptions'-t
- kapcsold be a c++ exception-oknel a 'break on thrown'-t
- esetleg kapcsold ki a just my code-ot
Ú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!
- Redmi Note 13 Pro 5G - nem százas, kétszázas!
- Samsung Galaxy A52s 5G - jó S-tehetség
- PlayStation 5
- Bittorrent topik
- Hill Climb Racing 2 bemutató (Android, iOS)
- 5.1, 7.1 és gamer fejhallgatók
- Kínai és egyéb olcsó órák topikja
- Autós topik
- Új középpályást igazolt a Qualcomm
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- További aktív témák...
- Apple iPhone 13 / 128GB / Gyárifüggetlen / 12Hó Garancia / 89% akku
- HIBÁTLAN iPhone 15 Pro Max 256GB Black Titanium -1 ÉV GARANCIA - Kártyafüggetlen, MS3004
- Dell Optiplex MT/SFF 3040, 3050, 3060, 3070, 5070, 7060/ Hp ProDesk /SZÁMLA- GARANCIA
- BESZÁMÍTÁS! LG 24MB35PM 60Hz FHD IPS 5ms monitor garanciával hibátlan működéssel
- ÚJ Xiaomi Mi Robot Vacuum Mop Essential robotporszívó feltörlő 2db 1999 Ft
Állásajánlatok
Cég: FOTC
Város: Budapest