Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

podrazumjevana vrijednost newline

[es] :: C/C++ programiranje :: C/C++ za početnike :: podrazumjevana vrijednost newline

[ Pregleda: 2137 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Xarios

Član broj: 127199
Poruke: 118
*.tel.net.ba.



+1 Profil

icon podrazumjevana vrijednost newline04.01.2008. u 16:33 - pre 198 meseci
Code:

1:     //Listing 11.9 using cin.get()
2:
3:     #include <iostream.h>
4:
5:     int main()
6:     {
7:        char buffer[80];
8:        cout << "Enter the string: ";
9:        cin.get(buffer, 79);       // get up to 79 or newline
10:       cout << "Here's the buffer:  " << buffer << endl;
11:     return 0;
12: }


Output: Enter the string: Hello World
Here's the buffer: Hello World
Analysis: Line 9 calls the method get() of cin. The buffer declared in line 7 is passed in as the first argument. The second argument is the maximum number of characters to get. In this case, it must be 79 to allow for the terminating null. There is no need to provide a terminating character because the default value of newline is sufficient.


PITANJE:

U opisu KODA, sta znaci recenica koju sam boldao (crvene boje), odnosno sta znaci: podrazumjevana vrednost NEWLINE, pa ne treba karakter za terminaciju?
Ako moze da malo objasnite sta je "pisac htio reci"?

PS: znam da je banalno pitanje ali ipak bi htio sta se mislilo tacno pod ovom izjavom!
 
Odgovor na temu

Branimir Maksimovic

Član broj: 64947
Poruke: 5534
c-bg-d-p3-180.bvcom.net.



+1064 Profil

icon Re: podrazumjevana vrijednost newline04.01.2008. u 17:28 - pre 198 meseci
get member funkcija cita karaktere sve dok ne naleti na '\n' ili EOF.
Nula je automatski dodata na kraj niza ,tako da cin.get(buffer,80)
bi ucitalo do 79 karaktera a 80. bi bila nula.
Ova funkcija ne ekstraktuje new line te je potrebna posebna
funkcija , recimo cin.ignore(80,'\n') da bi se ovo ekstraktovalo
nakon get-a, a kako bi mogla sledeca linija da se ucita.
Ovo sto si boldovao mi bas nije jasno sta je pisac hteo da kaze.

Pozzzzzzzzzz!
 
Odgovor na temu

Xarios

Član broj: 127199
Poruke: 118
*.tel.net.ba.



+1 Profil

icon Re: podrazumjevana vrijednost newline04.01.2008. u 20:18 - pre 198 meseci
Hvala Branimire na tvom odgovoru.

Cekam daljnje odgovore.

Znaci sve mi je ostalo jasno osim, boldane (crvene) recenice, pa bih molio da mi objasnite.


Evo da ja pokusam nesto sam sebi objasnit:
funkciji cin.get() nije potreban terminator karakter jer se podrazumjevano prelazi u novi red nakon sto se popuni max broj karaktera.
A posto se nece daljnje upisivanje nastavit u istom redu nije ni potrebno dodavat terminator.
Dokaz za ovu moju tvrdnju je:
recenica "Here's the buffer" nece biti ispisana odmah iza zavrsnog unesenog karaktera iako nismo prije ove recenice dodali znak za prelaz u novi red (\n) ili poslije fun cin.get() stavili endl. Nego se ispis recenice "Here's the buffer" u navedenom programu ispisiva u novoj liniji odnosno ispod naseg proizvoljnog unosa karaktera!

Molim da me ispravite ako nisam u pravu.



[Ovu poruku je menjao Xarios dana 04.01.2008. u 21:34 GMT+1]
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.114.*



+7 Profil

icon Re: podrazumjevana vrijednost newline10.01.2008. u 18:00 - pre 198 meseci
Evo da na nagadjas
Svaki string upisan u memoriju je char niz koji se zavrsava bajtom koji ima vrednost nula.
U literaturi to se zove "Null terminated string" . Nula na kraju jednostavno oznacava kraj stringa (nema veze sa novim redom).
Windows funkcije za upis i ispis barataju sa tom nulom na kraju tako da ne moramo da je dodajemo pri upisu.
U ovom tvom kodu ti si rezervisao 80 bajtova i preneo funkciji za unos da moze da upise 79 (zato sto jedan mora da ostane slobodan da bi upisala 0)
Ako unesemo 3 slova nula ce biti na cetvrtom mestu , ako unesemo 79 bice na osamdesetom.
Pozdrav
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: podrazumjevana vrijednost newline

[ Pregleda: 2137 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.