Kiíratás, avagy lássunk már valamit
A programozás során sokszor az a feladat, hogy valamilyen eredményt, vagy épp változók tartalmát írjuk ki a képernyőre. A kiíratás egyszerű kommunikáció a program és a felhasználó között. Ennek használata egyszerű, de vannak fontos szabályok, melyeket be kell tartani.
cout
Kezdetben ezt az utasítást fogjuk kiíratásra használni, az alapvető igényeinket teljesen ki fogják szolgálni. A cout valójában nem egy utasítás, bár működését tekintve akár annak is nevezhetnénk. Valójában ez egy olyan objektum, amely a kimeneti tevékenységekért felel, és működése során egy operátort, a bit eltolás operátorát (<<) felülírva valósítja meg a képernyőre, konzolba történő kiíratást. Itt a << kimeneti operátorként értelmezendő.
A C++ nyelvben a szövegeket idézőjelek “” közé tesszük. Nem macskaköröm, ahogy többször is hallottam. Na még egyszer: idézőjel. Amit ilyen jelek közé írunk, azt a rendszer szövegnek tekinti. A kiíratás során a cout-nak ilyen szövegeket szoktunk megadni, de ezekhez sokszor hozzá is fűzünk valamit. Lássunk akkor erre példákat:
int szam1 = 10; int szam2 = 20; int osszeg; osszeg = szam1 + szam2; cout << "A szamok osszege:" << endl; cout << osszeg << endl;
A két kiemelt sorban láthatod azt, hogy a cout-nak odaadhatsz egy szöveget is, valamint egy változót is. A változót a kiíratás során átalakítja szöveggé, így a megjelenítés nem lesz gond. A két sort azonban össze is vonhatod:
cout << "A szamok osszege: " << osszeg << endl;
Fontos momentum, hogy minden egyes pozícióba, ahol valamit hozzá akarsz fűzni az előtte lévő dologhoz, külön << jelet kell használnod. Ebben az esetben az történik, hogy az összeg változó tartalmát, ami egy egész szám, hozzáfűzi a szöveghez, a végére illeszt egy sordobás karaktert és az egészet a standard kimenetre, konzolos alkalmazás esetén a konzol kimeneti ablakában jeleníti meg. Az endl, amelyet rendszerint a sorok végein láthatsz egy új sort fog kezdeni a kiíratáskor annál a pozíciónál, ahol az a kiíratásnál szerepel.
Fontos, hogy az átalakítás csak a kiíratásra korlátozódik, az összeg változó továbbra is azt az egész számot tartalmazza, amivel továbbra is végezhetsz számításokat.
Az összefűzés tekintetében teljesen mindegy, hogy mi az összefűzés sorrendje, maximum a kiíratásnak nem lesz értelme:
cout << osszeg << " a szamok osszege." << endl;
Egy fontos problémára felhívnám a figyelmet, ami sokszor gondot jelent. Tömörítsük még a programunkat, ne számítsuk ki külön változóba az összeget, hanem magába a kiíratásba tegyük bele:
int szam1 = 10; int szam2 = 20; cout << "A szamok osszege: " << szam1 + szam2 << endl;
Nézzük meg a következő programot: adott egy egész szám, írjuk ki a kétszeresét.
int szam = 7; cout << "A szam ketszerese: " << szam*2 << endl; // 14
A kiíratás során a szövegben használhatunk olyan speciális vezérlő karaktereket, melyek valamilyen plusz funkciót adnak hozzá a kiíratáshoz. Ezekből keveset használunk ténylegesen, de azért felsorolom azokat is, amelyek használhatók, csak gyakorlati haszna már nincs. Fontos, hogy ezeket a vezérlő karaktereket minden esetben \ jellel (backslash) vezetjük be, ami a mögötte elhelyezkedő karakternek más jelentést ad.
- \n – sordobás (új sort kezd ennél a pontnál)
- \t – tabulátor (alapérték által meghatározott mezőnyit ugrik)
- \b – backspace (balra egy karakter visszatörlés)
- \r – visszaáll a kurzor a sor elejére, bármit írunk ezután, a sorban lévő szöveget törli
- \a – néhány terminálon esetleg megszólaltatja a gép speaker-jét
- \\ – maga a \ karakter
- \” – idézőjel
Lássunk erre ömlesztett példákat, minden különösebb magyarázat nélkül:
cout << "foo\bbar" << endl; cout << "foo\rbar" << endl; cout << "foo\nbar" << endl; cout << "Gyakran hasznalt vezerlo karakterek:\n\\n \\\\ \\\"" << endl; cout << "Elso szam:\t" << 10 << endl; cout << "Masodik szam:\t" << 20 << endl; cout << "Harmadik szam:\t" << 30 << endl;
A kiíratásba akár komplexebb dolgok is belekerülhetnek, erre most csak egy példát írnék, a későbbi tananyagokban úgyis lesz több példa is ezekre, melyeket ez alapján meg fogsz érteni. Adott két szám, írd ki a kisebb szám kétszeresét:
int a = 15; int b = 20; cout << "A kisebb ketszerese: " << min(a,b)*2 << endl;
Pingback: C++ programozás 3. – Változók