logo

Specyfikator formatu C

Specyfikator formatu jest ciągiem używanym w sformatowanych funkcjach wejściowych i wyjściowych. Ciąg formatujący określa format danych wejściowych i wyjściowych. Ciąg formatujący zawsze zaczyna się od znaku „%”.

Powszechnie używane specyfikatory formatu w funkcji printf() to:

Specyfikator formatu Opis
%d lub %i Służy do drukowania wartości całkowitej ze znakiem, gdzie liczba całkowita ze znakiem oznacza, że ​​zmienna może przyjmować zarówno wartości dodatnie, jak i ujemne.
%W Służy do drukowania wartości całkowitej bez znaku, gdzie liczba całkowita bez znaku oznacza, że ​​zmienna może przechowywać tylko wartość dodatnią.
%O Służy do drukowania ósemkowej liczby całkowitej bez znaku, gdzie wartość ósemkowa liczba całkowita zawsze zaczyna się od wartości 0.
%X Służy do drukowania szesnastkowej liczby całkowitej bez znaku, gdzie szesnastkowa wartość całkowita zawsze zaczyna się od wartości 0x. W tym przypadku znaki alfabetu są drukowane małymi literami, takimi jak a, b, c itp.
%X Służy do drukowania szesnastkowej liczby całkowitej bez znaku, ale %X drukuje wielkie litery alfabetu, takie jak A, B, C itd.
%F Służy do drukowania dziesiętnych wartości zmiennoprzecinkowych. Domyślnie drukuje 6 wartości po „.”.
%i i Służy do notacji naukowej. Jest również znany jako mantysa lub wykładnik.
%G Służy do drukowania dziesiętnych wartości zmiennoprzecinkowych i wykorzystuje stałą precyzję, tj. wartość po przecinku na wejściu będzie dokładnie taka sama, jak wartość na wyjściu.
%P Służy do drukowania adresu w postaci szesnastkowej.
%C Służy do drukowania znaku bez znaku.
%S Służy do drukowania ciągów znaków.
%ld Służy do drukowania wartości całkowitej z długim znakiem.

Przyjrzyjmy się szczegółowo specyfikatorom formatu na przykładzie.

    %D
 int main() { int b=6; int c=8; printf('Value of b is:%d', b); printf('
Value of c is:%d',c); return 0; } 

W powyższym kodzie drukujemy wartości całkowite b i c, używając specyfikatora %d.

Wyjście

Specyfikator formatu C
    %W
 int main() { int b=10; int c= -10; printf('Value of b is:%u', b); printf('
Value of c is:%u',c); return 0; } 

W powyższym programie wyświetlamy wartości b i c przy użyciu specyfikatora formatu bez znaku, tj. %u. Wartość b jest dodatnia, więc specyfikator %u wypisuje dokładną wartość b, ale nie wyświetla wartości c, ponieważ c zawiera wartość ujemną.

Wyjście

Specyfikator formatu C
    %O
 int main() { int a=0100; printf('Octal value of a is: %o', a); printf('
Integer value of a is: %d',a); return 0; } 

W powyższym kodzie wyświetlamy wartość ósemkową i całkowitą wartości a.

Wyjście

Specyfikator formatu C
    %x i %X
 int main() { int y=0xA; printf('Hexadecimal value of y is: %x', y); printf('
Hexadecimal value of y is: %X',y); printf('
Integer value of y is: %d',y); return 0; } 

W powyższym kodzie y zawiera wartość szesnastkową „A”. Wartość szesnastkową y wyświetlamy w dwóch formatach. Używamy %x i %X do wydrukowania wartości szesnastkowej, gdzie %x wyświetla wartość małymi literami, tj. „a”, a %X wyświetla wartość wielką literą, tj. „A”.

Wyjście

Specyfikator formatu C
    %F
 int main() { float y=3.4; printf('Floating point value of y is: %f', y); return 0; } 

Powyższy kod wypisuje zmienną wartość y.

Wyjście

Specyfikator formatu C
    %To jest
 int main() { float y=3; printf('Exponential value of y is: %e', y); return 0; } 

Wyjście

posortowana krotka Pythona
Specyfikator formatu C
    %I
 int main() { float y=3; printf('Exponential value of y is: %E', y); return 0; } 

Wyjście

Specyfikator formatu C
    %G
 int main() { float y=3.8; printf('Float value of y is: %g', y); return 0; } 

W powyższym kodzie wyświetlamy zmienną wartość y za pomocą specyfikatora %g. Specyfikator %g wyświetla dane wyjściowe takie same jak dane wejściowe, z tą samą precyzją.

Wyjście

Specyfikator formatu C
    %P
 int main() { int y=5; printf('Address value of y in hexadecimal form is: %p', &y); return 0; } 

Wyjście

Specyfikator formatu C
    %C
 int main() { char a='c'; printf('Value of a is: %c', a); return 0; } 

Wyjście

Specyfikator formatu C
    %S
 int main() { printf('%s', 'javaTpoint'); return 0; } 

Wyjście

Specyfikator formatu C

Specyfikator minimalnej szerokości pola

Załóżmy, że chcemy wyświetlić wynik zajmujący minimalną liczbę miejsc na ekranie. Można to osiągnąć, wyświetlając liczbę całkowitą po znaku procentu specyfikatora formatu.

 int main() { int x=900; printf('%8d', x); printf('
%-8d',x); return 0; } 

W powyższym programie specyfikator %8d wyświetla wartość po 8 spacjach, podczas gdy specyfikator %-8d powoduje, że wartość jest wyrównana do lewej.

Wyjście

Specyfikator formatu C

Teraz zobaczymy, jak wypełnić puste przestrzenie. Pokazano to w poniższym kodzie:

 int main() { int x=12; printf('%08d', x); return 0; } 

W powyższym programie %08d oznacza, że ​​puste miejsce jest wypełnione zerami.

Wyjście

witaj, świecie
Specyfikator formatu C

Określanie precyzji

Dokładność możemy określić za pomocą '.' operator (kropki), po którym następuje liczba całkowita i specyfikator formatu.

 int main() { float x=12.2; printf('%.2f', x); return 0; } 

Wyjście

Specyfikator formatu C