Aha. Értem. Kösz srácok.
Amúgy egy jegyzetből néztem ki, és ott nem volt lefoglalva hely neki.
Mindenesetre kösz.
Aha. Értem. Kösz srácok.
Amúgy egy jegyzetből néztem ki, és ott nem volt lefoglalva hely neki.
Mindenesetre kösz.
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 ]
#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 ]
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
ha igy irom, hogy:
int *m;
m= new int[10];
akkor se jo...
Mi nem jó? Nem fordul? Vagy nem jól működik?
Thank you to god for making me an atheist
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 ]
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...
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
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
igen, kozben mar erre rajottem, de ha tizet irok a sizeof -os resz helyere, akkor se megy...
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...
[ Szerkesztve ]
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 ]
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 ]
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
koszonom szepen mindkettotoknek, igy remek..., akkor meg megmaradt az esely, hogy holnap reggelre elkeszulok...
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!
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!”
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?
..
annyira éreztem...
persze g++ hiba nélkül, helyesen megcsinálja
kérdésem továbbra is áll, mi lehet VSnek a baja ?
..
Meg tudná valaki pls mondani, hogy hogyan tudom megszámolni, hogy egy fájlból beolvasott szöveg hány sorból áll?
Í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 -
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!
A destruktornak csak a prototípusa szerepel, nem definiáltad.
Thank you to god for making me an atheist
Köszönöm. Az ember néha a legnyilvánvalóbb hibát nézi el.
Én kérek elnézést!
Ü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?
Mindig talál valami hibát. Kezdem feladni.
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
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 ]
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
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ó.
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
Köszi!
Olyan nincs, hogy valami nem sörbontó.
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ó.
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!
Í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
[ Szerkesztve ]
Olyan nincs, hogy valami nem sörbontó.
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!
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ó.
“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”
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!
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!”
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!
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!”
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!
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
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:
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
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=/
Gyorsabban írtam ide mint, ahogy gondolkodtam volna. a problémát nézzük megnemtörténtnek.
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!
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
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]
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!