kezdő kérdések

 ( Anonymous | 2004. május 30., vasárnap - 19:46 )

kezdő kérdések

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

[quote:8f5e49e31c="fricci"][quote:8f5e49e31c="kos"]

Add meg a -lm opciot forditaskor (kis "L", nem pedig nagy "i" az elso betu), ami hozzaveszi a math libraryt, es akkor mar meg fogja talalni a fuggvenyt.

Udv,
KoS[/quote:8f5e49e31c]

Működik...köszönöm szépen. El tudnád magyarázni mit jelent pontosan mit jelent ez az -lm paraméter (man cc-ben nem találtam semmit erre vonatkozóan)[/quote:8f5e49e31c]

Nem akarok melyebben belemaszni a dologba, de egy rovid atfogo bemutatot osszehozok neked. Ha hosszabb ideig fogsz Linux alatt programozni, ugyis megtanulod oket...

Szoval a -l parameter azt mondja meg a forditonak hogy milyen library-t adjon hozza a forditashoz (a library-kban vannak benne a megfelelo fuggveny implementaciok).
Ha belenezel a /usr/lib/ konyvtarba, egy csomo "lib"-bel kezdodo es ".a"-ra vegzodo fajlt (library-t) talalsz. Ezeket lehet hozzaszerkeszteni a programodhoz (neked az elozo problemadhoz a libm.a-ra volt szukseged).
Ha pl OpenGL-es programot forditasz es a libGLU.a-ra van szukseged, akkor a -lGLU opciot adod meg (tehat lehagyod a "lib"-et az elejerol es a ".a"-t a vegerol ez ezt irod kozvetlenul a "-l" kapcsolo utan).
Ha valami olyan library-t akarsz hozzaszerkeszteni a programodhoz, ami nem a szabvanyos helyen van (/usr/lib) akkor a -L opciot is meg kell adnod ahhoz hogy a fordito megtalaja, pl. -L/home/en/libek/

A /usr/lib -ben talalhato "lib"-bel kezdodo es ".so"-ra vegzodo fajlok dinamikus konyvtarak, ez viszont mar egy masik tortenet.

Udv,
KoS

Sziasztok!

Most kezdtem c++-t tanulni, és gondolom elég kezdő kéréseim vannak, de legalább sok.

1, mire jó az #include<string> és az <iomanip>? Úgy vettem észre akkor kell, ha osztály is van, de nem tudom mit csinál.

2,x>>dx és x.get(dx) között mi a különbség? az x>>dx mintha nem kezelné a [b:6a7f407445]char[/b:6a7f407445]-t, de akkor mi értelme van?

3,getline(f, sor, '\n'). Ez asszem beolvassa a következő sort, és elrakja a "sor" változóba, de nem tudom hogy mi micsoda benne.

4,Van egy függvényem, mondjuk "beolvas". Ha később hivatkozom rá, akkor " beolvas x ("inp.txt"); "-t írok, de mit csinál az x?

5, És hogy lehet elérni, hogy az "inp.txt" helyett valami (korábban bekért) név legyen?

Köszi,

erdész

Én még nem programoztam c++ -ban, de mi lenne, ha előbb C-ben kezdenél??? Ezek még egy C -t sem tanuló emberke kérdéseihez hasonlítanak... (de a topic cím az jó... :) )
Mellesleg pár perc, és VMiklos segít. (elég szorgalmas a fickó... :) )

igaz én C-ben tudok programozni de azért megpróbálok válaszolni valamire.
[quote:9475eba56c="erdész"]1, mire jó az #include<string> és az <iomanip>? Úgy vettem észre akkor kell, ha osztály is van, de nem tudom mit csinál.
[/quote:9475eba56c]
Az #include <string> az igazabol #include <[u:9475eba56c]headerfile[/u:9475eba56c]> ami annyit hogy a [u:9475eba56c]headerfile[/u:9475eba56c] tartalmát beírja a programba (a preprocessor). Ezek segítségével tudsz különböző föggvényeket kezelni és ...
[quote:9475eba56c="erdész"]
5, És hogy lehet elérni, hogy az "inp.txt" helyett valami (korábban bekért) név legyen?[/quote:9475eba56c]
ezt hogy érted?

itt egy kommentározott kis példaprogi: [code:1:9a5723a199]using namespace std;
#include <string> //hasznalhatod a string osztalyt a fuggvenyeivel
#include <iostream> //kimenet es bemenet : cout es cin
#include <fstream> //file ki- es bemenet

