C++
Beolvasás konzolról
Mi az a std::cin?
Az std::cin
a C++ egyik alapeszköze, amelyet adatbevitelre használunk a konzolon keresztül. Lehetővé teszi a program számára, hogy a felhasználótól kapott adatokat fogadja és dolgozza fel.


Hogyan működik az std::cin?
Az std::cin
az input stream része, amely a szabványos bemenetet kezeli (általában a billentyűzet).
Az adatokat a >>
operátor segítségével olvassuk be, ami automatikusan eltárolja az értéket egy változóban.
Példa egy szám beolvasására
int main()
{
int szam;
std::cout << „Adj meg egy számot: „; std::cin >> szam; // A felhasználó által beírt érték a ‘szam’ változóba kerül std::cout << „A beírt szám: „ << szam << std::endl; return 0;
}
Mi történik itt?
- Az std::cout utasítással kérjük a felhasználót, hogy adjon meg egy számot
- Az std::cin >> szam utasítás beolvassa a felhasználó által beírt értéket és eltárolja a szám nevű változóban
- az std::cout visszajelzést ad a felhasználónak a beírt értékről
Példa egy szöveg beolvasására
#include <iostream> // Az input/output műveletekhez szükséges könyvtár
#include <string> // A szöveges változók kezeléséhez szükséges könyvtár
int main() {
std::string szoveg; // Egy változó létrehozása szöveg tárolására
std::cout << „Add meg a neved: „; // Üzenet a felhasználónak
std::cin >> szoveg; // Az első szó beolvasása a felhasználótól (szóközig)
std::cout << „Szia ” << szoveg << „!”; // Kiírja a beolvasott szöveget
return 0; // Jelzi, hogy a program sikeresen lefutott
}
Fontos megjegyzések
Az std::cin beolvasásának korlátai vannak, alapértelmezetten csak egy szót olvas be, a szóköz után megáll. Ha felhasználó azt írja be, Kiss Péter, csak a Kiss kerül beolvasásra.
Ha hosszabb szöveget szeretnénk beolvasni, az std::getline(std::cin, szoveg); függvényt kell használni
int main()
{ std::string nev;
std::cout << „Add meg a teljes neved: „;
std::getline(std::cin, nev); // Beolvassa az egész sort, beleértve a szóközöket is std::cout << „Szia „ << nev << „!” << std::endl;
return 0;
}
Beolvasásánál nem (minden esetben) fog működni az ékezetes betű. Erre egy megoldás (de van több is), ha az #include <windows.h> parancsot még hozzáadjuk, majd a SetConsolOutputCP(1250); – középeurópai kódolás
és SetConsolCP(1250);
Ha azt írjuk, add meg a neved ékezettel és az nem jelenik meg megfelelően, akkor a Notepaden kell beállítani a kódolást: Karakterkódolás -> Közép-európai -> Windows 1250-re.
