„printf” jest popularną funkcją dla sformatowanych danych wyjściowych. C i wiele innych języków ma całą rodzinę powiązanych funkcji. Używaj tego znacznika tylko wtedy, gdy pytanie dotyczy bezpośrednio `printf` lub funkcji pokrewnych.
Ciągle napotykam specyfikatory formatu dla rodziny funkcji printf (). Chcę móc wydrukować podwójną (lub zmiennoprzecinkową) z maksymalną podaną liczbą cyfr po przecinku. Jeśli używam: printf("%1.3f", 359.01335); printf("%1.3f", 359.00999); dostaję 359.013 359.010 Zamiast pożądanego 359.013 359.01 Czy ktoś może mi pomóc?
Piszę skrypt powłoki bash do wyświetlenia, czy proces jest uruchomiony, czy nie. Do tej pory mam to: printf "%-50s %s\n" $PROC_NAME [UP] Kod daje mi takie wyjście: JBoss [DOWN] GlassFish [UP] verylongprocessname [UP] Chcę wypełnić lukę między dwoma polami za pomocą „-” lub „*”, aby była bardziej czytelna. Jak to …
Załóżmy, że masz ciąg, który NIE jest nullzakończony i znasz jego dokładny rozmiar, więc jak możesz wydrukować ten ciąg printfw C? Pamiętam taką metodę, ale nie mogę się teraz dowiedzieć ...
Bezpieczeństwo typów Haskella nie ma sobie równych tylko w przypadku języków z typami zależnymi. Ale w Text.Printf zachodzi pewna głęboka magia, która wydaje się raczej dziwna . > printf "%d\n" 3 3 > printf "%s %f %d" "foo" 3.3 3 foo 3.3 3 Jaka kryje się za tym głęboka magia? …
Próbuję przeczytać wiersz znaków, a następnie wydrukować szesnastkowy odpowiednik tych znaków. Na przykład, jeśli mam ciąg, czyli "0xc0 0xc0 abc123"gdzie pierwsze 2 znaki są c0w szesnastkowym, a pozostałe abc123w ASCII, to powinienem otrzymać c0 c0 61 62 63 31 32 33 Jednak printfużycie %xdaje mi ffffffc0 ffffffc0 61 62 63 …
Czy istnieje printfspecyfikator szerokości, który można zastosować do specyfikatora zmiennoprzecinkowego, który automatycznie sformatowałby dane wyjściowe do wymaganej liczby cyfr znaczących, tak że podczas ponownego skanowania łańcucha uzyskiwana jest oryginalna wartość zmiennoprzecinkowa? Na przykład załóżmy, że wypisuję a floatz dokładnością do 2miejsc dziesiętnych: float foobar = 0.9375; printf("%.2f", foobar); // prints …
W książce, którą czytam, jest napisane, że printfpojedynczy argument (bez specyfikatorów konwersji) jest przestarzały. Zaleca się zastąpić printf("Hello World!"); z puts("Hello World!"); lub printf("%s", "Hello World!"); Czy ktoś może mi powiedzieć, dlaczego printf("Hello World!");się myli? W książce jest napisane, że zawiera luki. Co to za luki?
Więc ja wreszcie czytanie przez K & R , a ja nauczyłem się czegoś w ciągu pierwszych kilku stronach, że istnieje postać ucieczka Backspace \b. Więc idę to przetestować i jest bardzo dziwne zachowanie: #include <stdio.h> main () { printf("hello worl\b\bd\n"); } Wynik jest hello wodl Czy ktoś może to …
Mam następujące size_t i = 0; uint32_t k = 0; printf("i [ %lu ] k [ %u ]\n", i, k); Podczas kompilacji pojawia się następujące ostrzeżenie: format ‘%lu’ expects type ‘long unsigned int’, but argument has type ‘uint32_t’ Kiedy przeprowadziłem to za pomocą szyny, otrzymałem: Format argument 1 to printf …
Mam dwie funkcje, jedną, która generuje komunikaty, Starting initialization...a drugą, która sprawdza kody powrotu i wyjścia "Ok", "Warning"lub "Error". Jednak generowany plik wyjściowy ma inną długość: Starting initialization...Ok. Checking init scripts...Ok. Jak mogę dostać coś takiego: Starting initialization... Ok. Checking init scripts... Ok.
Mam kod w C ++, który wyświetla size_t: size_t a; printf("%lu", a); Chciałbym, aby kompilacja przebiegła bez ostrzeżeń na architekturach 32- i 64-bitowych. Gdyby to był C99, mógłbym użyć printf("%z", a);. Ale AFAICT %znie istnieje w żadnym standardowym dialekcie C ++. Więc zamiast tego muszę zrobić printf("%lu", (unsigned long) a); …
Napisany w ten sposób wyświetla tekst na niebiesko: printf "\e[1;34mThis is a blue text.\e[0m" Ale chcę mieć format zdefiniowany w printf: printf '%-6s' "This is text" Teraz wypróbowałem kilka opcji dodawania koloru, bez powodzenia: printf '%-6s' "\e[1;34mThis is text\e[0m" Próbowałem nawet dodać kod atrybutu do formatu bez powodzenia. To nie …
#include <stdio.h> int main() { float a = 1234.5f; printf("%d\n", a); return 0; } Wyświetla 0!! Jak to możliwe? Jaki jest tego powód? Celowo umieściłem %dw printfoświadczeniu znak, aby zbadać zachowanie printf.
Wyrok printf("%f\n",0.0f); drukuje 0. Jednak oświadczenie printf("%f\n",0); wypisuje losowe wartości. Zdaję sobie sprawę, że przejawiam jakieś niezdefiniowane zachowanie, ale nie potrafię dokładnie określić dlaczego. Wartość zmiennoprzecinkowa, w której wszystkie bity są równe 0, jest nadal ważna i floatma wartość 0. floati intmają ten sam rozmiar na moim komputerze (jeśli to …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.