Ispis C: opis, oblikovanje, primjeri

Standardna funkcija izlaza konzole u C - printf. Opis je sadržan u zaglavlju stdio.h. S ovom značajkom možete na konzolu ispisati podatke ili prilagođene poruke. C je osjetljiv na velika i mala slova. Na primjer, dvije funkcije printf i scanf razlikuju se od funkcija Printf i Scanf. Svi znakovi u printf i scanf funkcijama također moraju biti napisani malim slovima. Jedan od najjednostavnijih primjera C printf-a koji prikazuje dobrodošlicu pozdravnom svijetu je:


Definirajte printf funkcijsku skupinu u datoteci "stdio.h"

Datoteka "stdio.h" pripada standardnoj I /O biblioteci u C. Opis printf-a i njegovih sličnih funkcija naveden je u njemu kako slijedi:
Navedene funkcije generiraju učitavanje podataka s određenih lokacija, pretvaraju ih u niz znakova, šalju u određene izlazne tokove.

printf funkcija obitelji

funkcije printf grupe u C se koriste za obradu i formatiranje izlaznih podataka u standardnoj niti. Štoviše, funkcije printf i vprintf proizvode zapis u standardnom stream stdoutu, funkcije fprintf i vfprintf šalju vrijednost argumenata prikazane su u nekom danom izlaznom toku, a snprintf, sprintf, vsnprintf i vsprintf zapisuju podatke u niz znakova. Sve ove funkcije rade pomoću niza formata koji označava potrebnu pretvorbu argumenata za izlaz.
fprintf funkcija zapisuje rezultat u izlazni tok potoka. U međuspremniku, koji predstavlja niz znakova, ispisuje se rezultat sprintf funkcije. Ponašanje funkcije nije definiranoako je redak koji se deducira premašuje veličinu polja međuspremnika.


Funkcija snprintf, kao i prethodna, zapisuje podatke u međuspremnik nizova. Rezultirajući niz znakova završava s nula znakom, osim ako bufsz (veličina međuspremnika) nije nula. Inače, ako je bufsz vrijednost nula, ništa se ne prikazuje u međuspremniku, a sam međuspremnik može biti nula pokazivač, ali izračunata vrijednost (broj bajtova koji bi se trebali napisati) još se izračunava. Funkcija printf_s općenito radi na isti način kao i printf, osim jednog trenutka. Glavna razlika u opisu printf_s u C i printf je sljedeća: funkcija printf_s provjerava string formata za prisutnost valjanih znakova, za razliku od printf, koji samo provjerava string formata za prazan pokazivač. Pogledajmo izbliza printf funkciju.

Opći opis

U C jeziku, znakovi se ispisuju kroz standardni izlazni tok pozivanjem funkcije printf. Printf naredba u C formatu skup izlaznih podataka i oni se šalju standardnom izlaznom toku (stdout). znakovi koji se prikazuju na zaslonu i elementi koji definiraju osobitosti formata podataka i koji su odgovorni za metodu predstavljanja argumenata u izvedbi, odnose se na drugi tip. Ments se zamjenjuju pretvoriti uprema tim podacima simbola, a za svaku vrstu podataka postoje njihovi specifikacijski izlazni format.

Tip funkcije i povratna vrijednost

Funkcija printf koja ima tip int vraća cjelobrojnu vrijednost koja predstavlja broj znakova ispisanih na zaslonu. Na primjer, možete dodijeliti: int k = printf ("Hello"% c% d% s, "a", 11 "za sve!"), A zatim po vrijednosti k, lako je odrediti, postoji pogreška u izlazu.

Sintaksa i ovisnost

Da biste koristili funkciju printf, trebate povezati zaglavljenu datoteku stdio.h na sljedeći način: #include Predložak funkcije izgleda ovako: int printf (const char * format,) Tri točke se odnose na popis argumenata koji se izvode. Trebalo bi ga koristiti s različitim brojem argumenata, ali prvi je uvijek ograničen na obje strane s dvostrukim šapama, a svaki sljedeći mora biti odvojen od prethodnog zareza. ako je specifikator zadovoljen, kopira se vrsta njegove vrijednosti. Format zadatka specifikacije obrasca:% [zastave] [širina] [.pozicija] [duljina] vrsta

Formatiranje printf-a u C izlazu

