• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zasada działania CIN. Spacje zamiast enterów.

Aruba Cloud - Virtual Private Server VPS
0 głosów
1,831 wizyt
pytanie zadane 4 maja 2016 w C i C++ przez Kamilsien Nowicjusz (150 p.)

Cześć! Prośba o wytłumaczenie działania cin w takiej sytuacji:

#include <iostream>

using namespace std;

int main()
{
    int a,b,c;
    cin>>a;
    cout<<endl;
    cin>>b;
    cout<<endl;
    cin>>c;
    cout<<endl;

    cout<< endl << a ;
    cout<< endl << b ;
    cout<< endl << c ;

    return 0;
}

 

Gdy zamiast ENTERA po każdej wpisywanej liczbie naciskam SPACJE (dopiero po 5 enter dla sprawdzenia):

PYTANIA:

Przecież cin wczytuje aż do wystąpienia białych znaków, więc dlaczego nie przechodzi do następnej linii od razu po naciśnięciu spacji?

Dlaczego po naciśnięciu spacji moge wypisywać niewiadomo ile liczb, ale dopiero po enterze wszystko jest wczytywane?

Dlaczego endl odpalają (w dodatku wszystkie naraz) dopiero po naciśnieciu entera mimo że są po każdym z cinów?

I dlaczego do zmiennych a, b, c wszystko mimo to zapisuje sie poprawnie?

2 odpowiedzi

0 głosów
odpowiedź 4 maja 2016 przez niezalogowany
wybrane 4 maja 2016 przez Kamilsien
 
Najlepsza

Przecież cin wczytuje aż do wystąpienia białych znaków, więc dlaczego nie przechodzi do następnej linii od razu po naciśnięciu spacji?

Błąd. cin je pomija.

Ogólnie, po wprowadzeniu do strumienia pięciu znaków jeden został zapisany do zmiennej a. Pozostałe zostały w strumieniu i przy kolejnych operacjach wejścia zostały skopiowane ze strumienia i zapisane do pozostałych zmiennych b i c.

btw. po co ci te cout<<endl?

komentarz 4 maja 2016 przez Kamilsien Nowicjusz (150 p.)
Tylko po to żeby zobaczyć co się stanie :P

Czyli strumień w przypadku cin "zakańcza się" tylko i wyłącznie enterem, tak?
komentarz 4 maja 2016 przez niezalogowany
Tak tylko enter kończy wczytywanie danych do strumienia.
komentarz 4 maja 2016 przez Kamilsien Nowicjusz (150 p.)
Dzięki
+1 głos
odpowiedź 4 maja 2016 przez draghan VIP (106,230 p.)
Fundamentem do zrozumienia poruszanego zagadnienia jest zdanie sobie sprawy, że strumienie nie operują bezpośrednio na wejściu/wyjściu, tylko na buforach.

Kiedy to zrozumiesz, wszystkie Twoje pytania nagle same się wyjaśnią. :)

Podobne pytania

0 głosów
3 odpowiedzi 560 wizyt
0 głosów
3 odpowiedzi 1,632 wizyt
pytanie zadane 8 lutego 2018 w JavaScript przez lukasz21 Obywatel (1,090 p.)
0 głosów
2 odpowiedzi 15,566 wizyt

93,327 zapytań

142,323 odpowiedzi

322,396 komentarzy

62,656 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...