• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Specyfikatory formatu - Język C

Object Storage Arubacloud
0 głosów
1,172 wizyt
pytanie zadane 1 lutego 2020 w Rozwój zawodowy, nauka, praca przez Ferrow Początkujący (360 p.)
WItajcie. Uczę się właśnie na egzamin z podstaw programowania języka C na studiach informatycznych i pewna rzecz jest dla mnie nie do końca zrozumiała. Mianowice specyfikatory formatu. Zauważyłem, że w kompilatorze niektóre specyfikatory wydają się być niepotrzebne. Np. gdy damy specyfikator dla "long" czyli "%ld" to wyjdzie ten sam wynik, gdybyśmy dali samo "%d". Zależnie od typów zmiennych jest też tak w stałych tzn. 21l lub 21L zachowuje się tak samo gdybyśmy wpisali samą liczbę 21. Ponadto nie rozumiem sensu wprowadzania różnych wielkości zarówno specyfikatorów jak i literałów, ponieważ przy " LE" gdy damy np. 9.5E-04L to wyświetli nam się praktycznie to samo tylko z małą literą "e" w przypadku gdy literał będzie identyczny. Dodatkowo nie ma pojęcia dlaczego w każdym przypadku wyświetla inna liczba(ale w każdym ta sama). Proszę o pomoc i wyjaśnienie.

1 odpowiedź

0 głosów
odpowiedź 1 lutego 2020 przez tangarr Mędrzec (154,860 p.)
Funkcja printf nie rozróżnia typów przekazanych zmiennych. Całe sterowanie odbywa się przy pomocy specyfikatorów formatu.
Jeżeli przekażesz liczbę 8 bajtową (long long) i podasz specyfikator %d to funkcja odczyta tylko 2 lub 4 bajty (zależne od architektury).
Wszystko masz opisane tutaj http://www.cplusplus.com/reference/cstdio/printf/
komentarz 1 lutego 2020 przez Ferrow Początkujący (360 p.)
Ok Dziękuje, to dużo wyjaśnia. Czy mam rozumieć że wielkość specyfiaktora "E", "e" itd ma znaczenie czysto estetyczne?
komentarz 1 lutego 2020 przez tkz Nałogowiec (42,000 p.)

Z tabelki wynika, że tak. 

specifier Output Example
or i Signed decimal integer 392
u Unsigned decimal integer 7235
o Unsigned octal 610
x Unsigned hexadecimal integer 7fa
X Unsigned hexadecimal integer (uppercase) 7FA
f Decimal floating point, lowercase 392.65
F Decimal floating point, uppercase 392.65
e Scientific notation (mantissa/exponent), lowercase 3.9265e+2
E Scientific notation (mantissa/exponent), uppercase 3.9265E+2
g Use the shortest representation: %e or %f 392.65
G Use the shortest representation: %E or %F 392.65
a Hexadecimal floating point, lowercase -0xc.90fep-2
A Hexadecimal floating point, uppercase -0XC.90FEP-2
c Character a
s String of characters sample
p Pointer address b8000000
n Nothing printed.
The corresponding argument must be a pointer to a signed int.
The number of characters written so far is stored in the pointed location.
 
% A % followed by another % character will write a single % to the stream. %

Podobne pytania

0 głosów
2 odpowiedzi 656 wizyt
0 głosów
0 odpowiedzi 323 wizyt
0 głosów
1 odpowiedź 429 wizyt
pytanie zadane 19 czerwca 2018 w Rozwój zawodowy, nauka, praca przez Alan Kruszyński Obywatel (1,410 p.)

92,579 zapytań

141,429 odpowiedzi

319,657 komentarzy

61,963 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...