Čitanje niza formata koji je naveden u zagradama nakon što se ime naziva funkcija pojavljuje se samo s jedne strane lijevo na desno, a prvi argument, označen nakon same linije, prikazuje se samo u slučajuzadovoljio prvu specifikaciju. Sve dok se formatni niz ne dovrši, specificirane specifikacije u njemu pokreću transformaciju i ispisivanje sljedećih argumenata. U traci formata razmaknica se smatra normalnim znakom i prenosi se do zaključka u slučajevima kada se ne koristi u izrazu specifikacije formata.
Simbol "%" označava početak specifikacije izlazne specifikacije, nakon čega slijedi kôd formata. Sva polja u specifikaciji su odvojena, definiraju se uvjeti za formatiranje brojeva ili simbola. Formatirani izlaz printf-a u C ima svoje osobitosti. U slučaju da broj navedenih argumenata premašuje broj specifikacija formata, oni se preskaču i ne prikazuju. U suprotnom, ako su specifikacije formata veće od vrijednosti popisa za ispis, rezultat poziva nije određen. Za eksplicitnu naznaku koji argument argumenta treba koristiti, moguće je koristiti "% m $" umjesto "%" i "* m $" umjesto "*", a m, cjelobrojna decimalna vrijednost, označava položaj željenog argumenta (indeksiranje počinje s jedinicom) ,

Parametri



potok



Izlazna struja za pisanje u datoteku



bafer

)

Pokazivač na niz znakova za daljnje snimanje u njemu



bufsz



Određuje broj znakova koje je dopušteno pisati: maksimum vrijednost je bufsz-1 i još uvijek nulto ograničenje



format



Pokazivač na multi-bajtni niz s nultim ograničenjem koji definira kako interpretirati argumente 55) Zastave,

Zastava



Opis



-



Poravnajte rezultat s lijevim rubom izlaznog polja



+



Kada je izvedena numerička vrijednost, ona ima znak "+" koji je nasilno stavljen ispred pozitivne vrijednosti



0



Za cijele brojeve i brojeve s pomičnim zarezom vodeće nule se koriste umjesto "-" prije negativne vrijednosti. razmaknice za popunjavanje lijevih znamenki u slučaju prekoračenja širine polja duljina broja Za cijele brojeve, zastavica se zanemaruje ako je preciznost precizno specificirana. Za ostale pretvorbe koje koriste ovu zastavu, ponašanje funkcije nije definirano. Oznaka "0" se ne uzima u obzir ako je prisutna oznaka "-"



prostora



. Znak ovog znaka ili prazan, prostor se dodaje rezultatu. Prostor "flag" se zanemaruje ako postoji oznaka "+"



#



Izvodi se alternativni oblik pretvorbe

Kontrolne sekvence 105)
Redoslijed



Rezultat



a



Zvučni signal
120)

n



Prijevod u novi redak



r



Povratak pokazivača na početak retka



t



Kartice



v



Vertikalna tabelarna prikaza



"



Zaključak dvostruke šape

61)




Različiti zaključci

različitiFormat specifikacija



Format specifikacija



Ispis ispisa C



Vrsta argumenta



%



Pisanje literala "%"







196)


Zaključak jednog simbola. Postoji argument za pretvaranje nepotpisanog znaka. Kada se koristi modifikator "l", argument se pretvara u niz znakova



nepotpisani char



s



Ispis nizova znakova. Argument mora biti pokazivač na početni element niza znakova char



char *



d
i



Zaključak decimalnog prikaza cjelobrojne vrijednosti s predznakom



int



o



Osmerokutni zaključak reprezentacija bez cjelovite vrijednosti s potpisom



unsigned int



x
X



Zaključak heksadecimalni prikaz bez znaka cjelobrojne vrijednosti. Za pretvorbu "x" koriste se znakovi "a", "b", "c", "d", "e", "f". A za transformaciju "X" - "A", "B", "C", "D", "E", "F"



nepotpisani int



u



Zaključak decimalne transformacije bez potpisane cjelobrojne vrijednosti. Ako su konvertirana vrijednost i točnost zajedno 0, tada se znakovi ne prikazuju



nepotpisani int



f
F

273)
Zaključak decimalnog prikaza broja s pomičnim zarezom koji ima znak



double



e
E
285)

Zaključak decimalnog eksponencijalnog prikaza s pomičnim zarezom, zaokružen i konvertiran tako daJedna znamenka ostaje ispred zareza, a broj znamenki nakon zareza odgovara točnosti prikaza (prema zadanim postavkama točnost je 6, a ako je zadana 0, simbol se uopće ne prikazuje). Simbol "e" je prikazan u gornjem ili donjem slučaju ovisno o transformaciji