void beolvas(string s){
ifstream infile; //input file stream valtozo
infile.open(s.c_str()); //megnyitom a file-t (C stilusu string kell neki)
string ss;
while (infile>>ss){ // amig csak lehet olvasni
// beolvasok egy stringet a file-ba
cout<<ss<<'\n'; //kiirom, meg egy uj sor karaktert
}
infile.close(); // file lezarasa
}

int main(void){
string s;
cin>>s; //beolvasom a konzolrol a file nevet
beolvas(s);
return 0; //minden rendben, vege a proginak
}
[/code:1:9a5723a199]

De ha ilyen kérdéseid vannak, akkor inkább előtte el kéne kezdeni tanulni. Vagy ha olyan vakmerő vagy, hogy forrásból akarod megtanulni a nyelvet, akkor minden tiszteletem a tied. :D

4. beolvas x ("inp.txt"); szerintem ez hibás. Nem inkább valami x.beolvas("inp.txt")-t akartál írni?

3. beolvas f-ből sor-ba (string) a sor végéig ('\n'). Ha a fenti kis programot lefuttatod, akkor láthatod, hogy stringet az első szóközig olvassa a >> operátor.

2. A második egy karaktert olvas be, míg az első dx-nek megfelelő típust (mert túl van terhelve a >> operátor)

1. Definíciókat illeszt be. Így tudod használni egy másik file-ban definiált konstansokat, függvényeket, stb. Így lehet használni az open, vagy a close függvényt is, hiszen a file-kezelés nem része a nyelvnek, hanem külön vannak megvalósítva, definíciójuk az fstream.h-ban van.

Amúgy nyugodtan tanulhatsz C++-t a C ismerete nélkül. A kettő csak szintaktikájában hasonló, a problémák megközelítésében teljesen eltérőek. És két különböző programozási nyelv, különböző hozzáállást igényelnek, különböző programozói szemléletet. Ha megtanultad a C++-t, akkor viszont már a C egy részét is tudni fogod, de még nem leszel C programozó.

Szerintem egy valamilyen leírás vagy könyv elolvasásával kezdd, mert nagyon sok szintaktikai buktató és trükk van a C++-ban. Nem törekedtek arra, hogy a hibákat a szintaktika szintjére hozzák fel.

Hali,

arról lenne szó, hogy szeretnék programozni tanulni, teljesen magamtól, autodidakta módon, csak úgy mert miért ne, de persze nem cél nélkül.

Nem vagyok informatikus, és nem is szeretnék az lenni. Viszont ha az ember megtanulja _a programozást_, a logikáját, a gondolkodását, utána már könnyebben át tud állni egy másik nyelvre, mintha mindent előről kezdene. Gondolom én.

Most arra lennék kíváncsi, hogy nagyobb vállalatoknál, nem annyira mint informatikus-, inkább mint villamosmérnökként dolgozó arcok hogy látják, mit érdemes tanulni, milyen szinten.

A Java és a C# egyaránt lehet platformfüggetlen, ugyebár, és úgy tudom, eléggé jó nyelvek első nyelvnek is.
A C a Linux miatt lenne fontos, C++-ra nem tudom mennyire érdemes átmászni (de ha Java meg C#, akkor már ez is OOp), a Python pedig csak egyszerűen szimpatikus. A PHP és SQL meg marha sok helyre kéne.

Szóval ki mit javasolna első, majd második nyelvnek, mi az ami must-have, mi az ami felejtős... és ami fontos, nekem könyvcímek kellenének még :) mivel eddig még csak Pascalt meg C++ -t tanultam, minimális szinten, és tényleg most kéne megtanulnom _mindent_, ergo nagyon fontos lenne, hogy jó, sőt a legjobb könyvből tanuljak.

Fejlesztési környezet... azt meg majd még meglássuk'.

Thx2u!

Értem...köszönöm szépen...

C/C++ Referenciakönyv

Herbert Schildt több tucat C/C++ könyv szerzője, hatalmas tapasztalattal rendelkezik a programozás terén. Egyetlen programozó könyvtárából sem hiányozhat egy jól használható referenciakönyv, hiszen az összes parancs formátumát lehetetlen fejben tartani. Ez a könyv az ANSI C és a szabványos C++ nyelv elemeit veszi sorba. Az egyes parancsok, függvények magyarázatai segítenek abban, hogy ha még soha nem találkoztunk az adott nyelvi elemmel, akkor is biztonságosan tudjuk használni. Az egyes parancsok témakörönként is csoportosítva vannak, így akkor is könnyen megtaláljuk őket, ha nem ismerjük a pontos elnevezést.

