Problem z obsługa strumienia wejsciowego.
Ostatnio zmodyfikowano 2012-12-22 18:03
Charles Temat założony przez niniejszego użytkownika |
Problem z obsługa strumienia wejsciowego. » 2012-12-22 16:54:08 Witam Czy mógłby mi ktoś wyjasnic o co kaman w obsłudze strumienia wejsciowego. Czytytałem temat z poradnika wiele razy i nie rozumiem. Obsługa strumienia wejściowegoJaki ma byc wzór programu w którym wpisuemy ta komende: 12345, 321. Czy 2+2 wynosi 4?. A po wyjsciu z bufora ta komenda bedzia taka: , 321. Czy 2+2 wynosi 4? |
|
czosnek17 |
» 2012-12-22 17:06:32 Ogólnie, to chodzi o wczytywanie danych do jakichś zmiennych, a czego nie rozumiesz? |
|
Charles Temat założony przez niniejszego użytkownika |
» 2012-12-22 18:03:53 Na koncu jest zadanie domowe. Pórbowłam ułozyc wzór kodu zeby to miało sens ale nic z tego. I nie udaje mi sie to dlatego iz nie mam podparcia wzorem kodu w punkcie "opis działania strumienia wejsciowego".
---->Opis działania strumienia wejściowego Skoro nauczyliśmy się już korzystać ze strumienia wejściowego w podstawowym wymiarze - przyjrzyjmy się teraz jego działaniu. Wyobraźmy więc sobie, że początkowo strumień jest pusty. Wysyłamy następnie żądanie: "daj mi liczbę całkowitą" (czyli: std::cin>>liczba). Strumień jest pusty, więc nie można z niego pobrać danych, a więc użytkownik musi wprowadzić nowe dane do strumienia. Wprowadźmy teraz do strumienia następujące dane: 12345, 321. Czy 2+2 wynosi 4? Po wciśnięciu klawisza ENTER dane te trafiają do bufora strumienia wejściowego, z którego następnie odczytywane są dane. Po wczytaniu liczby w buforze strumienia wejściowego zostaną następujące dane: , 321. Czy 2+2 wynosi 4? Co się teraz stanie, gdy zechcemy wczytać kolejną liczbę? Strumień stwierdzi, że pierwszym znakiem w strumieniu jest znak ,, który nie jest liczbą, a więc nie zostanie wczytana liczba. Operacja wczytywania się nie powiedzie, a flaga błędu zostanie ustawiona. Białe znaki Białymi znakami nazywamy te, które nie mają swojej reprezentacji wizualnej, a istnieją w tekście. Białe znaki to: spacja, enter i tabulacja. Strumień, a białe znaki Gdy używamy strumienia std::cin>> białe znaki są pomijane. Tak więc gdyby w buforze strumienia nie znajdował się przecinek, tylko biały znak - strumień by go po prostu pominął i przeszedł do kolejnego znaku. W konsekwencji druga operacja wczytywania liczby powiodłaby się, a w strumieniu pozostałyby dane: . Czy 2+2 wynosi 4?<---- |
|
« 1 » |