Printf C: popis, formátování, příklady

Standardní funkce výstupu konzoly v C - printf. Popis je obsažen v hlavičkovém souboru stdio.h. Pomocí této funkce můžete do konzoly zadávat data nebo vlastní zprávy. C je malá a velká písmena. Například dvě funkce printf a scanf se liší od funkcí Printf a Scanf. Všechny znaky ve funkcích printf a scanf musí být také psány malými písmeny. Jeden z nejjednodušších příkladů jazyce C, který zobrazuje známý pozdrav Hello World, jsou:


Stanovení printf funkce v souboru „stdio.h“

Soubor „stdio.h“ se vztahuje na standardní knihovny I /O v jazyce C popis printf a podobných funkcí, v nich obsažené, jak následuje:
Tyto funkce poskytují data načíst z určitých lokalit, a proměnili je řetězec znaků odeslaných k zadanému výstupu.

printf rodina funkcí

Funkční skupina printf při zpracování jazyka C a jsou formátovány na standardní výstupní proud. A funkce printf a produkovat záznam vprintf na standardní výstup stdout, funkce fprintf a vfprintf poslal hodnoty argumentů jsou zobrazeny v určitém výstupním proudem a snprintf, sprintf, vsnprintf a vsprintf zaznamenávat data na řetězec znaků. Všechny tyto funkce fungují pomocí formátovacího řetězce, který udává nutnou konverzi argumentů pro výstup.
Funkce fprintf zapíše výsledek do výstupního toku proudu. Jako pufru, který je řetězec znaků, sprintf funkce vydává výsledek. Chování funkce není definovánopokud čára, která má být odvozena, přesahuje velikost pole vyrovnávací paměti.


snprintf funkce stejným způsobem jako předchozí, psaní dat do vyrovnávací paměť řetězce. Výsledný řetězec znaků končí nulovým znakem, pokud bufsz (velikost vyrovnávací paměti) není nulový. V opačném případě, pokud bufsz nulové, zobrazí se vyrovnávací nic, a vyrovnávací paměť může být i nulový ukazatel, ale je vypočtená hodnota (počet bytů, které musely být písemná) se stále počítá. Funkce printf_s obecně pracuje stejným způsobem jako printf, s výjimkou jednoho okamžiku. Hlavní rozdíl v popisu printf_s a printf v C je: printf_s funkce kontroluje řetězec formátu pro platné znaky na rozdíl od printf, který jen kontroluje formát řetězec prázdný ukazatel objektu. Podívejme se blíže na funkci printf.

Obecný popis

