Printf C: opis, formatowanie, przykłady

Standardowa funkcja wyjścia konsoli w C - printf. Jego opis znajduje się w pliku nagłówkowym stdio.h. Dzięki tej funkcji możesz wysyłać dane lub niestandardowe komunikaty do konsoli. C uwzględnia wielkość liter. Na przykład dwie funkcje printf i scanf różnią się od funkcji Printf i Scanf. Wszystkie znaki w funkcjach printf i scanf również muszą być pisane małymi literami. Jednym z najprostszych przykładowych C printf wyświetlającą znane powitanie cześć światowej, są następujące:


oznaczanie czynności printf w pliku „stdio.h”

Plik „stdio.h” odnosi się do standardowego biblioteki I /O w języku opisu printf C i podobne funkcje w niej zawarte, jak następuje:
Funkcje te produkują ładowania danych z określonych miejsc, zamieniając je w ciąg znaków wysyłanych do określonego wyjścia.

Rodzina printf funkcji

Zastosowanie printf grupy w przetwarzaniu i C są sformatowane do standardowego strumienia wyjściowego. I funkcja printf i produkować rekord vprintf w standardowym stdout, funkcja fprintf i vfprintf wysłany wartości argumentów są wyświetlane w określonym strumieniu wyjściowym i snprintf, sprintf, vsnprintf i płytowych vsprintf danych na ciąg znaków. Wszystkie te funkcje działają przy użyciu ciągu formatu wskazującego niezbędną konwersję argumentów dla wyjścia.
Funkcja fprintf zapisuje wynik do strumienia wyjściowego strumienia. Jako bufor, który jest ciągiem znaków, funkcja sprintf wyprowadza wynik. Zachowanie funkcji nie jest zdefiniowanejeśli linia do wyprowadzenia przekracza rozmiar tablicy buforów.


Funkcja snprintf, podobnie jak poprzednia, zapisuje dane w buforze ciągów. Wynikowy ciąg znaków kończy się znakiem zerowym, chyba że bufsz (rozmiar bufora) nie jest równy zeru. W przeciwnym razie, jeśli bufsz zera, wyświetli się nic bufor i bufor może również być null pointer, ale obliczona wartość (liczba bajtów, które musiały zostać napisane) jest nadal obliczana. Funkcja printf_s działa na ogół tak samo, jak printf, z wyjątkiem jednej chwili. Główną różnicą w Opisanie printf_s i printf w C to: funkcja printf_s sprawdza ciąg format poprawnych znaków przeciwieństwie printf, który tylko sprawdza ciąg formatu dla pustego obiektu wskaźnika. Przyjrzyjmy się funkcji printf.

Opis ogólny

