Korrekt brug af std::cin og std::cout
Stream input og output med standardstreams, og undgå almindelige faldgruber.
Korrekt brug af std::cin og std::cout er en gratis C++ Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i C++ Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. C++ Academy-kurset indeholder 4 lektioner i alt.
Headeren iostream
Både std::cin og std::cout er objekter fra headerfilen <iostream>. De repræsenterer standardstrømmene til inddata og uddata i din terminal.
Uddata med std::cout
Send værdier til std::cout med <<. Det fungerer for enhver type, der har en overbelastning af operator<< — herunder alle indbyggede typer og std::string.
int age = 30;
std::string name = "Ada";
std::cout << "Name: " << name << ", Age: " << age << "\n";Inddata med std::cin
Læs værdier med std::cin >> variable. Mellemrum adskiller tokens.
int age;
std::string name;
std::cout << "Enter name and age: ";
std::cin >> name >> age;
std::cout << name << " is " << age << "\n";Spring mellemrum over
Som standard springer >> indledende mellemrum over (mellemrum, tabulatorer og linjeskift), før den læser. Det er normalt det, du ønsker — men vær opmærksom på det, når du læser enkelte tegn.
Læs en hel linje
std::cin >> name læser kun ét ord. Hvis du vil læse en linje med mellemrum, skal du bruge std::getline.
std::string line;
std::getline(std::cin, line);
std::cout << "You said: " << line;Blanding af >> og getline: En almindelig fejl
Efter std::cin >> n bliver linjeskiftet i bufferen. Den næste getline læser en tom streng. Ryd linjeskiftet først.
int n;
std::cin >> n;
std::cin.ignore(); // consume the leftover newline
std::string line;
std::getline(std::cin, line);Strømtilstand
Streams har tilstandsbits: good, eof, fail og bad. Brug if (std::cin) for at kontrollere, at strømmen stadig kan bruges efter udtrækningen.
Registrér EOF
Slut på filen angives med Ctrl+D på Unix eller Ctrl+Z på Windows. Kør løkken, så længe strømmen er i orden, for at behandle alle inddata.
int n;
while (std::cin >> n) {
std::cout << n * 2 << "\n";
}Hurtigere I/O til konkurrencekode
Deaktivér synkronisering med C's stdio for at læse hurtigere i konkurrenceprogrammering. Fjern også bindingen mellem cin og cout.
std::ios_base::sync_with_stdio(false);
std::cin.tie(nullptr);std::endl kontra \n igen
std::endl skriver et linjeskift og tømmer bufferen. "\n" skriver kun linjeskiftet. Brug "\n" i løkker for at bevare den høje ydeevne.
Tøm manuelt
Hvis du skal tømme bufferen uden et linjeskift, skal du bruge std::flush. Det er nyttigt til fremdriftsindikatorer.
for (int i = 0; i < 100; ++i) {
std::cout << "\r" << i << "%" << std::flush;
// ... work ...
}Hurtigt tjek
Hvad er forskellen på std::endl og "\n" i uddata?
Opsummering
Brug std::cout med << til at udskrive og std::cin med >> til at læse tokens. Brug std::getline til hele linjer, og ryd resterende linjeskift med cin.ignore() efter numeriske inddata.
Lær C++ med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 51
- Lektioner
- 203
Ofte stillede spørgsmål
Er lektionen “Korrekt brug af std::cin og std::cout” gratis?
Ja — alle 3 lektioner i læringssporet C++ Academy, inklusive “Korrekt brug af std::cin og std::cout”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. C++ Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Korrekt brug af std::cin og std::cout”?
Stream input og output med standardstreams, og undgå almindelige faldgruber. Du øver dig i C++ Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på C++ Academy?
Der kræves ingen tidligere erfaring. C++ Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.
Hvor lang tid tager lektionen “Korrekt brug af std::cin og std::cout”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne C++ Academy-lektion?
Ja. Alle C++ Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Korrekt brug af std::cin og std::cout
- Formatering af output med iomanip
- Sikker inputlæsning med getline
- Arbejd med std::cerr og std::clog