v jazyce C postav prostřednictvím tisku standardní výstup pomocí volání funkce printf. Tým printf ve formátech C nastavit výstupní data, a jsou zaslány do standardního výstupu (stdout hodnota předaná jako argumenty funkcí zobrazených v konzole podle uvedeného formátu řádku, což obsahuje dva druhy prvků prvního druhu -.. Se zobrazí se znaky a prvky, které určují charakteristiky formát dat a způsob jsou odpovědné za prezentaci argumenty při odvozování, patří do druhého typu
. při odvozování proměnné printf v C specifických kombinací znaků na řádek arhu Změny jsou nahrazeny konverzí napodle těchto dat symbolů a pro každý typ dat jsou jejich výstupní formát specifikace.

Typ funkce a návratová hodnota

Funkce printf, která má typ int, vrátí celočíselnou hodnotu představující počet znaků vytištěných na obrazovce. Například můžete přiřadit: int k = printf ("Hello" % c% d% s " 'a', 11" all"!), A pak se hodnota proměnné k je snadno určit, chyba ve výstupu V případě, že návrat.

Syntaxe a závislost

Chcete-li použít funkci printf, je třeba připojit soubor hlavičky stdio.h následovně: #include funkce šablony je: int printf (const char * formát) Během tří bodů se rozumí seznam argumentů, které jsou předmětem odstranění funkci printf m. Auger být použity s různým počtem argumentů, ale první z nich je vždy omezená na obou stranách uvozovkách, a každá další musí být oddělen od předchozího bodu. Co je psáno v uvozovkách a ve skutečnosti není formát specifikace, tištěný beze změny, v opačném případě, spetsyfykator-li splněna, je typ hodnoty zkopírován Forma formát úkol listů:.% [flags] [šířka] [.pozytsyya] [délka] typ

Formát printf v výchozími hodnotami C

Čtení formát řetězce, které je uvedeno v závorkách za názvem funkce, se vyskytuje pouze v jednom směru, zleva doprava, první argument indikována po stejné linii pocházející pouze případ, pokudsplnila první specifikaci. Do té doby až do konce roku formátu řetězce v něm uvedeno specifikace zahájí konverzi a tisku těchto argumentů. The entry formátu polotovary považovány za obyčejného charakter, musí být uzavřeny, pokud není používán ve specifikaci výraz formátu.
Symbol "%" označuje začátek specifikace specifikace výstupu, následovaný kódem formátu. Všechna pole ve specifikaci jsou oddělená, definují podmínky pro formátování čísel nebo symbolů. Formátovaný výstup printf v C má své vlastní zvláštnosti. Je-li počet těchto argumentů převyšuje počet formátu listy jsou vynechány a nezobrazí. V opačném případě, je-li specifikace formátu, než jsou hodnoty v seznamu, které mají být vytištěny argumentů, což je výsledek volání funkce není definována. Ze zřejmých indikací, že tvrzení řada by měla zahrnovat může použít „% m $“ místo „%“ a „* m $“ místo „*“, a m, celé číslo desítkové označuje argument polohy požadované (indexování začne s jedním) .



stream



výstupního proudu na zápis do souboru



, vyrovnávací paměť
(36 )

Ukazatel na řetězec znaků pro později (39 záznamu)


bufsz



Určuje počet znaků pro záznam: maximum hodnota - bufsz-1 a nulový omezovač



formát



Index k vícebytová řetězec s nulovou omezení, která určuje, jak interpretovat výstupních argumentů

Vlajky,




-



výsledky vedení na zleva doprava výstup



+



odvozování číselnou hodnotu, to znamení násilně tištěný "+" na kladnou hodnotu (výchozí se zobrazí pouze "-" k záporné hodnoty)



0



pro celá čísla a s plovoucí čárkou nuly na začátku použit namísto mezery pro vyplnění levých číslic v případě překročení šířky pole délka čísla U celých čísel se příznak ignoruje, pokud je přesnost přesně zadána. U ostatních konverzí s použitím této příznaku není chování funkce definováno. Příznak "0" je ignorován, je-li přítomen příznak "-"



prostor



V případě, že výsledek je na výstupu výraz, který je znakem nezačíná znak tohoto znaku nebo prázdný, pak je k výsledku přidán prostor. Flag "prostor" je ignorován v případě, že je označena jako "+"



#



Provedení alternativní formu konverze
,
, kontrolní sekvence
,
sekvence



výsledek



a



Zvukový signál



n



Překlad do nového řádku

Návrat kurzor na horní řádek



t



okrajů



v



Vertikální tabulka



"


61)




Závěrky

Různéspecifikace formátu



Formát Spetsyfykator



Použití a popis printf C



Argument zboží



%



záznamu doslovný "%"







c



Závěr jednoho symbolu. Existuje argument pro převod nepodepsaného znaku. Při použití modifikátoru argumentem "L" se převede na řetězec znaků



bez znaménka char



s



Vytiskněte řetězce znaků. Tento argument musí být ukazatel na počáteční prvek pole znaků char



char *



d
i



Závěr desetinná znázornění celé číslo se znaménkem



int



, o



Závěr osmičkové podání bez podepsané celé číslo hodnoty



unsigned int



x
X



Závěr hexadecimální reprezentace bez hodnoty celočíselného znaménka. Symboly "a", "b", "c", "d", "e", "f" jsou použity pro konverzi na "x". Pro transformaci "X" - "A", "B", "C", "D", "E", "F"



unsigned int



u



Závěr dekadická bez podepsané celočíselnou hodnotu. V případě, že převedenou hodnotu a přesnost spolu rovno 0, nejsou zobrazeny znaky



unsigned int



, f
F


,
Závěr desetinná reprezentace s plovoucí desetinnou čárkou, což je ochranná známka



dvojitě



, e
, E



Závěr desetinná exponenciální reprezentace s plovoucí desetinnou čárkou, zaoblená a převést tak, žepřed tím, než čárka je jedno číslo a počet číslic za desetinnou čárkou odpovídá přesně reprezentují (default přesnost 6 a 0, pokud zadaný znak čárka se nezobrazuje vůbec). Symbol "e" je zobrazena v horní nebo dolní případě v závislosti na konverzi



dvojitě



a
, A


,
Závěr hexadecimální reprezentace čísel s plovoucí desetinnou čárkou



dvojitě



, g
g

(312 )
Závěr desetinná reprezentace s plovoucí desetinnou čárkou nebo desetinné exponenciálním zastoupení v závislosti na hodnotě a přesnosti



dvojitě



n (322 )


Vrátí počet prvků vytištěných funkcí printf. Výsledek je napsán v proměnné daném argumentem. Specifikace nesmí obsahovat příznaky, šířka pole nebo přesnost



int *



, P



Závěr ukazatel



neplatný *

šířka modifikátor pole

V printf formát řetězec C může být celé číslo po znak procent a formát týmu. Jedná se o oblast šířku modifikátor a ovlivňuje reprezentaci dat zobrazeny. Nejmenší rozpětí, aby hodnot stanovených tímto číslem, a přítomnost tohoto modifikátoru, pokud je argument je menší než vybraného pole it, přidává se v důsledku mezer a nul. Výchozí výplň je mezera, ale můžete nastavit nulu tím, že ji zaregistrujete před specifikací šířky. Modifikátor určuje minimumšířka a více než tato minimální hodnota budou vytištěny bez rušení. Například číslo, které se skládá z méně než 8 znaků a je zadáno specifikací "% 08d", bude doplněno nulami o požadované osm znaků. Podobné modifikátory mohou také specifikovat parametry pro přesnost nebo zarovnání.

Modifikátor přesnosti

Modifikátor přesnosti slouží k určení počtu tištěných znaků v reprezentaci čísel. Chcete-li přidat modifikátor přesnosti, musíte po zadání specifikace pole šířky zařadit tečku a po ní zadat správnou přesnost. Modifikátor přesnosti je definován pro formáty "e", "f", "a", "E", "A" a "F". Za celých modifikátor nastaví počet zobrazovaných číslic přidáním nuly na levé číslice, pokud je to nutné, a odvození racionálních čísel určuje požadovaný počet desetinných míst. Pro termín proměnné: následující po čísle bodu v modifikátoru přesnosti slouží jako prostředek pro určení maximální délky pole, pokud je odvozen. Například, v dané specifikaci formátu „% 4,8 s“ se zobrazí řetězec, jehož délka je v rozmezí od čtyř do osmi znaků v extrémních přebytek znaky budou vynechány.

Ostatní rozměry modifikátory

Alignment default je zarovnán, ale to může být změněn tím, že znak „-“ po „%“. Tato specifikace formátu nastavuje zarovnání na levém okraji. Funkce printf navíc rozlišuje mezi krátkými a dlouhými typy celočíselných výstupů. Přípustné specifikátory: "pro","d", "u", "i", "x" a "x". Dlouhý typ hodnoty je nastaven modifikátorem "l" a krátkým typem je modifikátor "h". Například při výstupu dlouhého celočíselného čísla a hodnota specifikovaného typu krátkého int typu vypadá jako "% ld" a "% hu".

, délka



Popis



H



pro typy zařízení krátkého dosahu, nebo bez znaménka





Pro dlouhé dvojité

Příklady

1. Popis printf C a výsledky volání každé funkce:
2. Závěr na obrazovce jednoduché dialogové zprávy: printf ("zpráva"); 3. Programový kód:
Výrazy uvedené v uvozovkách před specifikací formátu jsou vytištěny na obrazovce, stejně jako argumenty podle formátovacího řetězce. Výsledek výše uvedených funkcí printf C, popis výstupu:
Tento příklad ilustruje výstup obrazovky pomocí různých lineárních formátů, celočíselných proměnných, symbolů a čísel s pohyblivou čárkou.

Funkce vstupu standardního skenování a příklady jeho použití

Funkce scanf použitá pro čtení je zadána z datové klávesnice. Popis souboru printf a scanf v C je uveden v hlavičkovém souboru "stdio.h". scanf ("specifikátory formátu", & value1 & value2);
Jednoduchý příklad práce s funkcí scanf: #include int main () {int a; float b; scanf ("% d% f" & amp; b); }}

Související publikace