Ce face std::print
std::print afișează un șablon în care fiecare {} este înlocuit, în ordine, cu următoarea valoare. Formatarea este aceeași ca la std::format: {:.2f} pentru două zecimale, {:>8} pentru aliniere la dreapta etc.
Spre deosebire de std::println, nu adaugă rând nou la final; dacă vrei unul, îl scrii tu cu \n. Este util când construiești un rând din mai multe bucăți.
Ca prim argument poți da un FILE*: std::print(stderr, ...) scrie pe ieșirea de eroare. Șablonul este verificat la compilare: o acoladă greșită sau un format nepotrivit cu tipul valorii dă eroare de compilare, nu de rulare.
Parametri
| Parametru | Descriere |
|---|---|
sablon |
Textul cu marcaje {}. Pentru o acoladă propriu-zisă scrii {{ sau }}. Trebuie să fie cunoscut la compilare. |
valori... |
Valorile care înlocuiesc marcajele, în ordine. |
Ce returnează
Nimic.
Exemple
Exemplul 1: Un rând construit din mai multe bucăți
#include <print>
int main() {
int note[] = {9, 7, 10, 8};
std::print("Note:");
for (int n : note) {
std::print(" {}", n);
}
std::print("\n");
std::print("{} are {} ani și locuiește în {}.\n", "Ana", 21, "Iași");
}
Rezultat
Note: 9 7 10 8
Ana are 21 ani și locuiește în Iași.
Exemplul 2: Zecimale, aliniere și ordinea argumentelor
{0} și {1} aleg argumentul după poziție, așa că o valoare poate fi folosită de mai multe ori.
#include <print>
int main() {
double pret = 1299.5;
std::print("Preț: {:.2f} lei\n", pret);
std::print("[{:>8}] [{:<8}] [{:^8}]\n", "dreapta", "stânga", "centru");
std::print("{0} + {0} = {1}\n", 7, 14);
}
Rezultat
Preț: 1299.50 lei
[ dreapta] [stânga ] [ centru ]
7 + 7 = 14
Greșeli frecvente
- Te aștepți la rând nou:
std::printnu adaugă\n. Foloseștestd::printlnsau scrie\nîn șablon. - Construiești șablonul la rulare (de exemplu dintr-o variabilă
std::string): nu compilează, pentru că șablonul trebuie verificat la compilare. Pentru șabloane dinamice foloseștistd::vformat. - Compilatorul sau biblioteca standard sunt prea vechi:
<print>cere C++23 (-std=c++23).
Comenzi înrudite
std::println: Afișează text formatat cu acolade {} și trece pe rândul următor (C++23).std::format: Construiește un std::string dintr-un șablon cu acolade {} și valori (C++20).std::cout: Afișează text și valori în consolă, cu operatorul <<.std::printf: Afișează text formatat în stil C, cu marcaje precum %d, %s, %.2f.