Szerző: Herbert Schildt
Kiadó: Panem
Kiadva: 1998
Méret:
Oldal: 332
Nyelv: Magyar
ISBN:9635451784

:) ott volt oldal

[quote:f14599d7fa="dikki"]és ami fontos, nekem könyvcímek kellenének még :) mivel eddig még csak Pascalt meg C++ -t tanultam, minimális szinten, és tényleg most kéne megtanulnom _mindent_, ergo nagyon fontos lenne, hogy jó, sőt a legjobb könyvből tanuljak.

[/quote:f14599d7fa]
En szemely szerint ezt ajanlom, foleg assembler-el foglalakozik, de ertheto. Ha ezen atragod magad, akkor mar sokminden meg fog vilagososdni elotted:

[url=http://savannah.nongnu.org/download/pgubook/]Programming from the ground up[/url]

Köszönöm a sok választ, nem is számítottam ennyire, főleg ilyen gyorsan. (Az az igazság, hogy jövő héten vizsgázom c++-ból, persze csak az első félév, és mivel az utolsó pár órán nem voltam benn, :oops: egy kicsit elvesztettem a fonalat a végén. Most azt csinálom, hogy megpróbálom leírt forrásokból megérteni a programokat aztán megírni önállóan, és itt jönnek elő a kérdések.)

Akkor a válaszok a válaszokra:

4,beolvas x ("inp.txt") és x.beolvas("inp.txt") is jó úgy tudom. (a függvény egy osztályon belül volt) Az x alapján az inp.txt-re lehet hivatkozni?

5,mondjuk bekérek egy "nev" változót, és x.beolvas("nev"). Ezt így próbálgattam, és lefordult, csak nem csinált semmit.

Köszi mindenkinek a válaszokat, majd még jönnek kérdések úgy érzem.... :)

Én C nyelven tanulok programozni több kevesebb sikerrel. A nyelvet már naggyából sikerült is megtatulni. Főleg a hálózati programozás és a titkosítás érdekel, a gond csak az hogy az elöbbihez eléggé sok oprendszer támogatás kell. Tudom hogy vannak kitűnő könyvek a linuxAPI-ról (már nekem is van ilyen) de a milió eggy fügvényt környezeti változót és ezeknek paramétereit elég nehéz fejben tartani ezért elkeztem kerezsgélni developent environmentet. :arrow: Találtam a gnu.org-on egy a leírása alapján megfelelőnek tőnőt (GNU/EDMA) de ezt jelenleg nem lehet letölteni. Kérek mindenkit akinek ilyesmiben nagyobb tapasztalata van küldjön valami használható progit. Elég kezdő vagyok pl.: hardverre optimalizálni még száz évig nem fogok ilyesmi funkciók csak az életemet bonyolítanák viszont jo debug funkciók segítségemre lennének.

előre is kösz mindenkinek.

[quote:74cd1b562e="Anonymous"]C/C++ Referenciakönyv

Herbert Schildt több tucat C/C++ könyv szerzője, hatalmas tapasztalattal rendelkezik a programozás terén. Egyetlen programozó könyvtárából sem hiányozhat egy jól használható referenciakönyv, hiszen az összes parancs formátumát lehetetlen fejben tartani. Ez a könyv az ANSI C és a szabványos C++ nyelv elemeit veszi sorba. Az egyes parancsok, függvények magyarázatai segítenek abban, hogy ha még soha nem találkoztunk az adott nyelvi elemmel, akkor is biztonságosan tudjuk használni. Az egyes parancsok témakörönként is csoportosítva vannak, így akkor is könnyen megtaláljuk őket, ha nem ismerjük a pontos elnevezést.

Szerző: Herbert Schildt
Kiadó: Panem
Kiadva: 1998
Méret:
Oldal: 332
Nyelv: Magyar
ISBN:9635451784

:) ott volt oldal[/quote:74cd1b562e]

Én ezt a könyvet használom mind a mai napig. Szerintem nem
kezdőknek való.

Hi!

