• 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.

VPS Starter Arubacloud
0 głosów
1,530 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 322 wizyt
0 głosów
3 odpowiedzi 1,317 wizyt
pytanie zadane 8 lutego 2018 w JavaScript przez lukasz21 Obywatel (1,090 p.)
0 głosów
2 odpowiedzi 13,837 wizyt

92,454 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 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.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...