C++ cin.get()

Awatar użytkownika
Przemekg
Użytkownik
Użytkownik
Posty: 15
Rejestracja: 27 mar 2008, o 19:48
Płeć: Mężczyzna
Lokalizacja: Kamienna Góra
Podziękował: 1 raz

C++ cin.get()

Post autor: Przemekg »

Dlaczego po
cin>>coś_tam;
wpisuje się
cin.get();
Mam jeden taki program który po usunięciu cin.get() wywala błąd(podczas działania programu);
W jakich sytuacjach stosuje się taki zabieg? Podczas kompilacji nie wyskakują nawet ostrzeżenia (Dev-Cpp)?
matshadow
Użytkownik
Użytkownik
Posty: 941
Rejestracja: 17 gru 2007, o 21:48
Płeć: Mężczyzna
Lokalizacja: Kingdom Hearts
Podziękował: 6 razy
Pomógł: 222 razy

C++ cin.get()

Post autor: matshadow »

żeby złapać znak nowej linii, który może popsuć niekiedy program :) ja stosuję cin.get() kiedy się bawię łańcuchami, np

Kod: Zaznacz cały

int t;
string s;
cin>>t;
while(getline(cin,s))
{
    cin.get();
    robie cos dalej
}
spajder
Użytkownik
Użytkownik
Posty: 735
Rejestracja: 7 lis 2005, o 23:56
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 2 razy
Pomógł: 133 razy

C++ cin.get()

Post autor: spajder »

uwaga, bo to też może często nie działać. Proponuję oczyszczenie cin przed każym czytaniem:
Awatar użytkownika
wafello
Użytkownik
Użytkownik
Posty: 35
Rejestracja: 7 sty 2009, o 21:50
Płeć: Mężczyzna
Lokalizacja: Józefina
Pomógł: 6 razy

C++ cin.get()

Post autor: wafello »

ja polecam zamiast cin.get uzyć cin.ignore
matshadow
Użytkownik
Użytkownik
Posty: 941
Rejestracja: 17 gru 2007, o 21:48
Płeć: Mężczyzna
Lokalizacja: Kingdom Hearts
Podziękował: 6 razy
Pomógł: 222 razy

C++ cin.get()

Post autor: matshadow »

fakt, cin.ignore() jest lepszy
ODPOWIEDZ