Talan nem kellen a "nev"-et idezojelbe tenni. Ugyanis akkor string konstansnak veszi a fordito, es nem valtozonak.

By(t)e
TBS::Antiemes

_Nem_ kezdőknek való? Öhh. :)

Sb: meg fogom nézni, bár engem inkább papír könyvek érdekelnek, nem akarok/tudok mindig gép előtt ülni, néha inkább csak úgy olvasgatnék, pl. úton hazafelé.. :)

5.kérdés sztornó, itt volt végig az orrom előtt, meg a példaprogramban is, csak vak vagyok.

A könyvnek utánanéztem, és nagyon lehúzzák itt:
[url]http://www.prog.hu/tarsalgo/?fid=1985&ec=2[/url]

Hi!

A prog.hu velemenyere nem nagyon kell adni.

By(t)e
TBS::Antiemes

[quote:922225c2d3="dikki"]
Sb: meg fogom nézni, bár engem inkább papír könyvek érdekelnek, nem akarok/tudok mindig gép előtt ülni, néha inkább csak úgy olvasgatnék, pl. úton hazafelé.. :)[/quote:922225c2d3]

IMHO nyomtatsd ki. gyenge minosegbe nem is fog olyan sokba kerulni. Amugy szerintem ezt ugy kell olvasni, hogy ott ulsz a gep mellett es ki is probalod amit olvastal, egyebkent (majdnem) monitorrahanyt borso az egessz. :)

[quote:8516188661="fricci"]Értem...köszönöm szépen...[/quote:8516188661]

Szivesen :wink:
Egyebkent ezzel a "-lm"-mel en is szivtam kezdo Linuxos koromban, ugyhogy ne izgulj, lehetsz me'g nagy hacker :wink:
(bar en me'g nem tartom magam annak)

Hello! Lenne egy nagy problámám. Egy totál egyszerű programom van, ami a következő képpen néz ki:

[code:1:d6bfcfd5d2]
#include <stdio.h>
#include <math.h>

int main()
{
float b;
b = sqrt(4);
printf("%f", b);
return 0;
}
[/code:1:d6bfcfd5d2]

Linux alatt próbálom lefodítani, folyamatosan a következő hibaüzit adja:

/home/fricci/tesszt/tesszt/main.c:8: undefined reference to `sqrt'

és leáll. Próbáltam Debian és AIX alatt is.
Windows alatt (Dev-Cpp) müködik hibátlanul. Biztos valami marhaságot rontok el, de egyszerűen nem jövök rá, mi az...

[quote:f32be8e3f5="fricci"]Hello! Lenne egy nagy problámám. Egy totál egyszerű programom van, ami a következő képpen néz ki:

[code:1:f32be8e3f5]
#include <stdio.h>
#include <math.h>

int main()
{
float b;
b = sqrt(4);
printf("%f", b);
return 0;
}
[/code:1:f32be8e3f5]

Linux alatt próbálom lefodítani, folyamatosan a következő hibaüzit adja:

/home/fricci/tesszt/tesszt/main.c:8: undefined reference to `sqrt'

[/quote:f32be8e3f5]

Add meg a -lm opciot forditaskor (kis "L", nem pedig nagy "i" az elso betu), ami hozzaveszi a math libraryt, es akkor mar meg fogja talalni a fuggvenyt.

Udv,
KoS

[quote:d1f9554d9c="kos"][quote:d1f9554d9c="fricci"]Hello! Lenne egy nagy problámám. Egy totál egyszerű programom van, ami a következő képpen néz ki:

[code:1:d1f9554d9c]
#include <stdio.h>
#include <math.h>

int main()
{
float b;
b = sqrt(4);
printf("%f", b);
return 0;
}
[/code:1:d1f9554d9c]

Linux alatt próbálom lefodítani, folyamatosan a következő hibaüzit adja:

/home/fricci/tesszt/tesszt/main.c:8: undefined reference to `sqrt'

[/quote:d1f9554d9c]

Add meg a -lm opciot forditaskor (kis "L", nem pedig nagy "i" az elso betu), ami hozzaveszi a math libraryt, es akkor mar meg fogja talalni a fuggvenyt.

Udv,
KoS[/quote:d1f9554d9c]

Működik...köszönöm szépen. El tudnád magyarázni mit jelent pontosan mit jelent ez az -lm paraméter (man cc-ben nem találtam semmit erre vonatkozóan)