dvostruko



a
A

299)
Zaključak heksadecimalnog prikaza broja s pomičnim zarezom


dvostrukog



g
G


)
Zaključak decimalnog prikaza broja s pomičnim zarezom ili njegovog decimalnog eksponencijalnog prikaza ovisno o vrijednosti i točnosti



double



n
)


Vraća broj elemenata ispisanih funkcijom printf. Rezultat se upisuje u varijablu zadanu argumentom. Specifikacija ne smije sadržavati zastavice, širine polja ili točnost



int *



p



Zaključak pokazivač



void *

Modifikator širine polja

U retku formata printf C, cijeli broj se može napisati nakon znaka postotka i prije naredbe za formatiranje. To je modifikator širine polja i utječe na prikaz prikazanih podataka. Najmanja širina polja za vrijednost određena je ovim brojem, a prisutnost takvog modifikatora u slučaju da se argument ispostavi da je manji od polja koje mu je dodijeljeno, uzrokuje dodavanje praznina ili nula rezultatu. Zadano punilo je znak razmaka, ali možete postaviti nulu tako da ga registrirate prije specifikacije širine. Modifikator određuje minimumširina, a više od ove minimalne vrijednosti će se ispisati bez smetnji. Broj, na primjer, koji se sastoji od manje od osam znakova i upisuje se s "% 08d" specifikacijom, bit će nadopunjen nulama na potrebnih osam znakova. Slični modifikatori također mogu odrediti parametre za točnost ili poravnanje.

Modifikator točnosti

Modifikator točnosti služi za određivanje broja ispisanih znakova u prikazu brojeva. Da biste dodali modifikator preciznosti, trebate staviti točku iza specifikacije polja širine i odrediti točnu preciznost nakon nje. Modifikator točnosti je definiran za formate "e", "f", "a", "E", "A" i "F". Za cijele brojeve, modifikator postavlja broj prikazanih znamenki, dodajući nule na lijevu ruku, ako je potrebno, a pri izlučivanju racionalnih brojeva određuje potreban broj decimalnih mjesta. Za izraz varijable: sljedeći nakon broja točke u modifikatoru točnosti služi kao sredstvo za određivanje maksimalne duljine polja kada se zaključi. Na primjer, s specifikacijom formata "% 4.8 s", bit će prikazan niz čija je duljina u rasponu od četiri do osam znakova, u slučaju viška, ekstremni znakovi će biti izostavljeni.

Drugi modifikatori formata

Zadano poravnanje je poravnanje na desnom rubu, ali se može promijeniti stavljanjem znaka "-" nakon "%". Ova specifikacija formata postavlja poravnanje na lijevom rubu. Osim toga, funkcija printf može razlikovati kratke i duge vrste cjelobrojnih izlaza. Dopušteni specifikatori: "pro","d", "u", "i", "x" i "x". Dugi tip vrijednosti određuje modifikator "l", a kratki je modifikator "h". Na primjer, kod izlaza dugog cijelog broja, a vrijednost nepotpisanog kratkog formata specifikacije int tipa izgleda kao "% ld" odnosno "% hu".

Dužina



Opis



h



Za tipove kratke ili nepotpisane





Za duge dvostruke

Primjeri

1. Opis printf C i rezultati pozivanja svake funkcije:
2. Zaključak na zaslonu jednostavne poruke dijaloga: printf ("message"); 3. Šifra programa:
Izrazi dani u dvostrukim navodnicima prije nego što se specifikacije formata ispišu na ekranu, kao i argumenti koji slijede niz formata. Rezultat gore navedenih funkcija C, opis izlaza:
Ovaj primjer ilustrira izlazni zaslon pomoću različitih formata linija, cjelobrojnih varijabli, simbola i brojeva s pomičnim zarezom.

Standardna ulazna funkcija za scanf i primjeri njezine uporabe

Funkcija scanf koja se koristi za čitanje unosi se s podatkovne tipkovnice. Opis printf i scanf u C prikazan je u zaglavlju "stdio.h". scanf ("specifikatori formata", & amp; vrijednost1 & vrijednost2);
Jednostavan primjer rada s funkcijom scanf: #include int main () {int a; float b; scanf ("% d% f" & amp; b & b); }

Povezane publikacije