C++

Változók beolvasása

Számváltozók beolvasása

A felhasználó által bevitt adatok kezelése alapvető része a programozásnak. A std::cin segítségével a felhasználótól adatokat kérhetünk be, és ezeket a változókban tárolhatjuk. Nézzük meg a példát és annak részletes magyarázatát!

Két szám beolvasása és összegük kiszámolása

#include <iostream>
#include <windows.h>
int main()
{

SetConsoleCP(1250); // Magyar ékezetek helyes kezelése a bemeneten SetConsoleOutputCP(1250); // Magyar ékezetek helyes megjelenítése a kimeneten
int elso; // Az első szám tárolására szolgáló változó
int masodik; // A második szám tárolására szolgáló változó
std::cout << „Kérem az első számot: „; std::cin >> elso; // Első szám beolvasása
std::cout << „Kérem a második számot: „; std::cin >> masodik;// Második szám beolvasása
std::cout << „A két szám összege: „ << elso + masodik <<
std::endl;
return 0;
}

 

    Hibalehetőségek

    • Amikor a felhasználó nem csak egy, hanem több számot ad meg egyetlen bemeneti sorban, a második szám a következő bemenetnél „elakad”. Ennek kezelésére a std::cin.ignore() használható, hogy figyelmen kívül hagyjuk az extra karaktereket a bemeneti pufferből.

      #include <limits>
      std::cin.ignore(std::numeric_limits<std::streamsize>::max(), ‘\n’);

    • Adjunk meg három számot és írjuk ki a három szám szorzatát:
    #include <iostream>
    #include <windows.h>
    #include <limits>
    int main()
    {
    SetConsoleCP(1250);
    SetConsoleOutputCP(1250);
    int elso;
    int masodik;
    int harmadik;
    std::cout << „Kérem az első számot: „;
    std::cin>>elso;
    std::cin.ignore(std::numeric_limits<std::streamsize>::max(), ‘\n’);
    std::cout << „Kérem a második számot: „;
    std::cin>>masodik;
    std::cin.ignore(std::numeric_limits<std::streamsize>::max(), ‘\n’);
    std::cout <<„Kérem a harmadik számot: „;
    std::cin>>harmadik;
    std::cin.ignore(std::numeric_limits<std::streamsize>::max(), ‘\n’);
    std::cout << „A három szám szorzata: ” <<elso * masodik * harmadik << std::endl;
    return 0;

    Edvac működés közben