Forum Coders' city Strona Główna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Potrzebuję szybkiej odpowiedzi na moje pytanie... Skrócony regulamin

[C++] cin.ignore, cin.getline



 
Odpowiedz do tematu    Forum Coders' city Strona Główna -> C i C++
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
PoQsa
Gość





PostWysłany: Nie Gru 28, 2008 4:14 pm      Temat postu: [C++] cin.ignore, cin.getline Odpowiedz z cytatem Pisownia

Witam! Mam kilka pytań dt c++. Z tym programem mam do czynienia od dwóch miesięcy i mało na razie wiem...
Nie mogę znaleźć w swojej książce dwóch rzeczy:

- co oznacza komenda cin.ignore(); bez zadnych parametrow w nawiasach
- co tak naprawde robi cin.getline(a,b);


Będę wdzięczna za wyjaśnienie:)
Pozdrawiam!
Powrót do góry
Kanguro



Dołączył: 04 Lis 2008
Posty: 235

PostWysłany: Nie Gru 28, 2008 4:42 pm      Temat postu: Odpowiedz z cytatem Pisownia

Widać, że początkująca, bo C++ to przecież nie program, tylko język programowania : )).

Bardzo przydatna strona dotycząca biblioteki standardowej IOStreams, tak na przyszłość:
http://www.cplusplus.com/

A co do Twoich pytań, nie udzielę Ci odpowiedzi na pierwsze bo nie jestem pewien odpowiedzi, a lepiej nie mówić nic niż niepewne informacje.

cin.getline(a, b) służy do pobierania określonej przez b liczby znaków ze standardowego wejścia i umieszczaniu ich w tablicy char'ów a. Od "zwykłego" sposobu pobierania danych:
Kod:
cin >> a

różni się tym, że tutaj pobieramy określoną ilość znaków oraz pobieramy tzw. białe znaki (tabulator, spacja).
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Gribo



Dołączył: 01 Cze 2008
Posty: 4

PostWysłany: Nie Gru 28, 2008 4:47 pm      Temat postu: Odpowiedz z cytatem Pisownia

Cin.ignore to funkcja która ignoruje wszystkie znaki, dopóki nie napotka znaku podanego w argumencie tej funkcji.

Poszukaj jej specyfikacje w internecie powinno dać ci to pełna informacje.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
PoQsa
Gość





PostWysłany: Nie Gru 28, 2008 4:57 pm      Temat postu: Odpowiedz z cytatem Pisownia

dziękuję bardzo za pomoc!:)



ech z tym programem to takie przejęzyczenie;)
Powrót do góry
szczerb



Dołączył: 08 Mar 2008
Posty: 242
Skąd: Łódź

PostWysłany: Nie Gru 28, 2008 5:01 pm      Temat postu: Odpowiedz z cytatem Pisownia

Gribo, no nie bardzo.

http://www.cplusplus.com/reference/iostream/istream/ignore.html

Bez parametrów usunie jeden znak ze strumienia.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
PoQsa
Gość





PostWysłany: Nie Gru 28, 2008 8:18 pm      Temat postu: Odpowiedz z cytatem Pisownia

to by miało sens...:)
Powrót do góry
marcin_an
Site Admin


Dołączył: 26 Maj 2005
Posty: 17273
Skąd: z drugiej strony Kabla

PostWysłany: Nie Gru 28, 2008 8:51 pm      Temat postu: Odpowiedz z cytatem Pisownia

Nie za bardzo w obydwu przypadkach...

Odnośnik podany przez szczerba dosyć dokładnie to opisuje. Gdybyś chciała na polski:

istream::ignore(n, e) pobiera i wyrzuca co najwyżej n znaków lub wszystkie znaki do napotkania e - którekolwiek nastąpi wcześniej. Oprócz tego przestaje czytać w przypadku wystąpienia końca strumienia lub błędu odczytu. Domyślne wartości n i e to odpowiednio 1 i EOF. Czyli wywołania:
Kod:
cin.ignore();
cin.ignore(10);
cin.ignore(10, 'a');
"ignorują" odpowiednio na standardowym wejściu:
  1. 1 znak.
  2. 10 znaków lub mniej, jeśli EOF wystąpi wcześniej.
  3. 10 znaków lub mniej, jeśli 'a' wystąpi wcześniej.
Oprócz tego istnieje specjalna wartość n równa maksymalnej wartości streamsize, która powoduje ignorowanie wszystkich znaków aż do napotkania e (niezależnie od ich ilości).

istream::getline(s, n, d) pobiera ciąg znaków i zapisuje go do ciągu char wskazanego przez s. Wczytywanie kończy albo po wczytaniu n-1 znaków, albo napotkaniu d (którekolwiek nastąpi wcześniej). Błąd odczytu lub koniec danych oczywiście również powoduje zakończenie odczytu. Domyślną wartością dla d jest '\n'. Przykładowo:
Kod:
char data[20];
cin.getline(data, 20);
cin.getline(data, 4);
cin.getline(data, 10, 'a');
Wczytują odpowiednio:
  1. 20 znaków lub mniej, jeśli natrafi na znak nowej linii.
  2. 4 znaki lub mniej, jeśli natrafi na znak nowej linii.
  3. 10 znaków lub mniej, jeśli natrafi na 'a'.
W powyższym kodzie tablica podana w celu uproszczenia zapisu.

_________________
Matematyka to taki twór, który pozwala opisać sokowirówkę jako urządzenie pobierające ujemne odpadki i produkujące z nich sok.
"Lameria atakuje" | RTFM | UMLet - edytor UML inaczej | Wykłady ks.Pawlukiewicza
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Wyświetl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Główna -> C i C++ Wszystkie czasy w strefie CET (Europa)

Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Możesz dodawać załączniki na tym forum
Możesz pobierać pliki z tego forum




Debug: strone wygenerowano w 0.09096 sekund, zapytan = 9
contact

| Darmowe programy i porady Jelcyna | VB4all | Tansze zakupy w Helionie |