MySQL Java JavaScript PHP Python HTML-CSS C-sharp C++ Go

Introducere și afișare în consolă

În mod implicit, limbajul C++ nu conține mijloace încorporate pentru citirea de la consolă și afișarea în consolă; aceste mijloace sunt oferite de biblioteca iostream. În aceasta sunt definite două tipuri: istream și ostream. istream reprezintă un flux de intrare, iar ostream – un flux de ieșire.

În general, termenul „flux” (sau „stream”) în acest caz reprezintă o secvență de caractere care este scrisă pe un dispozitiv de intrare-ieșire sau citită de pe acesta. Iar în acest context, dispozitivul de intrare-ieșire este consola.

Pentru a scrie sau afișa caractere în consolă se folosește obiectul cout, care este de tip ostream. Iar pentru a citi din consolă se folosește obiectul cin.

Pentru a utiliza aceste obiecte, la începutul fișierului sursă trebuie inclusă biblioteca iostream:

#include <iostream>

Afișare în consolă

Pentru afișarea în consolă se folosește operatorul <<. Acest operator primește doi operanzi. Operandul din stânga reprezintă un obiect de tip ostream, în acest caz obiectul cout. Iar operandul din dreapta este valoarea care trebuie afișată în consolă.

Deoarece operatorul << returnează operandul din stânga – cout, printr-un lanț de operatori putem transmite mai multe valori către consolă. De exemplu, să definim un program simplu de afișare în consolă:

#include <iostream>
 
int main()
{   
    int age {33};
    double weight {81.23};
    std::cout << "Name: " << "Tom" << "\n";
    std::cout << "Age: " << age << std::endl;
    std::cout << "Weight: " << weight << std::endl;
}

Ieșirea în consolă a programului:

Name: Tom
Age: 33
Weight: 81.23

Operatorului << i se transmit diverse valori – șiruri de caractere, valori ale variabilelor – care sunt afișate în consolă.

Șirurile pot conține secvențe de control care sunt interpretate într-un anumit mod. De exemplu, secvența "\n" este interpretată ca trecere pe o linie nouă. Dintre alte secvențe de control, se folosește frecvent și "\t", care este interpretată ca tabulație.

De asemenea, lanțul de operatori << poate fi încheiat cu valoarea std::endl, care efectuează trecerea pe o linie nouă și golirea bufferului. La afișarea într-un flux, datele sunt mai întâi plasate într-un buffer. Golirea bufferului garantează că toate datele transmise pentru afișare în consolă vor fi afișate imediat.

Citire din consolă

Pentru a citi date din consolă se folosește operatorul de intrare >>, care primește doi operanzi. Operandul din stânga reprezintă un obiect de tip istream (în acest caz obiectul cin), din care se face citirea, iar operandul din dreapta – obiectul în care sunt citite datele.

De exemplu, să citim date de la consolă:

#include <iostream>
 
int main()
{   
    int age;
    double weight;
    std::cout << "Input age: ";
    std::cin >> age;
    std::cout << "Input weight: ";
    std::cin >> weight;
    std::cout << "Age: " << age << "\t Weight: " << weight << std::endl;
}

Aici, după mesajele de solicitare a introducerii datelor, programul așteaptă introducerea valorilor pentru variabilele age și weight.

Exemplu de rulare a programului:

Input age: 32
Input weight: 67.45
Age: 32 Weight: 67.45

Trebuie menționat că, deoarece operatorul de intrare în primul caz va adăuga date într-o variabilă întreagă age, el așteaptă introducerea unui număr întreg. În cazul variabilei weight, operatorul de intrare așteaptă un număr cu virgulă mobilă, iar separatorul dintre partea întreagă și cea zecimală trebuie să fie un punct. De aceea, nu putem introduce orice valori, cum ar fi șiruri de caractere. În acest caz, programul poate produce un rezultat incorect.

Operatorul de intrare >> returnează operandul din stânga – obiectul cin, astfel încât putem citi în lanț date în mai multe variabile:

#include <iostream>
 
int main()
{   
    int age;
    double weight;
    std::cout << "Input age and weight: ";
    std::cin >> age >> weight;
    std::cout << "Age: " << age << "\t Weight: " << weight << std::endl;
    return 0;
}

Exemplu de rulare a programului:

Input age and weight: 32 67.45
Age: 32 Weight: 67.45

După introducerea uneia dintre valori, va trebui să apăsați spacebar și apoi să introduceți valoarea următoare.