12.07.2015 Views

Programski jezik C - Pmf

Programski jezik C - Pmf

Programski jezik C - Pmf

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

5.4. FUNKCIJA SCANF 87char linija[128];........scanf(" %[ ABCDEFGHIJKLMNOPRSTUVWXYZ]", linija);učitava najveći niz znakova sastavljen od velikih slova i razmaka. Argumentlinija mora naravno imati dovoljnu dimenziju da primi sve znakovei završni nul-znak \0. Uočimo da smo prije %[ ostavili jedan razmak kojigovori funkciji scanf da preskoči sve bjeline koje prethode znakovnom nizu.To je nužno ukoliko smo imali prethodni poziv scanf funkcije. Naime scanfuvijek ostavlja završni znak prijelaza u novi red u ulaznom nizu, tako da binaredbascanf("%[ ABCDEFGHIJKLMNOPRSTUVWXYZ]", linija);pročitala prethodni znak prijelaza u novi red i budući da on nije u unutaruglatih zagrada završila bi čitanje ulaznih podataka i linija ne bi bilaučitana.Druga mogućnost s uglatim zagradama je koristiti sintaksuscanf(" %[^niz znakova]", linija);Sada se u odgovarajući argument učitava najveći mogući niz znakova sastavljenod svih znakova osim onih koji se nalaze u uglatim zagradama. Naprimjer, učitati cijelu liniju bez znaka za prijelaz u novi red možemo pomoćunaredbescanf(" %[^\n]", linija);Na kraj učitanog niza znakova bit će dodan \0, a ispred %[ mora biti ostavljenoprazno mjesto kako bi bile preskočene sve prethodne bjeline.Znak konverzije c učitava jedan znak u varijablu bez obzira je li on bjelinaili ne. Stoga, ako je prvi znak konverzije c potrebno je ispred njega stavitijednu bjelinu kako ne bi pročitao znak za prijelaz u novi red koji je ostaonakon prethodnog poziva funkcije scanf.Nadalje, kontrolni niz " %c%c%c" čita tri znaka. Počet će s prvim znakomkoji nije bjelina (zbog bjeline ispred prvog %c znaka) i pročitat će triuzastopna znaka bili oni bjeline ili ne. Ako se želi čitati samo znakove bezbjelina treba koristiti " %c %c %c" ili %c zamijeniti s %1s.5.4.5 Prefiks *Moguće je preskočiti neki podatak u listi i ne pridružiti ga odgovarajućojvarijabli. To se radi tako da se znaku konverzije doda prefiks *. Na primjer

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!