Ugrás a tartalomhoz

C++ input/output

A Wikiszótárból, a nyitott szótárból
(Input/output (C++) szócikkből átirányítva)


Főnév

C++ input/output (tsz. C++ input/outputs)

  1. (informatika)

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. 🚀