std::cin- ja std::cout-virtojen oikea käyttö
Käsitelkää syötettä ja tulostetta standardivirroilla ja välttäkää yleiset sudenkuopat.
std::cin- ja std::cout-virtojen oikea käyttö on ilmainen C++ Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu C++ Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. C++ Academy-kurssilla on yhteensä 4 oppituntia.
iostream-otsikkotiedosto
Sekä std::cin että std::cout ovat <iostream>-otsikkotiedostosta peräisin olevia olioita. Ne edustavat päätelaitteen vakiosyöte- ja vakiotulostusvirtoja.
Tulostaminen std::cout-virralla
Siirtäkää arvot std::cout-virtaan operaattorilla <<. Se toimii kaikilla tyypeillä, joille on määritelty operator<<-ylikuormitus — tämä koskee kaikkia sisäänrakennettuja tyyppejä ja tyyppiä std::string.
int age = 30;
std::string name = "Ada";
std::cout << "Name: " << name << ", Age: " << age << "\n";Syötteen lukeminen std::cin-virrasta
Lukekaa arvot muodossa std::cin >> variable. Tyhjätila erottaa osat toisistaan.
int age;
std::string name;
std::cout << "Enter name and age: ";
std::cin >> name >> age;
std::cout << name << " is " << age << "\n";Tyhjätilan ohittaminen
Oletusarvoisesti >> ohittaa alussa olevan tyhjätilan (välilyönnit, sarkaimet ja rivinvaihdot) ennen lukemista. Näin yleensä halutaankin toimivan, mutta yksittäisiä merkkejä luettaessa tähän on kiinnitettävä huomiota.
Kokonaisen rivin lukeminen
std::cin >> name lukee vain yhden sanan. Kun haluatte lukea välilyöntejä sisältävän rivin, käyttäkää funktiota std::getline.
std::string line;
std::getline(std::cin, line);
std::cout << "You said: " << line;Operaattoreiden >> ja getline yhdistäminen: yleinen virhe
std::cin >> n-kutsun jälkeen rivinvaihto jää syötepuskuriin. Seuraava getline lukee tyhjän merkkijonon. Tyhjentäkää rivinvaihto ensin.
int n;
std::cin >> n;
std::cin.ignore(); // consume the leftover newline
std::string line;
std::getline(std::cin, line);Virran tila
Virroilla on tilabitit: good, eof, fail ja bad. Tarkistakaa ehdolla if (std::cin), että virtaa voi edelleen käyttää arvon lukemisen jälkeen.
Tiedoston lopun tunnistaminen
Tiedoston lopun ilmaisee Unixissa Ctrl+D ja Windowsissa Ctrl+Z. Käsitelkää kaikki syöte silmukassa, joka jatkuu niin kauan kuin virta on kunnossa.
int n;
while (std::cin >> n) {
std::cout << n * 2 << "\n";
}Nopeampi I/O kilpailuohjelmointiin
Poistakaa synkronointi C:n stdio-kirjaston kanssa nopeuttaaksenne lukemista kilpailuohjelmoinnissa. Irrottakaa myös cin ja cout toisistaan.
std::ios_base::sync_with_stdio(false);
std::cin.tie(nullptr);std::endl ja \n jälleen
std::endl kirjoittaa rivinvaihdon ja tyhjentää puskurin. "\n" kirjoittaa vain rivinvaihdon. Käyttäkää silmukoissa merkintää "\n", jotta suorituskyky säilyy hyvänä.
Tyhjentäminen manuaalisesti
Jos puskuri on tyhjennettävä ilman rivinvaihtoa, käyttäkää manipulaattoria std::flush. Tämä on hyödyllistä edistymisen ilmaisimissa.
for (int i = 0; i < 100; ++i) {
std::cout << "\r" << i << "%" << std::flush;
// ... work ...
}Pikatarkistus
Mikä ero on std::endl- ja "\n"-merkinnöillä tulostuksessa?
Kertaus
Käyttäkää std::cout-virtaa yhdessä operaattorin << kanssa tulostamiseen ja std::cin-virtaa yhdessä operaattorin >> kanssa osien lukemiseen. Käyttäkää kokonaisille riveille funktiota std::getline ja poistakaa jäljelle jääneet rivinvaihdot funktiolla cin.ignore() numeerisen syötteen jälkeen.
Opi C++ tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 51
- Oppitunnit
- 203
Usein kysytyt kysymykset
Onko oppitunti ”std::cin- ja std::cout-virtojen oikea käyttö” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa C++ Academy-oppimispolun 3 oppituntia, myös oppitunnin “std::cin- ja std::cout-virtojen oikea käyttö”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. C++ Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”std::cin- ja std::cout-virtojen oikea käyttö”?
Käsitelkää syötettä ja tulostetta standardivirroilla ja välttäkää yleiset sudenkuopat. Harjoittelet C++ Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni C++ Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin C++ Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.
Kuinka kauan ”std::cin- ja std::cout-virtojen oikea käyttö”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä C++ Academy-oppitunnilla?
Kyllä. Jokainen C++ Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- std::cin- ja std::cout-virtojen oikea käyttö
- Tulosteen muotoilu iomanipilla
- Syötteen turvallinen lukeminen getlinella
- std::cerr- ja std::clog-virtojen käyttö