C++ input/output
Főnév
C++ input/output (tsz. C++ input/outputs)
Be- és kimenet (Input/Output) C++-ban
A C++ programozási nyelvben az input (bevitel) és az output (kiírás) alapvető fontosságú a felhasználóval való interakcióhoz. Az iostream könyvtár segítségével biztosított a standard be- és kimenet, amely a konzolon keresztül működik.
1. Alapfogalmak
A C++ három alapvető be- és kimeneti folyamot biztosít: - std::cin – standard input (billentyűzetről történő beolvasás) - std::cout – standard output (konzolra történő kiírás) - std::cerr – hibaüzenetek kiírására szolgál
A iostream könyvtár automatikusan része a C++ szabványos könyvtárának, ezért nincs szükség külön importálásra, csak az #include <iostream> direktívát kell használni.
2. std::cout – Kimenet a konzolra
A std::cout segítségével adatokat írhatunk a konzolra.
Egyszerű kiírás
#include <iostream>
int main() {
std::cout << "Hello, világ!" << std::endl;
return 0;
}
Magyarázat: - std::cout a kimeneti áramlás (output stream). - A << operátorral továbbítjuk az adatokat a konzolra. - Az std::endl egy sortörést jelent (új sorba írja a következő szöveget).
Több adat kiírása egy sorban
#include <iostream>
int main() {
int a = 10, b = 20;
std::cout << "Az első szám: " << a << ", a második szám: " << b << std::endl;
return 0;
}
Eredmény:
Az első szám: 10, a második szám: 20
Escape karakterek
A std::cout támogatja az escape karaktereket: - \n – új sor - \t – tabulátor - \\ – visszaperjel - \" – idézőjel
#include <iostream>
int main() {
std::cout << "Ez egy sor.\nEz már egy új sor.\n";
std::cout << "Tabulátor:\tHello!" << std::endl;
return 0;
}
Kimenet:
Ez egy sor. Ez már egy új sor. Tabulátor: Hello!
3. std::cin – Bemenet a konzolról
A std::cin az adatbevitelt biztosítja a felhasználó számára.
Egyszerű adatbevitel
#include <iostream>
int main() {
int szam;
std::cout << "Adj meg egy számot: ";
std::cin >> szam;
std::cout << "A beírt szám: " << szam << std::endl;
return 0;
}
Működés: - A felhasználó begépel egy számot, majd Enter-t nyom. - A program beolvassa a számot és kiírja.
Több adat beolvasása
#include <iostream>
int main() {
int a, b;
std::cout << "Adj meg két számot: ";
std::cin >> a >> b;
std::cout << "A beírt számok: " << a << " és " << b << std::endl;
return 0;
}
A felhasználó 10 20-at írhat be, ekkor a kimenet:
A beírt számok: 10 és 20
Szöveg beolvasása std::cin-nel
Ha egyetlen szót szeretnénk beolvasni:
#include <iostream>
#include <string>
int main() {
std::string nev;
std::cout << "Add meg a keresztneved: ";
std::cin >> nev;
std::cout << "Üdv, " << nev << "!" << std::endl;
return 0;
}
Probléma: Ha "Kis Péter"-t adunk meg, akkor csak “Kis” lesz elmentve.
Teljes sor beolvasása – std::getline()
A std::getline() az egész sor beolvasására szolgál:
#include <iostream>
#include <string>
int main() {
std::string teljesNev;
std::cout << "Add meg a teljes neved: ";
std::cin.ignore(); // Előző bemenet törlése
std::getline(std::cin, teljesNev);
std::cout << "Üdv, " << teljesNev << "!" << std::endl;
return 0;
}
Ez lehetővé teszi "Kis Péter" beolvasását egy string változóba.
4. std::cerr – Hibaüzenetek kezelése
A std::cerr a hibaüzenetek kiírására szolgál. Nem pufferelt, tehát azonnal megjelenik a konzolon.
#include <iostream>
int main() {
std::cerr << "Hiba: Érvénytelen bemenet!" << std::endl;
return 0;
}
A std::cerr használata akkor praktikus, ha különbséget akarunk tenni normál kimenet és hibaüzenetek között.
5. std::cin és Hibaellenőrzés
Ha a felhasználó rossz típusú adatot ad meg, akkor a std::cin hibaállapotba kerül.
#include <iostream>
int main() {
int szam;
std::cout << "Adj meg egy számot: ";
while (!(std::cin >> szam)) {
std::cin.clear(); // Hibaállapot törlése
std::cin.ignore(1000, '\n'); // Hibás bemenet eldobása
std::cout << "Érvénytelen! Adj meg egy számot: ";
}
std::cout << "A megadott szám: " << szam << std::endl;
return 0;
}
Ez a program biztosítja, hogy csak érvényes szám legyen beolvasva.
6. Formázott kimenet – iomanip
A iomanip könyvtár segítségével formázhatjuk a kimenetet.
#include <iostream>
#include <iomanip>
int main() {
double pi = 3.1415926535;
std::cout << "Normál: " << pi << std::endl;
std::cout << "Fix: " << std::fixed << pi << std::endl;
std::cout << "Két tizedesjegy: " << std::fixed << std::setprecision(2) << pi << std::endl;
return 0;
}
Eredmény:
Normál: 3.14159 Fix: 3.141593 Két tizedesjegy: 3.14
Összegzés
✅ std::cout – Kiírás a konzolra
✅ std::cin – Adatbevitel a felhasználótól
✅ std::cerr – Hibaüzenetek kiírása
✅ std::getline() – Teljes sor beolvasása
✅ std::cin.ignore() – Új sor karakterek kezelése
✅ iomanip – Formázott kiírás
A C++ be- és kimeneti műveletei rugalmasak és nagy teljesítményűek, így minden programozási helyzethez megfelelően alkalmazhatók. 🚀
- C++ input/output - Szótár.net (en-hu)
- C++ input/output - Sztaki (en-hu)
- C++ input/output - Merriam–Webster
- C++ input/output - Cambridge
- C++ input/output - WordNet
- C++ input/output - Яндекс (en-ru)
- C++ input/output - Google (en-hu)
- C++ input/output - Wikidata
- C++ input/output - Wikipédia (angol)