Ce face std::cout
std::cout (de la „character output”) este ieșirea standard a programului: tot ce îi trimiți apare în consolă. Valorile se trimit cu operatorul <<, care se poate înlănțui: std::cout << "Ana are " << 21 << " de ani";.
std::cout știe să afișeze texte, numere, caractere și valori bool (implicit ca 1 și 0). Nu adaugă singur spații sau rânduri noi: pentru un rând nou scrii '\n' sau std::endl.
În C++23 există și std::println, care folosește acolade {} în loc de << și este de multe ori mai ușor de citit. std::cout rămâne însă cel mai răspândit în cod și în manuale.
Ce returnează
Expresia std::cout << x returnează tot std::cout, de aceea poți înlănțui mai multe <<.
Exemple
Exemplul 1: Primul program
#include <iostream>
int main() {
std::cout << "Salut, lume!\n";
}
Rezultat
Salut, lume!
Exemplul 2: Text, variabile și rânduri noi
Operatorul << se înlănțuie. Spațiile dintre cuvinte trebuie scrise în text.
#include <iostream>
#include <string>
int main() {
std::string nume = "Ana";
int varsta = 21;
double medie = 9.45;
std::cout << "Nume: " << nume << '\n';
std::cout << "Vârsta: " << varsta << " ani\n";
std::cout << "Media: " << medie << '\n';
std::cout << nume << varsta << '\n'; // fără spațiu între ele
}
Rezultat
Nume: Ana
Vârsta: 21 ani
Media: 9.45
Ana21
Exemplul 3: Numere, caractere și bool
Un bool apare ca 1/0, iar un char apare ca literă. Expresiile se pun între paranteze, ca operatorii să nu se amestece cu <<.
#include <iostream>
int main() {
char nota = 'A';
bool promovat = true;
std::cout << "Nota: " << nota << '\n';
std::cout << "Promovat: " << promovat << '\n';
std::cout << "Total: " << (3 * 25 + 4) << " lei\n";
std::cout << "10 / 4 = " << 10 / 4 << " (împărțire între întregi)\n";
}
Rezultat
Nota: A
Promovat: 1
Total: 79 lei
10 / 4 = 2 (împărțire între întregi)
Greșeli frecvente
- Scrii
std::cout << a < b;saustd::cout << a & b;fără paranteze: operatorii se leagă greșit și primești o eroare greu de înțeles. Pune expresiile între paranteze:std::cout << (a < b);. - Ai uitat
#include <iostream>sau prefixulstd::. Fără ele compilatorul nu știe ce estecout. - Folosești
std::endlla fiecare rând într-o buclă mare: golirea bufferului de fiecare dată încetinește programul.'\n'este suficient.
Comenzi înrudite
std::println: Afișează text formatat cu acolade {} și trece pe rândul următor (C++23).std::cin: Citește valori de la tastatură în variabile, cu operatorul >>.std::cerr: Scrie mesaje de eroare și de jurnal pe canalul de eroare, separat de ieșirea normală.std::endl: Trece pe rândul următor și golește bufferul; std::flush doar golește bufferul.std::setw: Stabilește lățimea minimă a următoarei valori, cu aliniere și caracter de umplere.