Najlepsza odpowiedź
C ma wiele specyfikatorów formatu. Oczywiście istnieje jeden dla każdego typu, ale poza tym istnieją inne, tak że programista może wyświetlić zmienną określonego typu w kilku różnych reprezentacjach. Na przykład \% d wyświetli liczbę całkowitą. Ale tę samą liczbę całkowitą można również wyświetlić w formacie szesnastkowym, używając \% x. Niemniej jednak listę wszystkich oryginalnych specyfikatorów formatu C można znaleźć tutaj: Lista wszystkich specyfikatorów formatu w programowaniu w C – Codeforwin
Jednak zalecam bardziej nowoczesne podejście do pisania kodu C, które ma związek z deklarowanie zmiennych i odpowiednie ich wyświetlanie. Oznacza to użycie definicji dostarczonych przez
Źródło: Jak C (od 2016 r.)
-
int8\_t
,int16\_t
,int32\_t
,int64\_t
– liczby całkowite ze znakiem -
uint8\_t
,uint16\_t
,uint32\_t
,uint64\_t
– liczby całkowite bez znaku -
float
– standardowa 32-bitowa zmienna punkt -
double
– standardowy 64-bitowy zmiennoprzecinkowy -
intptr\_t, uintptr\_t, ptrdiff\_t
Ostatni punkt zawiera typy, których możesz użyć do arytmetyki wskaźników.
Teraz, biorąc pod uwagę takie typy, właściwy sposób ich wyświetlania jest następujący:
-
size\_t
–\%zu
-
ssize\_t
–\%zd
-
ptrdiff\_t
–\%td
- surowe pointe wartość r –
\%p
(wyświetla szesnastkowo w nowoczesnych kompilatorach; rzuć swój wskaźnik na(void *)
najpierw) -
int64\_t
–"\%" PRId64
-
uint64\_t
–"\%" PRIu64
64-bitowe typy powinny być drukowane tylko przy użyciuPRI[udixXo]64
style makr. Czemu? Na niektórych platformach wartość 64-bitowa tolong
, a na innych jest to „salong long
. Te makra zapewniają odpowiednią podstawową specyfikację formatu w W rzeczywistości niemożliwe jest określenie prawidłowego ciągu formatu dla wielu platform bez tych makr formatu, ponieważ typy zmieniają się spod Ciebie (i pamiętaj, rzutowanie wartości przed wydrukowaniem nie jest bezpieczne ani logiczne). -
intptr\_t
–"\%" PRIdPTR
-
uintptr\_t
–"\%" PRIuPTR
-
intmax\_t
–"\%" PRIdMAX
-
uintmax\_t
–"\%" PRIuMAX
Przykład drukowania jednego z tych typów:
printf("Local number: \%" PRIdPTR "\n\n", someIntPtr);
Zwróć uwagę, że PRIdPTR jest poza cudzysłowami, ale tuż po znaku procentu. Dość denerwujące składniowo rzeczywiście.
W każdym razie, mam nadzieję, że to odpowiada większości na to, do czego byłeś król dla. Informacje podane na temat używania języka C w nowocześniejszy sposób dotyczące typów danych i wyświetlania ich za pomocą specjalnych specyfikatorów formatu pochodzą ze świetnego dokumentu, który sugeruję przeczytać How to C (od 2016 r.) .
Nie zapominaj również, że możesz wyszukiwać specyfikatory formatu i wszystkie rzeczy związane z printf () na stronach podręcznika. Jeśli korzystasz z systemu UNIX lub UNIX, po prostu otwórz swoją powłokę i
bash$ man printf
Również Google jest Twoim przyjacielem…; -)
Odpowiedź
Specyfikatory formatu zaczynają się od wartości procentowej \% , po którym następuje specjalny znak identyfikujący typ danych.
Istnieje głównie 6 typów specyfikatorów formatu , które są dostępne w C.
Lista specyfikatorów formatu w C
Specyfikator formatu liczby całkowitej\% d
\% d specyfikator formatu jest zaimplementowany do reprezentowania wartości całkowitych. Jest to używane z funkcją printf () do wypisywania wartości całkowitej przechowywanej w zmiennej.
Składnia:
printf("\%d",
Specyfikator formatu swobodnego\% f
\% f specyfikator formatu jest zaimplementowany do reprezentowania wartości ułamkowych. Jest to zaimplementowane w funkcji printf () do drukowania wartości ułamkowej lub zmiennoprzecinkowej przechowywanej w zmiennej. Zawsze, gdy chcesz wydrukować dane ułamkowe lub zmienne, musisz użyć specyfikatora formatu \% f .
Składnia:
printf("\%f",
Specyfikator formatu znaków \% c
Specyfikator formatu \% c jest zaimplementowany do reprezentowania znaków. Jest to używane z funkcją printf () do drukowania znaku przechowywanego w zmiennej. Chcąc wydrukować dane znakowe, należy uwzględnić specyfikator formatu \% c .
Składnia:
printf("\%c",
Specyfikator formatu ciągu\% s
\% s specyfikator formatu jest zaimplementowany do reprezentowania ciągów. Jest to używane w funkcji printf () do drukowania łańcucha zapisanego w zmiennej tablicy znaków. Kiedy musisz wydrukować ciąg znaków, powinieneś zaimplementować specyfikator formatu \% s .
Składnia:
printf("\%s",
Specyfikator formatu liczby całkowitej bez znaku\% u
\% u specyfikator formatu jest zaimplementowany do pobierania wartości z adresu zmiennej mającej zapisaną w pamięci liczbę całkowitą bez znaku. Jest to używane w funkcji printf () do drukowania zmiennej całkowitej bez znaku.
Składnia:
printf("\%u",
Specyfikator formatu długiego int\% ld
Specyfikator formatu \% ld jest zaimplementowany do reprezentowania długich wartości całkowitych. Jest to zaimplementowane za pomocą funkcji printf () do drukowania długiej liczby całkowitej przechowywanej w zmiennej.
Składnia:
printf("\%ld",