Uso corretto di std::cin e std::cout
Gestisca input e output tramite gli stream standard ed eviti gli errori più comuni.
Uso corretto di std::cin e std::cout è una lezione C++ Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C++ Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C++ Academy include 4 lezioni in totale.
L'header iostream
Sia std::cin sia std::cout sono oggetti dell'header <iostream>. Rappresentano gli stream standard di input e output del terminale.
Output con std::cout
Invii i valori a std::cout con <<. Funziona con qualsiasi tipo per cui sia disponibile un overload di operator<<, inclusi tutti i tipi incorporati e std::string.
int age = 30;
std::string name = "Ada";
std::cout << "Name: " << name << ", Age: " << age << "\n";Input con std::cin
Legga i valori con std::cin >> variable. Gli spazi vuoti separano i token.
int age;
std::string name;
std::cout << "Enter name and age: ";
std::cin >> name >> age;
std::cout << name << " is " << age << "\n";Ignorare gli spazi vuoti
Per impostazione predefinita, >> ignora gli spazi vuoti iniziali, come spazi, tabulazioni e nuove righe, prima della lettura. Di solito è ciò che si desidera, ma presti attenzione quando legge singoli caratteri.
Lettura di un'intera riga
std::cin >> name legge una sola parola. Per leggere una riga contenente spazi, utilizzi std::getline.
std::string line;
std::getline(std::cin, line);
std::cout << "You said: " << line;Combinare >> e getline: un errore comune
Dopo std::cin >> n, il carattere di nuova riga rimane nel buffer. Il successivo getline legge una stringa vuota. Prima elimini il carattere di nuova riga.
int n;
std::cin >> n;
std::cin.ignore(); // consume the leftover newline
std::string line;
std::getline(std::cin, line);Stato dello stream
Gli stream dispongono di bit di stato: good, eof, fail, bad. Utilizzi if (std::cin) per verificare che lo stream sia ancora utilizzabile dopo l'estrazione.
Rilevamento di EOF
La fine del file viene segnalata da Ctrl+D su Unix o da Ctrl+Z su Windows. Esegua il ciclo finché lo stream è valido per elaborare tutto l'input.
int n;
while (std::cin >> n) {
std::cout << n * 2 << "\n";
}I/O più veloce per il codice da competizione
Disabiliti la sincronizzazione con l'I/O C per velocizzare le letture nella programmazione competitiva. Scolleghi anche cin da cout.
std::ios_base::sync_with_stdio(false);
std::cin.tie(nullptr);std::endl contro \n, di nuovo
std::endl scrive una nuova riga e svuota il buffer. "\n" scrive soltanto la nuova riga. Utilizzi "\n" nei cicli per mantenere alte le prestazioni.
Svuotamento manuale
Se deve svuotare il buffer senza inserire una nuova riga, utilizzi std::flush. È utile per gli indicatori di avanzamento.
for (int i = 0; i < 100; ++i) {
std::cout << "\r" << i << "%" << std::flush;
// ... work ...
}Verifica rapida
Qual è la differenza tra std::endl e "\n" nell'output?
Riepilogo
Utilizzi std::cout con << per stampare e std::cin con >> per leggere i token. Per leggere righe intere utilizzi std::getline e, dopo l'input numerico, elimini le nuove righe residue con cin.ignore().
Domande Frequenti
La lezione «Uso corretto di std::cin e std::cout» è gratuita?
Sì — il testo completo di «Uso corretto di std::cin e std::cout» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C++ Academy, passa a CoddyKit PRO. Il corso C++ Academy include 4 lezioni in totale.
Cosa imparerò in «Uso corretto di std::cin e std::cout»?
Gestisca input e output tramite gli stream standard ed eviti gli errori più comuni. Eserciti C++ Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare C++ Academy?
Non è richiesta alcuna esperienza precedente. C++ Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Uso corretto di std::cin e std::cout»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione C++ Academy?
Sì. Ogni lezione C++ Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Uso corretto di std::cin e std::cout
- Formattazione dell'output con iomanip
- Lettura sicura dell'input con getline
- Utilizzo di std::cerr e std::clog