get() & getline()

dział ogólny

get() & getline()

Nowy postprzez mati1155 » środa, 13 sierpnia 2014, 23:04

Witam!
Czym rzeczywistości różni się get() o getline().
W getline() kończy się wiersza naciśnięciu Enter, ten ENTER pozostaje w strumieniu. Gdy, pojawia się instrukcja wpisania imienia i nazwiska, wtedy "enter" się "aktywuje". Dlatego trzeba go usunąć ze strumienia cin.ignore() ;
W get() sama funkcja get() nie przejdzie do nowego wiersza dlatego trzeba jej pomóc jak tu :
cin.get(name, size).get(); <-----
Ale dalej nie wiem gdzie pomoże get() a nie podoła getline(),wydaję mi się że te funkcje są takie same i można używać tylko getline().(A tak nie jest) ;/
Byłbym wdzięczny jakby ktoś wytłumaczył bo mam totalny zamęt :)
Avatar użytkownika
mati1155
Bladawiec
Bladawiec
 
Posty: 14
Dołączył(a): poniedziałek, 16 czerwca 2014, 14:48
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: Linux
Kompilator: C++
Gadu Gadu: 0
    LinuxChrome

Re: get() & getline()

Nowy postprzez polymorphism » czwartek, 14 sierpnia 2014, 09:58

W getline() kończy się wiersza naciśnięciu Enter (...)

mati czytasz w ogóle to, co piszesz? Przecież to jakiś bełkot!

(...) ten ENTER pozostaje w strumieniu.

Po pierwsze ten "enter" to znak końca linii - '\n'. Po drugie, żaden "enter" w strumieniu nie pozostaje jeśli getline zatrzyma się na znaku końca linii. Sytuacja, o której piszesz, zdarzy się wtedy, gdy bufor jest mniejszy niż linia, którą czytasz. Dlatego pisałem, żebyś korzystał z std::stringa, a nie tablic znakowych char[]. (patrz funkcja std::getline).

(...) wydaję mi się że te funkcje są takie same

Jak by funkcje były takie same, to nie byłoby dwóch funkcji, tylko jedna. Czytaj dokumentację! get w wersji ze wskaźnikiem char* różni się od getline tym, że nie ściąga ze strumienia delimitera (tego domyślnego, czyli '\n', lub zdefiniowanego przez programistę).





p.s. jak dostajesz odpowiedź na posta, dobrze by było, jakbyś się ustosunkował do niej.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: get() & getline()

Nowy postprzez mati1155 » czwartek, 14 sierpnia 2014, 13:33

Na razie string nie używam bo nie ma go jeszcze w książce.
czytasz w ogóle to, co piszesz? Przecież to jakiś bełkot!

No ale przecież właśnie po to założyłem temat żeby ktoś mi wytłumaczył.
Nie wiedziałem że tak agresywnie odpiszesz :;D
Ale dzięki za odp w końcu już to zrozumiałem ;)
Avatar użytkownika
mati1155
Bladawiec
Bladawiec
 
Posty: 14
Dołączył(a): poniedziałek, 16 czerwca 2014, 14:48
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: Linux
Kompilator: C++
Gadu Gadu: 0
    LinuxChrome

Re: get() & getline()

Nowy postprzez polymorphism » czwartek, 14 sierpnia 2014, 13:47

No ale przecież właśnie po to założyłem temat żeby ktoś mi wytłumaczył.

Heh, nie chodziło mi istotę pytania, tylko o formę. Przecież to, co zacytowałem, jest nieskładne, bełkotliwe. To już któryś Twój post, w którym albo trzeba się domyślać, o co chodzi, albo po prostu ciężko się czyta ze względu na nieskładność zdań. Zwracaj na to uwagę.

Nie wiedziałem że tak agresywnie odpiszesz :;D

Gdzie Ty tu masz agresję? Drobna reprymenda ;)

Ale dzięki za odp w końcu już to zrozumiałem ;)

Zmieniłem nieco swojego posta, ponieważ get w wersji ze wskaźnikiem pomylił mi się z read. Sprawdź, czy nie przeczytałeś przypadkiem wersji sprzed edycji.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows 7Firefox


Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 7 gości