Marky18 Posted Április 22, 2009 Share Posted Április 22, 2009 Igen, de egyszerűbb egy kezdőnek szerintem Annak, aki nem akar "hipermodern internetes FPS" játékot fejleszteni, annak tökéletes szerintem. Idézés Link to comment Share on other sites More sharing options...
ZTamás Posted Április 22, 2009 Share Posted Április 22, 2009 Én nem akarok. Mivel kezdő vagyok, ezen tanulgatok valamit, és ha már lesz valami fogalmam a dolgokról, akkor nekilátok a C nek is ha lesz rá szükségem. Idézés Link to comment Share on other sites More sharing options...
davidka004 Posted Május 19, 2009 Share Posted Május 19, 2009 Valaki aki ráér megtudná nézni, hogy mi lehet a gondja a programnak? #include<iostream> #include<iomanip> #include<fstream> #include<ctime> using namespace std; struct kockazo { char nev[20]; int dob[6]; }; int main() { setlocale(LC_ALL,"HUN"); kockazo kedd[2]; int ossz=0,ossz1=0; cin.getline(kedd[1].nev,20); for(int i=0;i<6;i++) { cout<<"Kerem a(z) "<<i+1<<". dobást: "; cin>>kedd[1].dob; while(kedd[1].dob<1 || kedd[1].dob>6) { cout<<"Hibás, csak 1-6 lehet, kérem újra! "; cin>>kedd[1].dob; }; } ifstream be("kockazo.txt"); if(!be) { cerr<<"Nem találom a fájlt \n"; system("pause"); exit(1); } be.getline(kedd[2].nev,20); for(int i=0;i<6;i++) kedd[2].dob=rand()%6+1; char a; fflush(stdin); cin>>a; if(stdin) { system("cls"); cout<<kedd[1].nev<<" dobásai: \n"; for(int j=0;j<6;j++) { cout<<j+1<<". dobás: "<<kedd[1].dob[j]<<endl; ossz=ossz+kedd[1].dob[j]; } cout<<"összesen: "<<ossz<<endl; cout<<kedd[2].nev<<" dobásai: \n"; for(int j=0;j<6;j++) { cout<<j+1<<". dobás: "<<kedd[2].dob[j]<<endl; ossz1=ossz1+kedd[2].dob[j]; } cout<<"összesen: "<<ossz1<<endl; ofstream ki("nyert.txt"); if(ossz>ossz1) { cout<<"Nyert: "<<kedd[1].nev; ki<<kedd[1].nev; } else { if(ossz<ossz1) { cout<<"Nyert: "<<kedd[2].nev; ki<<kedd[2].nev; } else { cout<<"Dontetlen"; ki<<"Dontetlen"; } } } cout<<endl; system("pause"); return 0; } A visual studio 2005 ezt írja ki mikor futtatom: http://kepfeltolto.hu/i/?241144&t=img Mi lehet a gond? Vagy a Vista miatt van? Idézés Link to comment Share on other sites More sharing options...
Marky18 Posted Május 19, 2009 Share Posted Május 19, 2009 Nem vagyok otthon a C++-ban, de szerintem a Vista miatt van ez. Van valami olyan utasítás, amit nem enged már a Vista. Pl. a real mode progik sem futnak normálisan a Vistan, szóval szerintem ez elképzelhető. Majd jön egy nálam nagyobb szaki és többet tud erről Idézés Link to comment Share on other sites More sharing options...
SixHouse Posted Május 20, 2009 Share Posted Május 20, 2009 Javíts ki ha tévednék, egy egyszerű példa:char f[2]; ilyenkor elérhető memória címek: f[0] = 'j'; f[1] = 'ó'; szal ha ilyenkor f[2] re hivatkozol és az pont egy protected(most csak mondtam egy példát) memória cím, akkor jönnek az acces vilation-ok. szal kedd[0] és kedd[1] Nézd meg hátha Idézés Link to comment Share on other sites More sharing options...
davidka004 Posted Május 20, 2009 Share Posted Május 20, 2009 Köszi, de már nincs fönt a Visual Studio(win reinstall volt) de a tanáromnak mutattam és szerinte hiányzik valahonnan egy fflush és az kavar be. Ja meg írtunk ma egy ZH-t. 52 pontból 41 lett és ezt hozzáadva a félév közben szerzett pontokhoz meglett év végén a 3-as. Idézés Link to comment Share on other sites More sharing options...
SixHouse Posted Május 20, 2009 Share Posted Május 20, 2009 Attól nem acces violationt kellene hogy kapj. Akkor csak rossz eredményt kapnál mert a változód a következő ciklusban ugyanazt az értéket kapná meg ami az előző bekérésnél/olvasáskor volt. Címzéshibára tudok gondolni, csak az a fura hogy dev c++ ban tökéletesen fut . Idézés Link to comment Share on other sites More sharing options...
zokny Posted Május 24, 2009 Share Posted Május 24, 2009 sziasztok! én is egy nagy kéréssel fordulok hozzátok. nagyon kezdő vagyok c-ben és kaptam egy házit jegyre és elég bonyolultnak tűnik nekem,remélem tudtok segíteni.fontos lenne mert ezen múlik az évvégi jegyem.ja,és szerdára kéne beadnom. tehát a feladat: egy tesztet írt 3 tanuló.a teszt 15kérdésből állt,minden kérdésre 4 válasz volt,de csak 1 volt a helyes.a helyes megoldást egy meglévő dokumentum tartalmazza szóközökkel elválasztva(megoldas.txt:).a tanuló válaszait egy másik txt tartalmazza a minta alapján Pokol Sára 1 3 2 1 4 3 2 1 2 3 3 2 1 3 4 Szegfű Olivér 3 2 3 4 1 2 2 3 1 2 4 1 2 2 4 Balogi Jolán 2 4 3 3 3 2 1 4 2 4 2 4 3 2 2 1.kiíratni a megoldást tartalmazó állományt 2.kérjük be a tanuló nevét és írassuk ki a válaszait 3.írassuk ki h volt e 15 helyes válaszos tanuló 4.volt e min 13 helyes válaszos 5.bekérni a feladat sorszámát és kiíratni h kik válaszolt rá helyesen 6. kiírni a nevet és a helyes válaszok számát 7.kiíratni a legrosszabb válaszadó nevét 8készíteni egy statisztika.txt-t amiben van: -kérdésenként hány helyes válasz -átlagosan hány helyes válasz -hány fő teljesített 60% felett előre is köszönök minden segítséget Idézés Link to comment Share on other sites More sharing options...
Marky18 Posted Május 25, 2009 Share Posted Május 25, 2009 Be kell olvasni a megoldásokat egy tömbbe, a tanulók válaszait és össze kell hasonlítgatni. Ne idegeskedj. A kiíratást gondolom meg tudod csinálni. Változókban tárolod a legjobb és legrosszabb válaszadót. Egyedül a 8-as a nehezebb szerintem, de az sem lehetetlen. Mivel nem ismerem a C-t, ezért csak így tudtam elmagyarázni. Bontsd le a feladatot, először csak az elsővel foglalkozz, amíg nem működik az hibátlanul. Utána jöhet a következő Idézés Link to comment Share on other sites More sharing options...
SixHouse Posted Május 25, 2009 Share Posted Május 25, 2009 Nem sok kedvem van nekiülni. Mi az ami nem megy? Jah amúgy a a tanuló válaszait egy másik txt tartalmazza a minta alapján bekérjük a tanuló nevét és az lesz a txt neve is? szerk:jó korán keltél barátom XD Idézés Link to comment Share on other sites More sharing options...
zokny Posted Május 25, 2009 Share Posted Május 25, 2009 nem, a txt neve "teszt" a tartalma meg maga a minta.amúgy már a másodiknál megakadtam:S Idézés Link to comment Share on other sites More sharing options...
SixHouse Posted Május 25, 2009 Share Posted Május 25, 2009 #include <stdio.h> #include <stdlib.h> #include <string.h> class tanulo{ public: int oszt[15]; char *nev; void nev_ert(char *s, int jegy[15]){ int i; nev = (char*) malloc (sizeof(char) * strlen(s)); strcpy(nev,s); for (i = 0; i < 15; i++) oszt[i] = jegy[i]; } }; void kiirat(tanulo x){ int i; printf("%s\n",x.nev); for (i = 0; i < 15; i++) { printf("%d",x.oszt[i]); (i == 14) ? printf("\n") : printf(" "); } } int* valaszok_be(FILE *f){ int i; int *v = (int*) malloc (sizeof(int) * 15); fscanf(f,"%d",&v[0]); for(i = 1; i < 15; i++) fscanf(f," %d",&v[i]); return v; } void volte(int limit, tanulo x, int *jok){ int counter = 0; int j; for (j = 0; j < 15; j++) if (jok[j] == x.oszt[j]) counter++; if (counter >= limit) printf("%s: %d helyes választ adott\n",x.nev,counter); return; } void helyesen(int sz, int *jok, tanulo *tanulok){ int i,k = 0; for (i = 0; i < 3; i++){ if (tanulok[i].oszt[sz] == jok[sz]) { k++; printf("Helyes válasz: %s\n",tanulok[i].nev);} } if (k == 0) printf("Nem volt helyes válaszadó!\n"); } int helyesV(tanulo x, int *jok){ int i,counter = 0; for (i = 0; i < 15; i++){ if (x.oszt[i] == jok[i]) counter++; } return counter; } int main(){ int i,d; int *jovalaszok, *valaszok; char nev[256]; char k; tanulo tanulok[3]; FILE *f = fopen("teszt.txt","r"); for (i = 0; i < 3; i++){ d = 0; do{ k = fgetc(f); if (k != '\n')nev[d++] = k; nev[d] = '\0'; }while ((k != '\n') && (k != '\0')); valaszok = valaszok_be(f); tanulok[i].nev_ert(nev,valaszok); fgetc(f);//megálltunk a sor végén ezért átugorjuk még az utsó karaktert } fclose(f); f = fopen("megoldas.txt","r"); jovalaszok = valaszok_be(f); fclose(f); for (i= 0; i< 15; i++) { printf("%d",jovalaszok[i]); (i == 14) ? printf("\n") : printf(" "); } for (i = 0; i < 3; i++) kiirat(tanulok[i]); for (i = 0; i < 3; i++) volte(15,tanulok[i],jovalaszok); for (i = 0; i < 3; i++) volte(13,tanulok[i],jovalaszok); fflush(stdin); printf("Feladat sorszána: "); scanf("%d",&d); helyesen((d-1),jovalaszok,tanulok); for (i = 0; i < 3; i++) { printf("%s: %d\n",tanulok[i].nev,helyesV(tanulok[i],jovalaszok)); } system("pause"); free(jovalaszok); free(valaszok); return 0; } Unatkoztam, ez alapján már a statot meg tudod csinálni sztem. Kipróbáltam de tüzetesen nem teszteltem le.(értsd lehetnek benne hibák) A puding próbája hogy megeszik na majd írsz most dolgom van. Tejcsokoládés csőtészta. Idézés Link to comment Share on other sites More sharing options...
zokny Posted Május 25, 2009 Share Posted Május 25, 2009 nagyonszépenköszönöm, hálám a sírodig üldözni fog,de ezt ne vedd fenyegetésnek:) Majd este meglesem és próbálkozok vele egy jósokáig,csak most rohannom kell melózni. köszi mégegyszer Idézés Link to comment Share on other sites More sharing options...
zokny Posted Május 25, 2009 Share Posted Május 25, 2009 Kedves SixHouse!Nagyon rendes vagy,csak az a gond h túlságosan tudsz:D igazából sok olyan dolog van abban amit írtál amit még nem is vettünk.amúgy már a probléma megoldva,mert volt egy rendes oszt.társam aki segített,és minden happy:) ha valakit érdekel,a kódot berakhatom,bár kétlem h bárkit is érdekel:D Idézés Link to comment Share on other sites More sharing options...
SixHouse Posted Május 25, 2009 Share Posted Május 25, 2009 ou hát jó pedig tök nagy örömmel írtam na akkor jó ha minden ok jó lenne nagyon tudni, de azért köszi de megnézném a kódot amivel megoldottátok, ha szabad (csak puszta kíváncsiság). csoki Idézés Link to comment Share on other sites More sharing options...
zokny Posted Május 25, 2009 Share Posted Május 25, 2009 Na,akkor berakom egy kis kommenttel:) a hetedik feladatig kész #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include <conio.h> #define M 20 /*------------------------------------------------------------------------------ Létre hozunk egy recordot ... ez elsõként a felhasználó nevét fogja tárolni, mellé a hozzá tartozó teszt megoldásokat, valamint a legutolsó elem a jó megoldások számát tárolja el. A recorddal egy tömböt hozunk létre. Ez arra, hogy különbözõ típusú (string, integer) változókat tudjunk egy tömbben tárolni. A létrehozott tömbönk a fent definiált M (20) elemû lesz. ------------------------------------------------------------------------------*/ struct teszt{ char nev[30]; int a[16]; } t[M]; int megoldas[15]; // eltárolom a megoldásokat void elsofeladat(); void masodikfeladat(); void harmadikfeladat(); void negyedikfeladat(); void otodikfeladat(); void hatodikfeladat(); void hetedikfeladat(); void main() { randomize(); elsofeladat(); masodikfeladat(); harmadikfeladat(); negyedikfeladat(); otodikfeladat(); hatodikfeladat(); hetedikfeladat(); getch(); } /*------------------------------------------------------------------------------ Lusták vagyunk, ezért soron kívül legeneráljuk a megoldas.txt és az adat.txt fájlokat. Mivel ezt csak egyszer kell használni a továbbiakban kikommentelem :) ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ void general() { int i , j; FILE *f , *m; m=fopen("megoldas.txt","w+"); for (i = 0; i <= 14; i++) { fprintf(f,"%d ", random(4)+1); } fclose(m); f=fopen("adat.txt","w+"); for (j = 0; j <= M-1; j++) { for (i = 0; i <= 14; i++) { fprintf(f,"%d ", random(4)+1); } fprintf(f,"\n"); } } ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ 1. Kiiratni a képernyõre a tanulók válaszait. ------------------------------------------------------------------------------*/ void elsofeladat() { int i , j , jo = 0; char anev[30]; FILE *f , *m; m=fopen("megoldas.txt", "rt"); for (i = 0; i <= 14; i++) { fscanf(m,"%d", &megoldas[i]); // a megoldásokat beolvassuk a megoldas tömbbe. } fclose(m); f=fopen("adat.txt", "rt"); for (i = 0; i <= M-1; i++) { fscanf(f, "%s", &anev); // az anev változóba beolvasom a fájl elsõ stringjét strcpy(t[i].nev, anev); // lemásolom ezt a stringet a rekordom elsõ elemébe strcat(t[i].nev, " "); // a lemásolt adathoz hozzáfûzök egy szóközt fscanf(f, "%s", &anev); // az anev változóba beolvasom a fájl második stringjét strcat(t[i].nev, anev); // hozzáfûzöm ezt a stringet a rekordom elsõ eleméhez for (j = 0; j <= 14; j++) { // egy másik ciklussal beolvasom a 15 teszt eredményét az a tömbbe. fscanf(f,"%d", &t[i].a[j]); // beirom a beolvasott értéket az a tömbbe if (t[i].a[j] == megoldas[j]) { // he ez a beolvasott érték megeegyezik a megoldás azonos feladatának értékével jo++; // növelem a jo -t 1-gyel } } t[i].a[15]=jo; // beirom az a tombbe a jo-t. jo = 0; // jo-t lenullázom, hogy legközelebb is lehessen vele számolni } fclose(f); // most ki fogom irni a fejlecet! textcolor(8); cprintf("Tanulo neve"); printf("\t"); for (j = 1; j <= 15; j++) { // ciklus segítségével a feladat sorszámáz cprintf("%3d",j); } cprintf(" Jok"); // és végül, hogy jok, mert ott vannak a jó megoldások elmentve printf("\n"); // fejlec vege, most jonnek az adatok for (i = 0; i <= M-1; i++) { printf("%s\t", t[i].nev); // kiírom a nevet. for (j = 0; j <= 15; j++) { printf("%3d", t[i].a[j]); //ciklus segítségével kiírom an évhez tartozó eredményeket } printf("\n"); // sort emelek, a többi tanulonak } } /*------------------------------------------------------------------------------ 2. Bekérni egy tanuló nevét és kiíratni csak az õ válaszait. ------------------------------------------------------------------------------*/ void masodikfeladat() { int i = 0 , j , db = 0; char anev[30]; char neve[30]; printf("\ntanulo neve: "); gets(anev); // bekérem a tanuló nevét "aneve" változóba strcpy(neve,anev); // átmásolom a szóköz miatt... for (i = 0; i <= M-1; i++) { if (strcmp(t[i].nev,neve)==0) { // összehasonlítom a bekértet a tárolt nevekkel .. ha egyezik: printf("%s\t", t[i].nev); // kiírom a nevet. for (j = 0; j <= 14; j++) { printf("%3d", t[i].a[j]); //ciklus segítségével kiírom an évhez tartozó eredményeket } printf("\n"); // sort emelek, mert több tanulonak lehet ugyanaz a neve db++; // novelem a db-t. } } if (db==0) { // ha db=0, akkor nem volt a névnek megfelelõ tanuló printf("Nincs ilyen nevu tanulo az iskolaban!"); } printf("\n"); } /*------------------------------------------------------------------------------ 3. Kiírni h volt-e olyan tanuló, akinek mind a 15 válasza helyes. ------------------------------------------------------------------------------*/ void harmadikfeladat() { int i = 0; while (t[i].a[15]!=15 && i<=M-1) { // az eltarolt "jok" nem egyenlo 15-tel, akkor ciklusban marad, tehát növeli az i-t a megadott korláti i++; } if (i<M) { // ha volt 15 jo, akkor i kisebb lesz M-nél, ezért kilép .. tehát csak ki kell írnunk: printf("volt olyan tanulo, aki mindenre helyesen valaszolt.\n"); } else { printf("nem volt mindenre helyesen valaszolo tanulo.\n"); } } /*------------------------------------------------------------------------------ 4. Kiíratni h volt-e olyan, akinek min 13 helyes válasza volt szerintem félre írtad a feladatot ... szerintem az a feladat, hogy: hányan válaszoltak legalább 13-ra helyesen :) szóval azt fogom megcsinálni ... ha tévednék, akkor csak az elõzõben egy feltételt kell átírni:) ------------------------------------------------------------------------------*/ void negyedikfeladat() { int i = 0 , db = 0; for (i = 0; i <= M-1; i++) { // ciklussal végig megyek az eltárolt adatokon if (t[i].a[16]>=13) { // ha a "jok" 13, vagy annal több, akkor db++; // db-t novelem. } } if (db==0) { // ha db = 0 akkor nem volt printf("nem volt semennyi tanulo.\n"); } else { // egyébként meg kiiratom db-t. printf("%d tanulo irt 13, vagy annal tobb pontot ero teszetet.\n", db); } } /*------------------------------------------------------------------------------ 5. Bekérni a feladat sorszámát és kiíratni h kik válaszoltak rá helyesen. ------------------------------------------------------------------------------*/ void otodikfeladat() { int i , j , ssz; printf("\nfeladat sorszama: "); scanf("%d",&ssz); // bekerem a feladat sorszamat if (ssz<1 || ssz>15) { printf("hibas szam\n"); } else { for (i = 0; i <= M-1; i++) { if (megoldas[ssz-1]==t[i].a[ssz-1]) { //ciklusban osszehasonlitom a megoldasban tarolt és a tanulok altal adott valaszt printf("%s\n", t[i].nev); // ha jó, kiírom a nevüket } } } } /*------------------------------------------------------------------------------ 6. Készíteni egy másik állományt amibe belekerülnek a tanulók neve és helyes válaszaik száma. ------------------------------------------------------------------------------*/ void hatodikfeladat() { int i; FILE *f; f=fopen("helyesvalasz.txt","w+"); for (i = 0; i <= M-1; i++) { fprintf(f,"%s: %d helyes valasz\n", t[i].nev , t[i].a[15] ); } fclose(f); } /*------------------------------------------------------------------------------ 7. Kiíratni a legrosszabb válaszadó(k nevét) ------------------------------------------------------------------------------*/ void hetedikfeladat() { int i , min ; min = t[0].a[15]; for (i = 0; i <= M-1; i++) { if (min>t[i].a[15]) { min = t[i].a[15]; } } printf("\nlegrosszabb valaszadok: \n"); for (i = 0; i <= M-1; i++) { if (t[i].a[15] == min) { printf("%s\n", t[i].nev); } } } Idézés Link to comment Share on other sites More sharing options...
SixHouse Posted Május 26, 2009 Share Posted Május 26, 2009 Huhú! nem sajnáljátok a billentyű leütéseket , először én is struktúrát akartam használni, de mégsem tettem . Sok sikert. csoki Idézés Link to comment Share on other sites More sharing options...
zokny Posted Június 9, 2009 Share Posted Június 9, 2009 Skacok! megint lenne egy kis problémám:Sholnapra kéne ijen indexvektoros rendezés csinálni minimummal de vhol elrontottam.Megtudná vki lesni h hol a hiba?remélem nem túl későn szóltam és előre is köszi! tehát a kód: #include <stdio.h> #include <stdlib.h> #include <time.h> void main() {int i,j,min,a[10],b[10]; clrscr(); randomize(); for (i = 0; i <= 9; i++) a[i]= random(100)+1; for (i = 0; i <= 9; i++) b[i]= i; for (i = 0; i <= 9; i++) printf("%d ",a[i]); while (i<=9){ for (i = 0; i <= 9; i++) { if (a[i]<min) { min=a[i];}} for (j = 0; j <= 9; j++) { b[j]=min; j=j++;}} printf("\n"); for (i = 0; i <= 9; i++) printf("%d ",a[b[i]]); getch();} Idézés Link to comment Share on other sites More sharing options...
SixHouse Posted Június 9, 2009 Share Posted Június 9, 2009 Nem tesztelem le de a while elé nem ártana egy i = 0; mert az előtte levő for ciklus 10 ig megy. ráadásul a while is az i változót használja mega for is... a j = j++ meg külön poén: j++ ennyi Idézés Link to comment Share on other sites More sharing options...
szilard5 Posted Június 24, 2009 Author Share Posted Június 24, 2009 Hali Ezt miért írhatja ki, amikor mindent úgy csináltam mint legutóbb, csak akkor lefordította, most pedig nem? Idézés Link to comment Share on other sites More sharing options...
SixHouse Posted Június 24, 2009 Share Posted Június 24, 2009 1: nem tudja megnyitni az iostream.h fájlt 2,3,4: ezek az első problémából adódnak, ugyanis az a fájl tartalmazza ezeket a függvényeket 5: a getchar pedgi azt hiszem az stdio.h-ban található (6: nem használod a deklarált változót semmire) Idézés Link to comment Share on other sites More sharing options...
szilard5 Posted Június 24, 2009 Author Share Posted Június 24, 2009 Ezekre szerény angol tudásommal is rájöttem. Csak azt nem értem miért. Idézés Link to comment Share on other sites More sharing options...
SixHouse Posted Június 24, 2009 Share Posted Június 24, 2009 Gondolom nincs jól beállítva a fordítóban az include könyvtár. Próbáld beállítani... több ötletem nincs Idézés Link to comment Share on other sites More sharing options...
seekoly Posted Július 4, 2009 Share Posted Július 4, 2009 Hali Ezt miért írhatja ki, amikor mindent úgy csináltam mint legutóbb, csak akkor lefordította, most pedig nem? próbáld meg csak szimplán az iostream-et inkludolni, tehát: #include Az std névtért importáltad? Idézés Link to comment Share on other sites More sharing options...
szilard5 Posted Július 4, 2009 Author Share Posted Július 4, 2009 Az std névtért importáltad? Ezt nem is értem, de nem. :S (akkor ez a baj?) Idézés Link to comment Share on other sites More sharing options...
seekoly Posted Július 5, 2009 Share Posted Július 5, 2009 van ilyen sor a programban: using namespace std enélkül nem használhatod csak minősítve a cin/cout neveket. Az include direktívában használt header nevekben pedig azért nem célszerű a .h-s nevet használni, mert ezek elavult, nem szabványos header állományok. C-s header-eket ugyan használhatsz C++-ban, de ezek csak a kompatibilitás miatt vannak benne a nyelvben, így a használatuk nem a legszebb kódot eredményezi. De ha már használod, akkor érdemes a C++-os verzióját használni, pl. stdio.h helyett, cstdio, stb. Idézés Link to comment Share on other sites More sharing options...
SixHouse Posted Július 5, 2009 Share Posted Július 5, 2009 nem célszerű a .h-s nevet használni, mert ezek elavult, nem szabványos Melyik szabványra gondolsz? Az ansi c -ben ez a szabványos és ez "központi" szabvány. (és "általában" ezzel a c++ szabványok kompatibilisek) c++ ban igaz végülis Itt egy kis segédlet amiből megnézheted seekoly javaslatát: http://e-oktat.pmmf.hu/webgui/www/uploads/images/1453/010-c-c-2.pdf Idézés Link to comment Share on other sites More sharing options...
seekoly Posted Július 6, 2009 Share Posted Július 6, 2009 Az ISO szabványra. Mikor a 80-as végén megalkották a C++-t, akkor a standard könyvtárak nevei .h-ra végződtek. A nyelv szabványosítása során azonban úgy döntöttek, hogy a könyvtárakban elhelyezett függvényeket az std névtérbe rakják, ami jó ötletnek volt, de a régi forráskódokat ezzel a lépéssel (szabványos C++ fordítóval) lehetletlen lett lefordítani. Ezért a régi könyvtárak, pl. a iostream.h ugyan felhasználhatók, de a szabvány szerint nem támogatottak => elavultak és a tartalmuk nincs benne az std névtérben. Ezért célszerű az új könyvtárakat használni, melyek szinte megegyeznek a régiekkel, de a tartalmuk az std névtérben található. Így a szabvány szerint a nyelv két részből áll, a nyelv magjából és egy standard könyvtárból. Mondjuk ehhez később újabb részek kapcsolódtak, pl. az STL, és a C standard könyvtáraknak egy módosított változata. Így használhatók a régi C könyvtárak pl. stdio.h, de ezek globálisak a programra nézve. Vagy használhatók az standard könyvtárban találhatók pl. cstdio. OK, hogy C++-ban lehet C programot írni, de az attól nem lesz C++. Mint ahogy C-ben is lehet C-szerű programot írni, de az attól nem lesz C pl. while( tomb[ i ] != 0 ) Amúgy C++-hot ajánlom az alábbi könyvet: http://www.research.att.com/~bs/3rd.html Esetleg pdf-ben megtalálható a guglin: http://www.google.hu/search?hl=hu&q=The+C%2B%2B+Programming+Language+filetype%3Apdf&meta= És ha mindenáron parancssorban akarsz fordítani, akkor használd inkább a GCC-t: http://gcc.gnu.org/ Idézés Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.