Język C++
tekst sformatowany - printf
[specyfikacja] Specyfikacja tekstu sformatowanego dla funkcji printf.Podstawowe informacje
Niniejszy dokument opisuje reguły umożliwiające tworzenie tekstu sformatowanego dla funkcji
printf.
Tekst sformatowany jest to łańcuch znaków w którym umieszcza się tagi o określonej konstrukcji w celu wypisania wartości zmiennych lub stałych. Zaformatowany łańcuch znaków trafia na standardowe wyjście (
stdout) lub do pliku bądź do zmiennej będącej łańcuchem znaków. Miejsce docelowe jest zależne od funkcji jaka zostanie zastosowana. W przypadku funkcji
printf jest to standardowe wyjście (
stdout).
Każdy tag rozpoczyna się znakiem
% co oznacza, że znak
% jest znakiem specjalnym. Aby wypisać znak
% w tekście sformatowanym należy napisać go dwukrotnie. W wyniku wykonania następującego wiersza:
printf( "%%" );
program wyświetli na standardowym wyjściu znak
%
.
Budowa tagu formatującego
Ogólna budowa tagu formatującego jest następująca:
%[flagi][szerokość][.precyzja][rozmiar]specyfikator_typu
Parametry występujące w nawiasach kwadratowych są opcjonalne - uszczegóławiają one sposób interpretacji specyfikatora typu.
Specyfikator typu jest parametrem
wymaganym. Pozostałe parametry są opcjonalne. Specyfikator typu określa typ wyświetlanych danych oraz sposób jego reprezentacji.
Specyfikatory typów
Flagi
Szerokość
Precyzja
Rozmiar
Prefiksy w kompilatorach firmy Microsoft
Niestandardowe prefiksy określające rozmiar danych przekazywanych poprzez argument znajdziesz na stronie
http://msdn.microsoft.com/en-us/library/tcxf1dw6(v=vs.71).aspx.
Nota bezpieczeństwa
Uwaga! Upewnij się, że tekst sformatowany nie może być wprowadzany przez użytkownika. Jeżeli planujesz wypisywać łańcuch znaków wprowadzony przez użytkownika zrób to w następujący sposób:
printf( "%s", sJakisNapis );
Powyższy zapis gwarantuje bezpieczne wypisanie łańcucha znaków na standardowe wyjście. Wywołanie funkcji
printf w inny sposób, tj.
printf( sJakisNapis );
nie jest bezpieczne, bowiem zapis spowoduje błąd krytyczny aplikacji jeżeli w łańcuchu znaków
sJakisNapis wystąpi zapis
%s.
Zagadnienia powiązane
printf | Wypisuje tekst sformatowany na standardowym strumieniu wyjścia. (funkcja) |
---|
Linki zewnętrzne
Wszystkie teksty są chronione prawami autorskimi. Kopiowanie lub rozpowszechnianie treści poza niniejszym serwisem
jest zabronione.
Powyższe ograniczenie nie dotyczy autora opracowania, któremu przysługuje prawo do rozpowszechniania własnego tekstu wedle własnego uznania.