17. fejezet: Osztályok (Classes)
Az osztályok az adatszerkezetek egy kibővített fogalmát jelentik, ugyanis nem csupán adatszerkezeteket lehet bennük tárolni, hanem függvényeket is.
Az objektum (object) az osztály (class) egy lehetséges segítsége. Ha egy változó szempontjából tekintjük, akkor az osztály lenne a típus (type) és az objektum (object) lenne a változó. Az osztályokat általában kulcsszavak segítségével képezzük a következő formula alapján:
class osztály_név {
hozzáférés_megadás_1:
tag1;
hozzáférés_megadás_2:
tag2;
...
} objektum_neve;
Itt az osztály_név egy érvényes azonosító az osztályban, az objektum_neve ezen osztályban választható nevek (nem kötelezően adott) listája. Az osztály-deklaráció lényege tartalmazza az egyes elemeket, amik egyaránt lehetnek adatok és függvények, esetleg speciális hozzáférési megadások.
Mindez nagyon hasonló az adatstruktúrák deklarációjához, kivéve, hogy ezúttal beépíthetünk függvényeket és elemeket, de ezeket speciális hozzáférésű megoldásoknak (megadásoknak) hívjuk. A hozzáférés megadása három fajta lehet: magán (private), nyilvános (public) és védett (protected). Ezek az hozzáférési jogosultságok módosítják az alapvető hozzáféréseket is. Alapértelmezés szerint egy osztály (class) minden tagja a class kulcsszóval való deklarálás miatt nyilvános (public) hozzáféréssel rendelkezik. Például:
class CRectangle {
int x, y;
public:
void set_values (int,int);
int area (void);
} rect;
Itt a CRectangle osztály deklarál egy objektumot, melyet rect-nek hívunk. Ezen osztálynak négy tagja van: két int típusú számadat (x és y) saját hozzáféréssel (private access) - mivel a privát az alapértelmezett jogosultsági szint; továbbá tartalmaz két függvényt is nyilvános hozzáféréssel set_values() és area() néven, amelyekből most még csak a deklarálásuk látható, nem pedig a teljes definíciójuk.
Figyeljük meg a különbséget az osztály (class) és az objektum (object) neve között: az előző példában a CRectangle volt az osztály (class) neve, míg a rect egy CRectangle típusú objektum neve volt. Ez teljesen megfelel a következő mintának is:
int aaaa;
Itt az int a típus neve (mint egy osztályé) és az aaaa a változó neve (mint egy osztálybeli objektumé).
A fenti deklaráció után simán használhatjuk is a függvényeket, persze előtte meg kell írnunk azokat! Például:
rect.set_values(3,4); //Itt használtuk a függvényt.
myarea = rect.area(); //Itt meg a másikat.
Következzen most egy teljes példa a fenti class-deklarációval:
---------------------------------------------
// Osztályok példa
#include <iostream>
using namespace std;
class CRectangle {
int x, y;
public:
void set_values (int,int);
int area () {return (x*y);}
};
void CRectangle::set_values (int a, int b) {
x = a;
y = b;
}
int main () {
CRectangle rect;
rect.set_values (3,4);
cout << "area: " << rect.area();
return 0;
}
---------------------------------------------
A fenti kód legfontosabb új eleme a két darab kettőspont (::), ami a set_values() deklarációjában található. Arra használják, hogy meghatározza egy osztály tagját egy külső definíció számára. Továbbá észre lehetett venni, hogy az area() függvény teljes egésze bekerült a CRectangle osztály definíciójába azon egyszerű okból, hogy a set_values() csak a prototípusát adta meg az osztályon belül, de ez a meghatározás azon kívül is érvényes. Ebben a külső definícióban fel kell használnunk a :: szűrő hatályát is, mivel egy olyan függvényt szeretnénk definiálni, ami a CRectangle osztály tagja és nem globális függvény.
A következő példában bonyolítsuk kissé az előző kódot úgy, hogy most egy osztályunk és két objektumunk legyen.
---------------------------------------------
// Egy osztály két objektum
#include <iostream>
using namespace std;
class CRectangle {
int x, y;
public:
void set_values (int,int);
int area () {return (x*y);}
};
void CRectangle::set_values (int a, int b) {
x = a;
y = b;
}
int main () {
CRectangle rect, rectb;
rect.set_values (3,4);
rectb.set_values (5,6);
cout << "rect area: " << rect.area() << endl;
cout << "rectb area: " << rectb.area() << endl;
return 0;
}
---------------------------------------------
Ebben a konkrét esetben az osztály még mindig a CRectangle, melynek két objektuma van: rect és rectb. a main() függvényben először is deklaráljuk őket, majd értéket adunk nekik, végül kiíratjuk a területüket. Lényeges megjegyezni, hogy a rect.area() nem ad azonos értéket a rectb.area()-val, mert különbözőek a bemeneti értékeik.
Ez az objektum-orientált programozás alapvető koncepciója: az adatok és a függvények egyazon objektum (jelen esetben osztály) tagjai. Ezen túl nem kell használnunk globális változókat, hogy átadjuk egyik függvénytől a másiknak a megfelelő értéket, hanem tárgyakat és eseményeket kezelünk, amelyek saját adatokkal és beépített függvényekkel rendelkeznek. Figyeljük meg, hogy nem kellett semmilyen paramétert megadni a rect.area() és a rectb.area() hívásakor.
18. fejezet: Numerikus könyvtár (cmath)
A nyelv alapjainak nagyjából a végére értünk, így most már jöhetnek az olyan „apróságok”, mint az egyes könyvtárak. Szeretném felhívni a figyelmet arra, hogy ezen függvények többsége nem feltétlenül kell a mindennapi munkához, viszont nagyon fontos, hogy mindig hozzáférhetőek legyenek. Továbbá az emelt szintű érettségi feladatsoraiban gyakori, hogy a következő függvények közül kell használni ezt-azt; tovább nem szabad elfelejteni azt sem, hogy ezen a vizsgán az internetet szigorúan tilos használni és magam részéről nem vagyok 100%-osan meggyőződve, hogy a programok beépített helpjei mindig működőképesek...
A C++ nyelv rengeteg beépített függvényt és eljárást tartalmaz, melyekből eddig csak párat láthattunk. Most mindezt kicsit részletesebben fogjuk tárgyalni!
Ennek első darabja a cmath könyvtár, amely gyakori matematikai műveleteket és eljárásokat tartalmaz. File: math.h
(Előzőleg ebből a függvénysorból a 12. fejezetben láthattuk példákat!)
Trigonometrikus függvények:
cos cosinusz
sin sinusz
tan tangens
acos arcus cosinusz
asin arcus sinusz
atan arcus tangens
atan2 arcus tangens két paraméterrel (radiánban, kér koordinátával adja vissza a -pi +pi értékek között)
Hiperbolikus függvények:
cosh cosinusz hiperbolikusz
sinh sinusz hiperbolikusz
tanh tangens hiperbolikusz
Exponenciális és logaritmikus függvények:
exp Exponenciális (e hatványa), ahol e=2,71828.
frexp Egy hatványt felbont valós szorzóra és 2 egész kitevőjű hatványára.
ldexp Előzőhöz hasonló, csak eltérő lehetőségekkel
log Egy szám természetes (azaz e-alapú) logaritmusát adja meg.
log10 10-alapú logaritmus.
modf Egy szám felbontása egész és törtrészre.
Hatvány-függvények:
pow Egy szám hatványa (Paraméterek: alap,kitevő)
sqrt Négyzetgyök
Vegyes függvények:
ceil A legkisebb egész szám, ami nem kisebb, mint a paraméter.
fabs Abszolút érték
floor A legnagyobb egész szám, ami nem nagyobb, mint a paraméter.
fmod Osztási maradék
Egyetlen példa a könyvtár helyes használatára:
---------------------------------------------
// Szinusz-példa
#include <iostream>
#include <math.h>
using namespace std;
#define PI 3.14159265
int main ()
{
long double i=0, j;
do
{
j = sin(i*PI/180);
cout <<"\n sin(" <<i <<")= " <<j;
i += 5;
}
while (i<361);
return 0;
}
---------------------------------------------
19. fejezet: Input/Output műveletek könyvtára (cstdio)
(Eredeti verzió: http://cplusplus.com/reference/clibrary/cstdio/ Pár helyre tettem az angol megfelelőre mutatást. A többi értelemszerű!)
A kimeneti/bemeneti műveletek talán az egyik leglényegesebb részei a C++ nyelvnek. (Angolul: C Standard Input and Output Library) Ezen könyvtár tartalmazza az alapvető műveleteket a billentyűzettel, a nyomtatóval és egyéb a rendszer által támogatott terminálokkal. A műveletekre létezik egy egységes szabvány, amely általában jól is használható, de azért léteznek kivételek. A file-műveletek számára három alapvető folyamat létezik: stdin, stdout és stderr; ezek automatikusan létrejönnek és nyitottak minden olyan program számára, amely a könyvtárat használja.
A file-műveletek számára vannak alapvető lehetőségek, melyek a következők:
Read/Write Access - írási/olvasási jog
Test/Binary - szöveges/bináris mód
Buffer - puffer
Mutatóból is három van, melyek a következők:
Error indicator - hiba-mutató
End-Of-File indicator - file vége mutató
Position indicator - pozíció mutató
Ezek után jöjjenek a függvények:
File-műveletek:
remove File törlése
rename File átnevezése
tmpfile Ideiglenes file megnyitása
tmpnam Ideiglenes file létrehozása
Egyetlen példát szeretnék erre mutatni, íme:
---------------------------------------------
// File törlése
// Törlendő file: ideiglenes.txt
#include <stdio.h>
int main ()
{
if( remove( "ideiglenes.txt" ) != 0 )
perror( "Hiba a file törlésekor." );
else
puts( "File sikeresen törölve." );
return 0;
}
---------------------------------------------
(Megjegyzés: futtatás előtt nem árt létrehozni az ideiglenes.txt file-t a megfelelő könyvtárban!)
File hozzáférés:
fclose File bezárása
fflush Adatfolyam kiürítése (flush stream)
fopen File megnyitása
freopen Adatfolyam újranyitása más file-lal vagy más módszerrel
setbuf Adatfolyam mutató beállítása
setvbuf Változtass az adatfolyam tárolóján
Kimenet/bemenet formázása:
fprintf Írj formázott kimenetet az adatfolyamhoz - Részletek: http://cplusplus.com/reference/clibrary/cstdio/fprintf/
fscanf Olvass formázott adatokat az adatfolyamból - Részletek: http://cplusplus.com/reference/clibrary/cstdio/fscanf/
printf Írj formázott adatot az stdout-ra - Részletek: http://cplusplus.com/reference/clibrary/cstdio/printf/
scanf Olvass formázott adatot az stdin-ről - Részletek: http://cplusplus.com/reference/clibrary/cstdio/scanf/
sprintf Írj formázott adatot a string-be - Részletek: http://cplusplus.com/reference/clibrary/cstdio/sprintf/
sscanf Olvass formázott adatokat a stringből - Részletek: http://cplusplus.com/reference/clibrary/cstdio/sscanf/
vfprintf Írj formázott változó paraméterlistát a kimenetre - Részletek: http://cplusplus.com/reference/clibrary/cstdio/vfprintf/
vprintf Írj formázott változó paraméterlistát az stdout-ra - Részletek: http://cplusplus.com/reference/clibrary/cstdio/vprintf/
vsprintf Írj formázott változó paraméterlistát a stringbe - Részletek: http://cplusplus.com/reference/clibrary/cstdio/vsprintf/
Karakterek kimenete/bemenete:
fgetc Karakter lehívása az adatfolyamból
fgets String lehívása az adatfolyamból - Részletek: http://cplusplus.com/reference/clibrary/cstdio/fgets/
fputc Karakter írása az adatfolyamba
fputs String írása az adatfolyamba
getc Karakter hívása az adatfolyamból
getchar Karakter hívása az stdin-ből
gets String hívása az stdin-ből
putc Karakter írása az adatfolyamba
putchar Karakter írása az stdin-be
puts Karakter írása az stdout-ba
ungetc Egy karakter kinyerése az adatfolyamból(?) - Részletek: http://cplusplus.com/reference/clibrary/cstdio/ungetc/
Csak egyetlen példa a gets-re:
---------------------------------------------
//gets példa
#include <stdio.h>
int main()
{
char stringa [256];
char stringb [256];
printf ("Kerem a teljes nevet: ");
gets (stringa);
printf ("Kerem a lakcimet: ");
gets (stringb);
printf ("Teljes neve: %s\n",stringa);
printf ("Lakcime: %s\n", stringb);
return 0;
}
---------------------------------------------
Direkt kimenet/bemenet:
fread Adatblokk olvasása az adatfolyamból
fwrite Adatblokk írása az adatfolyamba - Részletek: http://cplusplus.com/reference/clibrary/cstdio/fwrite/
File pozicionálás:
fgetpos Az adatfolyamon belüli pozíció megadása - Részletek: http://cplusplus.com/reference/clibrary/cstdio/fgetpos/
fseek Az adatfolyam helyzetjelző áthelyezése
fsetpos Az adatfolyam pozíciójelzőjének megadása
ftell Az adatfolyamon belüli pozíció megadása
rewind Az adatfolyam pozíciójelzőjének áthelyezése a legelejére
Hibakezelés:
clearerr Hibamutatók törlése - Részletek: http://cplusplus.com/reference/clibrary/cstdio/clearerr/
feof A file-vége mutató ellenőrzése
ferror A hibamutató ellenőrzése
perror Hibaüzenet kiírása
Fontosabb makrók: (valamennyi konstans)
EOF File vége
FILENAME_MAX A file-név maximális hossza
NULL Null-mutató
TMP_MAX Az ideiglenes file-ok száma
Típusok:
FILE Az objektum tartalmaz információt az adatfolyam kontrolljáról
fpos_t Az objektum tartalmaz információt a file-on belüli pozicionáláshoz
size_t Előjel nélküli egész típus
20. fejezet: String műveletek könyvtára (cstring)
(Eredeti verzió: http://cplusplus.com/reference/clibrary/cstring Pár helyre tettem az angol megfelelőre mutatást. A többi értelemszerű!)
Az előző cstdio-hoz képest ez egy kisebb könyvtár, jóval kevesebb, ám annál fontosabb függvénnyel. Az emelt szintű informatika érettségin előszeretettel adnak szövegfeldolgozási feladatot! Használatához a következő sor kell:
#include <string.h>
Másolások:
memcpy Memóriablokk másolása // Mintapélda: http://cplusplus.com/reference/clibrary/cstring/memcpy/
memmove Memóriablokk mozgatása // Mintapélda: http://cplusplus.com/reference/clibrary/cstring/memmove/
strcpy String másolása // Példa: strcpy (char célfile, const char forrásfile);
strncpy A stringben lévő karakterek másolása // Példa: strncpy (char célfile, const char forrásfile, másolandó_karakterek_száma);
Összefűzés:
strcat Stringek összefűzése // Példa: strcat (char célfile, const char forrásfile);
strncat A forrásfile első néhány karakterét hozzáfűzi a célfile-hoz. // Példa: strncat (char célfile, char forrásfile, másolandó_karakterek_száma);
Összehasonlítás:
memcmp Két memóriablokk összehasonlítása // Mintapélda: http://cplusplus.com/reference/clibrary/cstring/memcmp/
strcmp Két string összehasonlítása // Példa: strcmp(char file1, char file2);
Nullát ad vissza, ha a két string azonos. Pozitív egészet ("n"), ha a file1 n. karaktere nagyobb, mint a file2-é. Negatív egészet, ha ez fordítva valósul meg.
strcoll Két string speciális összehasonlítása // Mintapélda: http://cplusplus.com/reference/clibrary/cstring/strcoll/
strncmp Két string karaktereinek összehasonlítása // Példa: strncmp (char file1, char file2, összehasonlítándó_karakterek_száma);
strxfrm String speciális átformázása // Mintapélda: http://cplusplus.com/reference/clibrary/cstring/strxfrm/
Keresés:
memchr Karakter keresése a memóriablokkban // Mintapélda: http://cplusplus.com/reference/clibrary/cstring/memchr/
strchr Karakter első előfordulása a stringben // Példa: strchr (char miben_keres, char mit_is_keres);
strcspn Az adott stringben megkeresi a célhalmaz legelső előfordulását. // Mintapélda: http://cplusplus.com/reference/clibrary/cstring/strcspn/
strpbrk Karakterek keresése a stringben // Mintapélda: http://cplusplus.com/reference/clibrary/cstring/strpbrk/
strrchr Karakter utolsó előfordulása a stringben// Mintapélda: http://cplusplus.com/reference/clibrary/cstring/strrchr/
strspn Azon karakterek számát add vissza, amelyek előfordulnak a célfile-ban. //Mintapélda: http://cplusplus.com/reference/clibrary/cstring/strspn/
strstr Al-string behelyettesítése // Mintapélda: http://cplusplus.com/reference/clibrary/cstring/strstr/
strtok Szöveg szavakra vágása // Mintapélda: http://cplusplus.com/reference/clibrary/cstring/strtok/
Egyebek:
memset Töltsd ki a memóriablokkot // Mintapélda: http://cplusplus.com/reference/clibrary/cstring/memset/
strerror A hibakód mutatóját adja vissza // Mintapélda: http://cplusplus.com/reference/clibrary/cstring/strerror/
strlen A string hosszát adja vissza // Példa: strlen (char minek_a_hossza);
Apró ötletek:
Direkt konverzió int és char között:
char c = 'a';
int code = (int)c; // Ez egész szám lesz.
c =(char)99; // Ez karakter lesz.
Kivágás a szövegből és szöveg hossza:
string szoveg="1234567890 Ez egy mintaszoveg!";
cout << szoveg <<" hossza: " <<szoveg.length() <<"\n";
cout <<"5-7. betu:i: " << szoveg.substr(4,3) <<"\n";
Lássunk itt egy teljes példát!
---------------------------------------------
using namespace std;
#include <stdio.h>
#include <iostream>
int main()
{
char szavak [256];
printf("\nSzo:veget kerek begepelni!");
gets(szavak);
cout << szavak <<"\n"; // Így a teljes szöveget kiírja tutira
cout <<"5-7. betu:i: " << szavak[4] <<szavak[5] <<szavak[6] <<"\n";
}
---------------------------------------------
21. fejezet: Dátum/idő műveletek könyvtára (ctime)
(Eredeti verzió: http://cplusplus.com/reference/clibrary/ctime Pár helyre tettem az angol megfelelőre mutatást. A többi értelemszerű!)
Az előzőekhez képest ez egy elég kicsi könyvtár, pár fontos függvénnyel. Használatához a következő sor kell:
#include <time.h>
Idő manipulációja:
clock Óraprogram // Mintapélda: http://cplusplus.com/reference/clibrary/ctime/clock/
difftime Visszaadja a különbséget két függvény között // Mintapélda: http://cplusplus.com/reference/clibrary/ctime/difftime/
mktime A tm struktúrát átalakítja time_t struktúrává // Mintapélda: http://cplusplus.com/reference/clibrary/ctime/mktime/
time Visszaadja a pontos időt
A fenti négy függvény elég egyszerű, lássunk erre egy példát:
---------------------------------------------
// Idő példa
#include <stdio.h>
#include <time.h>
int main ()
{
time_t seconds;
seconds = time (NULL);
printf ("1970 januar 1-tol: %ld ora telt el.\n", seconds/3600);
printf ("Ez %ld napnak felel meg.\n", seconds/(3600*24));
printf ("Ami %ld ev.\n", seconds/(3600*24*365));
return 0;
}
---------------------------------------------
Ez a C++ egyik alapelemét, az 1970. január 1. óra eltelt időt adja vissza, ezúttal órákban, napokban, illetve években.
Konverzió:
asctime A tm struktúrát átalakítja string-gé // Mintapélda: http://cplusplus.com/reference/clibrary/ctime/asctime/
ctime A time_t struktúrát átalakítja string-gé // Mintapélda: http://cplusplus.com/reference/clibrary/ctime/ctime/
A visszatérő formátum a következő: Hét_napja Hónap Nap óra:perc:mp év (angolul: Www Mmm dd hh:mm:ss yyyy)
gmtime A time_t struktúrát alakítja UTL-vé // Mintapélda: http://cplusplus.com/reference/clibrary/ctime/gmtime/
localtime A time_t struktúrát alakítja át helyi idővé // Mintapélda: http://cplusplus.com/reference/clibrary/ctime/localtime/
strftime Az időt átformázza stringgé // Mintapélda: http://cplusplus.com/reference/clibrary/ctime/strftime/
Itt érdemes megnézni a belső táblázatot!
Makrók:
CLOCKS_PER_SEC Másodpercenkénti ütések
NULL Null-pointer
Típusok:
clock_t Óratípus // Mintapélda: http://cplusplus.com/reference/clibrary/ctime/clock_t/
size_t Előjel nélküli egész
time_t Idő-típus // Mintapélda: http://cplusplus.com/reference/clibrary/ctime/time_t/
struct tm Idő-struktúra // Mintapélda: http://cplusplus.com/reference/clibrary/ctime/tm/
Itt érdemes megnézni a belső táblázatot!
22. fejezet: Többcélú műveleti könyvtár (cstdlib)
(Eredeti verzió: http://cplusplus.com/reference/clibrary/cstdlib Pár helyre tettem az angol megfelelőre mutatást. A többi értelemszerű!)
Egy újabb könyvtár vegyes többcélú függvényekkel. Használatához a következő sor kell:
#include <stdlib.h>
String konverziók:
atof String átalakítása double-re // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/atof/
atoi String átalakítása integerré (egésszé) // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/atoi/
atol String átalakítása long integerré // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/atol/
strtod String precízebb átalakítása double-re (valósra) // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/strtod/
strtol String precízebb átalakítása long integerré // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/strtol/
strtoul String precízebb átalakítása előjel nélküli egésszé // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/strtoul/
Álvéletlen generálás:
rand Készíts álvéletlen számot // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/rand/
Használata: rand() % 10 -> Erre egy véletlen számot készít 0 és 9 között.
srand Indítsd el a véletlen-generátort // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/srand/
Dinamikus memória menedzselése:
calloc Foglalj helyet a vektornek a memóriában // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/calloc/
free Szabadítsd fel a helyet a memóriában // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/free/
malloc Foglalj el memóriablokkot // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/malloc/
realloc Szabadítsd fel a memóriablokkot // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/realloc/
Környezet:
abort Szakítsd meg a jelenlegi folyamatot // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/abort/
atexit Kilépéskor végrehajtandó függvények felsorolása // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/atexit/
exit Kilépés a végrehajtásból // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/exit/
getenv Környezeti változó (string) kiírása // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/getenv/
system Környezeti parancs végrehajtása // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/system/
Parancsok például: cd xxx, dir, cls, ...
Keresés és rendezés:
bsearch Bináris keresés a vektorban // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/bsearch/
qsort A vektorbeli elemek sorbarendezése // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/qsort/
Műveletek egészekkel:
abs Abszolút érték (int és long) // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/abs/
div Maradékos osztás (int és long) // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/div/
labs Abszolút érték (long int) // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/labs/
ldiv Maradékos osztás (long int) // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/ldiv/
Több-byte-os karakterműveletek:
mblen Add meg a több-byte-os karakter hosszát // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/mblen/
mbtowc A több-byte-os karaktert konvertáld át wide karaktérré // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/mbtowc/
wctomb A wide karaktert konvertáld át több-byte-ossá // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/wctomb/
Több-byte-os stringek:
mbstowcs Több-byte-os stringet konvertáld át wide-karakter stringgé // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/mbstowcs/
wcstombs Az előző fordítottja // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/wcstombs/
Makrók:
EXIT_FAILURE Hibás kilépési kód
EXIT_SUCCESS Sikeres kilépési kód
MB_CUR_MAX A több-byte-os karakter maximális hossza
NULL Null-pointer
RAND_MAX A rand() maximális visszatérési értéke
A C++ alapjai cikksorozat ezennel véget ért! Köszönöm a figyelmet és kérem a szokásos úton küldjék el a hozzászólásaikat, illetve a megjegyzéseiket! Előre is köszönöm!
© TFeri.hu, 2013.
Frissítve: 2017.