Próbuję znaleźć dobry sposób na wydrukowanie wiodących zer, na przykład 01001 dla kodu pocztowego. Chociaż numer byłby przechowywany jako 1001, jaki jest dobry sposób na zrobienie tego?
Zastanawiałem się nad użyciem instrukcji case / /, aby dowiedzieć się, ile cyfr to liczba, a następnie przekonwertować ją na tablicę znaków z dodatkowymi zerami do wydrukowania, ale nic nie poradzę, ale myślę, że można to zrobić za pomocą wymyka mi się składnia formatu printf.
Prawidłowym rozwiązaniem jest przechowywanie kodu pocztowego w bazie danych jako STRING. Pomimo tego, że może wyglądać jak liczba, nie jest. Jest to kod, w którym każda część ma znaczenie.
Liczba jest rzeczą, na której robisz arytmetykę. Kod pocztowy to nie to.
źródło
Umieszczasz zero przed minimalną szerokością pola:
źródło
Kod pocztowy to bardzo zlokalizowane pole, wiele krajów ma znaki w swoich kodach pocztowych, np. Wielka Brytania, Kanada. Dlatego w tym przykładzie powinieneś użyć pola string / varchar do przechowywania go, jeśli w dowolnym momencie wysyłasz lub pozyskujesz użytkowników / klientów / klientów / itp. Z innych krajów.
Jednak w ogólnym przypadku należy użyć zalecanej odpowiedzi (
printf("%05d", number);
).źródło
Jeśli korzystasz z komputera * NIX:
Spowoduje to wyświetlenie strony podręcznika podobnej do:
Chociaż pytanie dotyczy C, ta strona może być pomocna.
źródło
man
polecenia, zawęża ono je do tej konkretnej sekcji. Bez tego dostaniesz stronę man dla polecenia powłokiprintf
zamiast funkcji C.W tym miejscu „05” mówi „użyj 5 cyfr z zerami na początku”.
źródło
printf pozwala na różne opcje formatowania.
dawny:
źródło
Zaoszczędzisz sobie kupy kłopotów (długoterminowych), jeśli przechowujesz kod pocztowy jako ciąg znaków, którym jest, a nie liczbą, którą nie jest.
źródło
Bardziej elastyczny. Oto przykład drukowania rzędów liczb z wyrównaniem do prawej ze stałymi szerokościami i odstępami.
Funkcja i makro są tak zaprojektowane, aby printfs były bardziej czytelne.
źródło
#define FMT(x) (getFmt(8,x).c_str())
(zwróć uwagę na parametr x !), W przeciwieństwie do zmiennej (co robi twój kod).Jeśli chcesz zapisać kod pocztowy w postaci kodu pocztowego [], możesz użyć tego:
źródło