w postaci języka C przez drukując standardowe stosując printf wywołaniu funkcji. printf zespół w formatach C ustawić dane wyjściowe, a są one wysyłane do standardowego wyjścia (stdout wartość przekazana jako argumenty funkcji wyświetlanych w konsoli na podstawie wspomnianego formatu liniowego, który z kolei zawiera dwa rodzaje elementów pierwszego rodzaju. - jest. wyświetlane są znaki, a elementy, które określają cechy formatu danych i metody są odpowiedzialne za przedstawienie argumentów w wyprowadzeniu należą do drugiego typu.
wynikające zmienne printf w C konkretnych kombinacji znaków w linii arhu Czynności są zastępowane przez konwersję nazgodnie z tymi danymi symboli, a dla każdego rodzaju danych istnieje ich format wyjściowy specyfikacji.

typu i wartość powrotna funkcji

printf funkcji, która jest typu int zwraca wartość całkowitą wskazującą liczbę drukowanych znaków na ekranie. Na przykład, można przypisać: int k = printf („Hello”% c% d% s „«a», 11" wszystko”!), A następnie wartość zmiennej k jest łatwo określić, błąd w danych wyjściowych Jeśli powrót.

Składnia i zależność

Aby użyć funkcji printf, musisz połączyć plik nagłówkowy stdio.h w następujący sposób: #include szablon jest funkcja: int printf (const char * format) w ciągu trzech punktów oznacza listę argumentów, które są przedmiotem funkcji printf m usunięcia. Auger być stosowane z różną liczbą argumentów, ale pierwszy jest zawsze ograniczona z obu stron cudzysłów, a każda następna musi być oddzielony od poprzedniego punktu. Co jest napisane w cudzysłowie i w rzeczywistości nie jest to format specyfikacja, drukowane bez zmian, w przeciwnym razie, spetsyfykator jeśli spełnione, typ wartości są kopiowane Postać formatu arkuszy zadanie:.% [flagi] [szerokość] [.pozytsyya] [length] pisania

printf format wartościami wyjściowymi C

Odczyt ciąg format, który jest wskazany w nawiasie po nazwie funkcji występuje tylko w jednym kierunku od lewej do prawej, a pierwszy argument wskazano po tej samej linii wywiedziona sprawa, jeślispełnił pierwszą specyfikację. Do tego czasu, aż do końca ciągu formatu tam określone specyfikacje rozpocznie konwersję i drukowanie tych argumentów. Wykroje formacie wejście traktowane jako zwykły znak, zostaje zawarta, gdy nie jest używany w specyfikacji formatu wypowiedzi.
Symbol "%" wskazuje początek specyfikacji specyfikacji wyjściowej, po której następuje kod formatu. Wszystkie pola w specyfikacji są oddzielne, definiują warunki formatowania liczb lub symboli. Formatowane wyjście printf w C ma swoje osobliwości. Jeśli liczba tych argumentów przekracza liczbę arkuszy formatu są pomijane i nie są wyświetlane. W przeciwnym razie, jeżeli specyfikacje formatu niż wartości w wykazie, który zostanie wydrukowany argumenty, wynik wywołania funkcji nie jest zdefiniowana. Z oczywistych wskazań że argument rząd powinny obejmować może wykorzystywać „% m $” zamiast „%” i „* m $” zamiast „*”, i M, wartość liczba całkowita określa pozycję wymaganą argument (indeksowanie zaczyna się od jednego) .

,

reklamy strumień



strumień wyjściowy do zapisu pliku



, bufor
, (36 )

, wskaźnik na łańcuch znaków, następnie zapisuje się



bufsz



określa liczbę znaków, na płytę: maksymalna wartość -
format bufsz-1 i ogranicznik zera






Indeks wielo-bajtowy ciąg znaków o zerowej przymusu, który określa, jak należy interpretować argumenty wyjściowe

Flagi,stosowane w ciągu formatowania

flagi



OPIS



-



wyniki osiowania w lewo prawego wyjścia



+



wyznaczania wartości liczbowej, znak siłą drukowane "+" na wartość (domyślnym jest wyświetlana tylko "-" na wartość ujemna)



0



dla liczb całkowitych i zmiennoprzecinkowych zer wiodących używana zamiast znaki spacji, aby wypełnić lewą cyfrę w przypadku, gdy szerokość pola zostanie przekroczona długość numeru W przypadku liczb całkowitych flaga jest ignorowana, jeśli precyzja jest dokładnie określona. W przypadku innych konwersji używających tej flagi zachowanie funkcji nie jest zdefiniowane. Flaga "0", to pomija się, jeśli jest obecny flaga "-"



, przestrzeń



Jeżeli wynik ekspresji wyjściowy, który jest znakiem nie zacząć znak tego znaku lub pusty, a następnie spacja zostanie dodana do wyniku. Flaga "przestrzeń" jest ignorowany czy nie jest oznaczona jako "+"



#



wykonanie alternatywne formy konwersji

sekwencji kontrolnej

Sekwencja



Wynik



a



Sygnał dźwiękowy
120)

n



Przeliczenie nowej linii



R



Powrót kursora do początku linii



t



Tabulatory



v



Tabulacja pionowa



"



Wnioski podwójne łapy

(1 61)




Ukośniki konkluzji

RóżneDane formatu



w formacie Spetsyfykator



Zastosowanie i opis printf C



argument produktu
,


%



Zapis znaków "%"







C



Zawarcie jednego symbolu. Istnieje argument do przekonwertowania niepodpisanego znaku. Przy użyciu modyfikatora "L", argument przekształca się na ciąg znaków



char unsigned



S



Drukuj ciągi znaków. Argument musi być wskaźnikiem początkowej elementu tablicy znaków Char



char *



d
i



Wnioski przedstawienie dziesiętny wartości całkowitej ze znakiem



int



o



Wnioski ósemkowy zgłoszenia bez podpisanej wartości całkowitej



int unsigned



x
x



Wnioski szesnastkowy reprezentacja bez wartości całkowitej liczby znaków. Znaki "a", "b", "c", "d", "e", "f" służą do konwersji "x". Do transformacji "X" - "A", "B", "C", "D", "E", "F",



Int bez znaku
,


u



Wnioski dziesiętnej bez oznaczoną wartość całkowitą. Jeśli wartość przerobiona i dokładność razem równe 0, znaki nie są wyświetlane



unsigned int



f
F



Wnioski reprezentacja dziesiętna zmiennoprzecinkowych, który jest znak



double



e
PL



Zawarcie dziesiętnej wykładniczej reprezentacji zmiennoprzecinkowej, zaokrąglone i przekonwertowane tak, abyprzed przecinkiem jest jeden numer, a liczba cyfr po kropce dziesiętnej odpowiada dokładnie oznaczają (domyślna precyzja jest 6 i 0, jeśli określony charakter jest przecinek nie jest wyświetlany w ogóle). Symbol "e" jest wyświetlany w górnym lub dolnym przypadku, w zależności od konwersji



podwójnej



A
, A



Wnioski szesnastkowym reprezentację liczb zmiennoprzecinkowych



podwójnej



g
g

(312 )
Wnioski dziesiętnej reprezentacji zmiennoprzecinkowej lub dziesiętną wykładniczej reprezentacji w zależności od wartości i dokładność



podwójnej



n (322 )


Zwraca liczbę elementów wydrukowanych przez funkcję printf. Wynik jest zapisany w zmiennej podanej przez argument. W opisie mogą zawierać znaczniki, szerokość pola lub precyzji



Int *



P



Wnioski wskaźnik



void *

Modyfikator szerokości pola

W linii formatu printf C, liczba całkowita może być zapisana po znaku procentu i przed poleceniem formatowania. Jest to modyfikator szerokości pola i wpływa na prezentację wyświetlanych danych. Najmniejsza brzeg przeznaczony do wartości określonych przez ten numer i obecność tego modyfikatora jeżeli argument jest mniejszy niż wybrana wartość pola To, dodaje do wyniku szczelin lub zerowe. Domyślnym wypełniaczem jest znak spacji, ale możesz ustawić zero, rejestrując je przed specyfikacją szerokości. Modyfikator określa minimumszerokość i więcej niż ta minimalna wartość zostanie wydrukowana bez zakłóceń. Liczba, na przykład składająca się z mniej niż ośmiu znaków i wpisana ze specyfikacją "% 08d", zostanie uzupełniona zerami do wymaganych ośmiu znaków. Podobne modyfikatory mogą również określać parametry dokładności lub wyrównania.

Modyfikator dokładności

Modyfikator dokładności służy do określania liczby drukowanych znaków w reprezentacji liczb. Aby dodać modyfikator precyzji, musisz wstawić kropkę za specyfikacją pola szerokości i po niej określić poprawną precyzję. Modyfikator dokładności jest zdefiniowany dla formatów "e", "f", "a", "E", "A" i "F". W przypadku liczb całkowitych modyfikator ustawia liczbę wyświetlanych cyfr, dodając zera w przypadku osób leworęcznych, jeśli to konieczne, a wydając liczby wymierne, określa wymaganą liczbę miejsc dziesiętnych. Dla terminu zmienne: następny po numerze punktu w modyfikatorze dokładności służy jako środek określania maksymalnej długości pola po wydedukowaniu. Na przykład przy specyfikacji formatu "% 4,8 s" zostanie wyświetlony łańcuch, którego długość zawiera się w przedziale od czterech do ośmiu znaków, w przypadku nadmiernego przekroczenia, skrajne znaki zostaną pominięte.

Inne modyfikatory formatu

Domyślne wyrównanie jest wyrównaniem na prawej krawędzi, ale można je zmienić, umieszczając znak "-" po "%". Ta specyfikacja formatu ustawia wyrównanie na lewej krawędzi. Ponadto funkcja printf może rozróżniać krótkie i długie typy wyjść całkowitych. Dopuszczalne specyfikatory: "pro","d", "u", "i", "x" i "x". Długi Wartość typu jest modyfikator „L”, a krótka - modyfikator „h”. Na przykład, odchylenia i długie całkowite wartości typu unsigned int specyfikację formatu skrócie wygląda ld „%” i „% hu”, odpowiednio.

długości



Opis



H



dla bliskiego zasięgu lub unsigned



)

w przypadku typu długości podwójnej

przykłady

1. Opis printf C i wyniki każdego wywołania funkcji
2. Podsumowanie na ekranie prostego komunikatu dialogowego: printf ("wiadomość"); 3. Kod programu:
Wyrażenia podane podwójnymi cudzysłowami, zanim specyfikacje formatu są drukowane na ekranie, a także argumenty następujące po ciągu formatu. Wynik powyższych funkcji printf C, opis wyniku:
W przykładzie tym zilustrowano wyjście do ekranu, za pomocą różnych formatów linii zmiennych całkowitych, symbole i liczb zmiennoprzecinkowych.

Standardowa funkcja wejścia scanf i przykłady jej wykorzystania

Funkcja skanowania używana do odczytu jest wprowadzana z klawiatury danych. Opis printf i scanf w C jest przedstawiony w pliku nagłówkowym "stdio.h". scanf ("specyfikatory formatu" i wartość1 i wartość2);
Prosty przykład funkcji scanf: include Int główny () {int a; float b; scanf ("% d% f" i amp; b); }

Powiązane publikacje