Hirdetés

2024. május 2., csütörtök

Gyorskeresés

Hozzászólások

(#301) Ran


Ran
csendes tag

Aha. Értem. Kösz srácok.

Amúgy egy jegyzetből néztem ki, és ott nem volt lefoglalva hely neki.

Mindenesetre kösz.

(#302) sekli


sekli
addikt

helo, gyors segitsegre lenne szuksegem, igy mukodik tokeletesen:

ifstream in("teszt.txt", ios::in | ios::binary);
if(!in) {
cout << "Cannot open file.\n";
return 1;
}
int m[10];
in.read((char *) &m, sizeof (m));
for(i = 0; i <10; i++) // show values read from file
cout << m[i] << " ";
in.close();

igy viszont nem:


ifstream in("teszt.txt", ios::in | ios::binary);
if(!in) {
cout << "Cannot open file.\n";
return 1;
}
int *m=new int(10);
in.read((char *) &m, sizeof (m));
for(i = 0; i <10; i++) // show values read from file
cout << m[i] << " ";
in.close();

miert nem...?

[ Szerkesztve ]

(#303) steveetm válasza sekli (#302) üzenetére


steveetm
őstag

#300 hsz.

#304: azt én látom, csak #300ban meg ott a példa is, csak nem int-re. Kettőt összehasonlítja és megvan hol a diffi.
Üdv.: steveetm

[ Szerkesztve ]

(#304) Lortech válasza sekli (#302) üzenetére


Lortech
addikt

Mert az int(10) nem 10 elemű tömböt jelent, hanem egy darab intet 10 kezdőértékkel.
szerk: kimaradt két szócska.

#303: foglalt helyet, ott a new.
#303 szerk: ok. :)

[ Szerkesztve ]

Thank you to god for making me an atheist

(#305) sekli válasza Lortech (#304) üzenetére


sekli
addikt

ha igy irom, hogy:

int *m;
m= new int[10];

akkor se jo...:F

(#306) Lortech válasza sekli (#305) üzenetére


Lortech
addikt

Mi nem jó? Nem fordul? Vagy nem jól működik?

Thank you to god for making me an atheist

(#307) steveetm válasza sekli (#305) üzenetére


steveetm
őstag

Igen, de valszeg nem emiatt. Ha már *m ed van akkor pointer, így beolvasásnál fölösleges még 1 &, mert így csak a mutatód címét kapnád meg. Az m ebben az esetben már egyenlő az előző verziód &m jével(mod.: mármitn nem egyenlő, értékileg, de érted, na(bár akár lehetne is, de most picit elkalandoztam a lényegtől)) , ennek szellemében alakítsd át még a második verziót.

ui.: rég láttam már tipusos nyelveket, szal ha hülyeséget mondok most akkor sry, de imho ez a gond^^
Üdv.: steveetm

[ Szerkesztve ]

(#308) sekli válasza Lortech (#306) üzenetére


sekli
addikt

lefordul, de kifagy, debuggerrel azt mondja az m-re, hogy "expression cannot be be evaluated"...

steveetm: azt hiszem nem tudlak kovetni..., csak azt akarom megoldani, hogy dinamikusan foglalt helyre olvassak, mert nem tudom elore, hogy mennyit akarok...

(#309) steveetm válasza sekli (#308) üzenetére


steveetm
őstag

Akkor mindenképp ajánlom ezt: [link]

Az ok, hogy dinamikusan foglalsz helyet, de arra mérget vehetsz, hogy a sizeof(m) a pointered méretét fogja megadni, ami nem nagyon lesz több 4nél.
*hint*

int* m ->sizeof(m)=4;
int m[10] -> sizeof(m)=40;

Üdv.: steveetm

(#310) Lortech válasza sekli (#308) üzenetére


Lortech
addikt

Azza a sorral van pedig gond, amit a kolléga említett. Miért int*? EZ itt nagyon nem frankó: (char *) &m, sizeof (m) - csinálsz egy char * pointert az int tömbödből csaz azért hogy tudjál bele olvasni, erre elkezdi behányni a karaktereket az int tömbbe a címtől kezdve. Meg a sizeof is nem tudom, mi célt szolgál itt, ha arra gondoltál, nem a tömb méretét (elemszámát) adja meg, hanem a típusét bájtban.

int bufferm = 20;
char * m = new char[bufferm];
cout << "kezd ";
in.read(m, bufferm);
for(int i = 0; i <bufferm; i++) // show values read from file
cout << m[i] << " ";
in.close();

Thank you to god for making me an atheist

(#311) sekli válasza steveetm (#309) üzenetére


sekli
addikt

igen, kozben mar erre rajottem, de ha tizet irok a sizeof -os resz helyere, akkor se megy... :F


int offset=10;
int *m;
m=new int[offset];
int c=sizeof(m);
in.read((char *) &m, 10);
for(i = 0; i <10; i++) // show values read from file
cout << m[i] << " ";
in.close();

Lortech: Az int azert kell, mert majd in tombot kene visszaadnia a fuggvenynek... az az erdekes, hogy ha nem dinamikusan foglalt memoria van, akkor tokeletesen megy...:F

[ Szerkesztve ]

(#312) steveetm válasza sekli (#311) üzenetére


steveetm
őstag

Majdnem, majdnem. De mostmár ketten írtük le, és egy link, hogy a &m mit is jelent. Nem azt amit szeretnél, de már nagyon közel jársz.

Megjegyzem, a kód amit használsz, azért lett postolva egy fórumra, mert nem úgy működik, ahogy az alkotója elképzelte, elég merész ötlet volt ezt elkezdeni átalakítgatni, de te tudod^^

Remélem bízol bennünk és elhiszed, hogy a hiba nem a c++-ban van, és semmi érdekes nincs abban, hogy a 2. kód nem működik.
Üdv.: steveetm

[ Szerkesztve ]

(#313) sekli válasza steveetm (#312) üzenetére


sekli
addikt

bizom bennetek persze, jobbat nem nagyon tehetek...:)
a kodot nem egy forumrol masoltam, innen szarmazik...

mod: Lortech verzioja azert nem jo, mert binaris filerol van szo, es igy olvasva jonnek a szivecskek es a szmálylik az intek helyett...

[ Szerkesztve ]

(#314) steveetm válasza sekli (#313) üzenetére


steveetm
őstag

Ja fura, meglepően hasonló problémával postolta valaki mint te^^ mind1.

lényeg a (char*) &m helyett (char*) m, de már írtam ezt is, és a sizeof helyett pedig(a te példádat használva) offset*4

Persze csak, ha jól értem mit szeretnél, meg mit csinált az eredeti.
Üdv.: steveetm

(#315) sekli válasza steveetm (#314) üzenetére


sekli
addikt

koszonom szepen mindkettotoknek, igy remek..., akkor meg megmaradt az esely, hogy holnap reggelre elkeszulok... :)

:R

(#316) cafat


cafat
tag

Sziasztok!
C++-ban kéne egy kis segítség fájlból olvasás témában.
Adott egy txt fájl abba vannak adatok szóközzel elválasztva valahogy így: Név Tszam Tar
Ezt a három adatot kéne beolvasni és kiíratni a képernyőre!
Ha valaki tudna benne segíteni azt megköszönném! :R

(#317) amargo válasza cafat (#316) üzenetére


amargo
addikt

Input/Output with files
Itt jól le van írva.

“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”

(#318) bbazsy


bbazsy
őstag

hali

STL prioritásos sort használok, szeretném átírni az összehasonlító függvényét, ami alapján dolgozik.

van ez:

struct rec
{
int ido;
int prior;
int hossz;;
};

továbbá:

priority_queue<rec, vector<rec>, rev> line;

végül:

struct rev
{
bool operator() (rec x, rec y)
{
return y.hossz < x.hossz;
}
};

ez így mind szép és jó, de nekem az kéne, h ha egyenlő a hossz, akkor az legyen a sorban előbb, amelyik előbb került bele. ehhez kéne a y.hossz<=x.hossz, amire hibát kapok(nem fordításnál, futtatásnál. (VS/include/algorithm, sokadik sor, invalid operator, invalid heap).
a dolog szépsége, h ha ezt kinyomom 'ignore' -al, akkor szépen lefut úgy, ahogy nekem kell.

miért?

..

(#319) bbazsy válasza bbazsy (#318) üzenetére


bbazsy
őstag

annyira éreztem...
persze g++ hiba nélkül, helyesen megcsinálja :D

kérdésem továbbra is áll, mi lehet VSnek a baja ?

..

(#320) Darth_Revan


Darth_Revan
veterán

Meg tudná valaki pls mondani, hogy hogyan tudom megszámolni, hogy egy fájlból beolvasott szöveg hány sorból áll? :B

(#321) PazsitZ válasza Darth_Revan (#320) üzenetére


PazsitZ
addikt

Így hirtelen.
Az input stringet ellenörzöd és számolod a \n előfordulását.

Avagy külön műveletben megnyitod, bezárod, miközben a file-t soronként beolvasva EOF-ig számolod hány sort olvastál be.

- http://pazsitz.hu -

(#322) martonx


martonx
veterán

Sziasztok kellene nekem egy kis C++-os segítség!

A feladat: bináris fileban adott struktúrájú adatok találhatóak. Létre kell hozni egy osztályt, ami tömbként tárolja a bináris fájlban talált adatokat.
Kész is van a kódom, de mire kész lettem vele nem fordul be. Vajon miért?

#include <iostream>
#include <fstream>

using namespace std;

struct dolgozo
{
char nev[30];
unsigned int kor;
long int fizetes;
};

class dolgoszt
{
private:
dolgozo *adatok;
int db;
public:
dolgoszt(char nev[])
{
int i=0;
db=0;
dolgozo r;
ifstream zh;
zh.open(nev);
if (zh.fail()) {cout<<"Error when open the file";exit(1);}
zh.read((char*) &r, sizeof(dolgozo));
while (!zh.eof())
{
db++;
}
adatok = new dolgozo[db];
zh.beg;
zh.read((char*) &r, sizeof(dolgozo));
while (!zh.eof())
{
adatok[i]=r;
i++;
zh.read((char*) &r, sizeof(dolgozo));
}
zh.close();
}
~dolgoszt();

void kiir()
{
cout<<adatok->nev<<"\t"<<adatok->fizetes<<"\t"<<adatok->kor<<endl;
}

};

int main()
{
char file[30]="c:\\dolgozo.dat";
dolgoszt d(file);
cin.get();
}

És a hiba valahol itt lesz: adatok = new dolgozo[db];
Sajnos az én tudásom itt véget ért, légyszi segítsetek!

Én kérek elnézést!

(#323) Lortech válasza martonx (#322) üzenetére


Lortech
addikt

A destruktornak csak a prototípusa szerepel, nem definiáltad.

Thank you to god for making me an atheist

(#324) martonx


martonx
veterán

Köszönöm. Az ember néha a legnyilvánvalóbb hibát nézi el. :B

Én kérek elnézést!

(#325) copin


copin
őstag

Üdv!

Dev-c++ 4.9.9.2. verzióban semmilyen eredményt nem ír ki a programom.
Felvillan egy ablak és kész.

Hogy példa is legyen:

#include <stdio.h>
#include <conio.h>

void main (void)
{
int a,b;
clrscr();
printf("\nK‚rek k‚t sz mot: ");
scanf("%d", &a);
scanf("%d", &b);
if (a==0)
printf("\nHib s adat");
if (b==0)
printf("\nHib s adat");


getch();
}

Mit és hol kell beállítani?

(#326) copin válasza copin (#325) üzenetére


copin
őstag

Mindig talál valami hibát. Kezdem feladni. :O

(#327) Lortech válasza copin (#326) üzenetére


Lortech
addikt

Ha jól értem, le sem fordul a forráskódod.
A GCC-s / Mingw-s conio.h, amit a DevCpp használ, nem tartalmaz ilyet, hogy clrscr().
Ha ilyen stílusban akarsz c programot írni, akkor használj tcc-t.

Amúgy meg vedd ki a fenébe azt a sort, nem kell az oda.

Meg ez a
void main(void)
{
}

sem ajánlott. Helyette konzol alkalmazásnál int main(int argc, char *argv[])
{
...

return 0;
}

Amúgy ez egy egyszerű c forráskód akarna lenni, inkább a c topikban a helye.

Thank you to god for making me an atheist

(#328) copin válasza Lortech (#327) üzenetére


copin
őstag

Rendben. Turbo C-t sikerült leszednem és elsőre megy minden. Van esetleg valami frissebb win-re? Ami nálam van '87-es.

Kipróbálom ezt.

[ Szerkesztve ]

(#329) Lortech válasza copin (#328) üzenetére


Lortech
addikt

Sima turbo c-ből 2.01 volt az utolsó, az ingyen letölthető. Utána Turbo c++ lett, ami tud c-t is fordítani, valahol 4-5.x verziónál lett vége, aztán a c++ builder-ek.
De én inkább azt javaslom, hogy szabványos c kódot írj.

Thank you to god for making me an atheist

(#330) SlashMate


SlashMate
csendes tag

Sziasztok!
Szeretnék segítséget kérni, C++-ban, hogyan lehet egy adott elérési úton található fájlt megnyitni, a tartalmát pedig egy új fájlba, adott elérési úton menteni?
A választ előre is köszönöm.
Szerk.: aAkár konkrét példa is érdekelne
Üdv: SlashMate

[ Szerkesztve ]

Olyan nincs, hogy valami nem sörbontó.

(#331) Benmartin válasza SlashMate (#330) üzenetére


Benmartin
senior tag

szia!

#include <iostream>
#include <fstream>
using namespace std;
int main() {
char c;
ifstream forras("C:\\forras.txt");
ofstream cel("C:\\cel.txt");
while(forras.get(c)) {
cel.put(c);
}
forras.close();
cel.close();
}

ráértem :)

(#332) SlashMate válasza Benmartin (#331) üzenetére


SlashMate
csendes tag

Köszi!

Olyan nincs, hogy valami nem sörbontó.

(#333) SlashMate válasza Benmartin (#331) üzenetére


SlashMate
csendes tag

Hello!
Lenne még egy kérdésem.
Sikerült a másolás, de a cél fájl (számomra) olvashatatlan karaktereket (kínai vagy japán írásjeleket) is tartalmaz. Mivel lehetne megoldani, hogy a magyar (latin2-es) karakterekként másolja az eredetileg elolvasható szöveget? Egy html fájlról beszélünk.
Előre is köszi, üdv

Olyan nincs, hogy valami nem sörbontó.

(#334) martonx válasza SlashMate (#333) üzenetére


martonx
veterán

Az ékezetes karakterek látszódnak kriksz-kraksznak?

Mert akkor a filekódoláson kell állítani. Milyen az alap fájl kódolása? ANSI, UTF8?

Én kérek elnézést!

(#335) SlashMate válasza martonx (#334) üzenetére


SlashMate
csendes tag

Így kezdődik a másolandó hátéemmell:

<?xml version="1.0" encoding="UTF-16LE"?>

mod: nem az egész fájl, csak egy egy részlete "változik át"
előre is :R

[ Szerkesztve ]

Olyan nincs, hogy valami nem sörbontó.

(#336) martonx válasza SlashMate (#335) üzenetére


martonx
veterán

Próbáld ki ezt:

#include <fstream>
#include <ios>
using namespace std;

int main() {
ifstream infile("test.dat", ios_base::binary);
ofstream outfile("test~.dat", ios_base::binary);

outfile << infile.rdbuf();
}

Én kérek elnézést!

(#337) SlashMate válasza martonx (#336) üzenetére


SlashMate
csendes tag

igen ez működik, köszönöm!
lenne még egy kérdésem:
a másolandó fájlok mindíg más más mappában vannak aminek a neve az aktuális év és hónap. hogyan lehetne megoldani, hogy a rendszeridőt felhasználva a megfelelő mappából másolja ki a fájlokat?

Olyan nincs, hogy valami nem sörbontó.

(#338) amargo válasza SlashMate (#337) üzenetére


amargo
addikt

Egy példa

“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”

(#339) martonx válasza SlashMate (#337) üzenetére


martonx
veterán

Tudom, hogy ez C++ topik, de te olyan dolgokat szeretnél, amikre nem éppen a C++ a legmegfelelőbb.
Végülis a te dolgod. Mi itt szivesen segítünk, de ezek egy magasabb szintű programnyelvben pl. Delphi, Visual Basic minimális problémát jelentenek még egy totál kezdő programozó esetében is.

Én kérek elnézést!

(#340) amargo válasza martonx (#339) üzenetére


amargo
addikt

Mi itt szivesen segítünk, de ezek egy magasabb szintű programnyelvben pl. Delphi, Visual Basic

Ezt kifejtenéd? Lehet rosszul értem.

“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”

(#341) martonx válasza amargo (#340) üzenetére


martonx
veterán

Arra gondoltam, hogy ha nem kimondottan házifeladat, vagy valami kötelező feladat, amit kizárólag C++-ban kell megoldani, akkor pl. ez a feladat, hogy file-t másoljunk, plusz könytár struktúrát kezeljünk, dátumokat belekeverve megoldható C++-ban is, de míg ott lehet, hogy 100 sornyi kódja lesz (10 órányi kódolással, debugolással), ezt VB.NET-ben pl. 10 sornyi kóddal (1 órányi kódolás, debug) meg lehet oldani.
Szeretem a C++-t, ha a helyén kezeljük, pl. mobil eszközökre, videókártyákra programot fejleszteni, digitális jel feldolgozásához a mai napig csak C++-t lehet használni.
Sok olyan dolog van, amit csak C++-al lehet megoldani.
De sok olyan probléma van, amire a C++-nál sokkal egyszerűbb programnyelvek léteznek.
A magasabb szintűt pedig úgy értettem, hogy a C++ szinte gépi kódra fordul, azaz gépközeli alacsony szintű nyelv. Delphi, VB pedig magas szintű, mert csak egy köztes nyelvi rétegre fordulnak, de pont ez miatt nem kell pl. memóriát magadnak kezelned.

Én kérek elnézést!

(#342) amargo válasza martonx (#341) üzenetére


amargo
addikt

VB még értem is, de a delphit már nem. Script nyelveken ezt tényleg csak pár sorban meglehet csinálni, sőt bash-ben ez nagyon minimális, 5perces feladat.
Ez a feladat szerintem hibakezeléssel 15 - 20 sor és akkor csak a hasamra csaptam és kb 5-10perces meló c++, könyvtárhoz kell egy rekurziv bejárás talán ez dobja meg a kódolást. (bár az is lehet az STL-nek erre is van megoldása)

"C++-ban is, de míg ott lehet, hogy 100 sornyi kódja lesz (10 órányi kódolással, debugolással)"

ööö lehet én néztem be valamit és nem csak annyit, kell, hogy egy könyvtárszerkezetet bejársz és bizonyos dátumú fájlokat átmásolsz máshova más néven bitenként?

“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”

(#343) Ombre9


Ombre9
csendes tag

Hi all!

Egy kis segítség kellene a következő kórészlet megértésében:

Függvény:
int transport(int person)
{
int train = 1 + person;
int (*plane)(int) = transport;

while (train % 2)
train = 1 + plane(train);

return 1 + train;
}

Függványhívás:
int x = transport(transport(0));

:( int (*plane)(int) = transport; Ezt a sort nem nagyon értem

Milyen eredményel tér vissza a függvény? Előre is Kösz!

(#344) sghc_toma válasza Ombre9 (#343) üzenetére


sghc_toma
senior tag

int (*plane)(int) = transport:
plane egy függvénypointer, a transport függvény címét tartalmazza.. tehát ha meghívod a plane-t, a transport-ot hívod...

in asm we trust

(#345) Peter789


Peter789
senior tag

Sziasztok!

Egy kis segítséget szeretnék kérni a guruktól... adott ez a referencia hw a hozzá tartozó sw forráskóddal:

Silabs Si4701
[link]

szeretném a progi felületét kicsit átdolgozni, szóval gyakorlatilag skin-elésről lenne szó, de az ablak méretén is kéne változtatni... (a centrafuse carpc frontend-be szeretném beilleszteni)

Delphi-ben otthon vagyok, és valamennyire VB-vel és PIC C-vel (BoostC) is el tudok játszani, de a C++ nagyon kínai. fogtam egy C++ 6-ot, próbáltam betölteni ezt-azt a fájlok közül, de valahogy sosem sikerült olyasmi felületet kapnom, mint Delphi-ben az ablak szerkesztőfelülete, ahol áthelyezhetem a gombokat, kiegészíthetem, törölhetek, etc... itt egyáltalán van ilyen, vagy máshogy van megoldva? plz segítsetek hogyan fogjak hozzá!

[ Szerkesztve ]

----------------------------------------------------------------------------------------------------------------- AquAgorA ...Pál apostol nyomában:                                                                          http://fleettracker.eu/index.php/component/aquagora

(#346) GeRip003


GeRip003
csendes tag

huhh hát az volt az elején mikor beléptem a programozás részbe hogy minden féle szinten. Hát elétek dobnék egy nagyon gyerek problémát.=D pár perce felraktam a Dev-C++-t és egy olyan hülyeségen akadtam el, hogy nem tudom/nem találom azt a részt, ahol belehetne állítani , hogy a megírt program ami megjelennik egy dosos ablakban ne tünjön el azonnal. szval leegyszerüsítve

#include <stdio.h>
main ()
{

printf ("Halló mindenki!");

}

van egy ilyen kis kódom. és ráklikkelek a run-ra leis futattja de az ablak alig marad pártizedmásodpercre nyitva=/

(#347) GeRip003


GeRip003
csendes tag

Gyorsabban írtam ide mint, ahogy gondolkodtam volna. :W a problémát nézzük megnemtörténtnek. :U

(#348) martonx válasza Peter789 (#345) üzenetére


martonx
veterán

Szia!

Van ilyen felület állítgatási lehetőség C++-ban is, bár jóval macerásabb, mint Delphiben vagy VB-ben.
Ahogy nézem ez a program Vista kompatibilis, úgyhogy talán nem 6-os C++-al kellene próbálkozni, hanem C++ 2008-al.

Én kérek elnézést!

(#349) skylinelaca


skylinelaca
senior tag

Sziasztok! Lenne egy kis problémám Multi theft auto San Andreas.nevű programmal. Feltelepítettem, inditanám el, bejön egy kis load ablak, fekete képernyő egy windows hiba hang , és ez a hibaüzenet jön ki---> http://kepfeltoltes.hu/080824/mta_www.kepfeltoltes.hu_.jpg

valaki tudna nekem megoldást mondani vagy elmondani hogy mi a gond? Előre is köszi a válaszokat!

Laca

Üdv: Laca

(#350) ArchElf válasza skylinelaca (#349) üzenetére


ArchElf
addikt

LOL, gondolom rossz a CRACK. Nem hiszem, hogy a lemezre került eredeti programot debug módban fordították volna :)

AE

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

Copyright © 2000-2024 PROHARDVER Informatikai Kft.