Sobota ma być dniem przyjemnym z powodu początku weekendu. Aby odejść trochę od tworzenia gier, napiszę z tej okazji na całkiem odmienny temat, który jest związany z językiem C i jego jedną z podstawowych funkcji dla danych wyjściowych. Mam tu na myśli "printf". "printf" w języku C jest na 99% przypadków pierwszą funkcją, którą poznajecie podczas uczenia się języka C (nie licząc punktu startowego jakim jest "main" ;)).
Tweet |
KRÓTKI OPIS FUNKCJI "PRINTF" W JĘZYKU C
Funkcja służy do podstawowej obsługi danych wyjściowych w celu konwersji określonego typu danej na łańcuch tekstowy nanoszony na strumień wyjściowy "stdout". Chciałem podkreślić, iż język C nie należy do najprostszych języków między innymi z powodu konieczności podania odpowiednich specyfikatorów formatu w tak zwanym "łańcuchu sterującym". Nie ma tak wygodnie jak w Javie na ten przykład, gdzie wrzucamy byle co do jednej funkcji, a reszta robi się sama. "printf" w języku C wymaga "prowadzenia za rękę" i trzeba podać właściwy specyfikator. Tutaj nic nas nie uchroni przed pomyłką, zatem jeden błąd może prowadzić do nieprzyjemnych konsekwencji w postaci wypisania nieoczekiwanych danych (taki przypadek określa się "niezdefiniowanym zachowaniem").
Funkcja "printf" w języku C umożliwia konwertowanie danych wejściowych na tekst wypisywany w strumieniu wyjściowym "stdout".
SPECYFIKATORY FORMATU FUNKCJI
Na zakończenie artykułu, przygotowałem tabelę specyfikatorów formatu "printf", aby wszystkie typy (przynajmniej te najważniejsze) były w jednym miejscu:
SPECYFIKATOR | ZNACZENIE |
%hd | liczba całkowita w systemie dziesiętnym ze znakiem (signed short int) |
%hu | liczba całkowita w systemie dziesiętnym bez znaku (unsigned short int) |
%d / %i | liczba całkowita w systemie dziesiętnym ze znakiem (signed int) |
%u | liczba całkowita w systemie dziesiętnym bez znaku (unsigned int) |
%ld | liczba całkowita w systemie dziesiętnym ze znakiem (signed long int) |
%lu | liczba całkowita w systemie dziesiętnym bez znaku (unsigned long int) |
%lld | liczba całkowita w systemie dziesiętnym ze znakiem (signed long long int) |
%llu | liczba całkowita w systemie dziesiętnym bez znaku (unsigned long long int) |
%o | liczba całkowita w systemie oktalnym (ósemkowym) |
%x / %X | liczba całkowita w systemie heksadecymalnym (szesnastkowym) |
%f | liczba zmiennoprzecinkowa w systemie dziesiętnym (float / double) |
%e / %E | liczba zmiennoprzecinkowa w notacji naukowej |
%c | pojedynczy znak |
%s | łańcuch znaków |
%p | wskaźnik jako adres (*) |
%% | znak procentu |
Artykuł trochę wyjęty z kieszeni, aby nie być tak monotematycznym, że tylko tworzenie gier i tworzenie gier. Dzisiaj zapoznaliście się ze funkcją "printf" w języku C. Na koniec dodam od siebie dwa słowa na odrębny temat. Od tej pory podnoszę częstotliwość wydawania nowych artykułów i będziecie mogli dostrzec nowy wątek każdego dnia, nawet w niedzielę.