String można sformatować, wysyłać go do konsoli lub wysyłając go do pliku. Ten samouczek wyjaśnia formatowanie ciągu, używając funkcji printf (), wysyłając ją do terminala (konsolę). W C ++ można użyć funkcji printf () poprzez włączenie biblioteki.
Treść artykułu
- Typy arytmetyczne
- Wariadyczny charakter printf
- Typ ciągu
- Biała przestrzeń
- Wniosek
Typy arytmetyczne
Typy arytmetyczne to typy liczb całkowitych i pływających. Rozważ następujący program:
#włączaćWyjście to:
jakiś tekstPierwszym argumentem funkcji printf () jest literał ciąg. Nowa postać, „\ n” w literale, wymusza wszystko, co można wydrukować obok wydrukowania na następnym wierszu, nawet jeśli to jest w podwójnych cytatach. „\ N” jest również postacią białej.
Z włączeniem „#include” nie jest tak naprawdę konieczne.
Liczba całkowita
Rozważ następujące instrukcje printf ():
printf („liczba to: %i \ n”, 52);Wyjście to:
Liczba to: 52%I lub %D jest przykładem specyfikatora formatu. %I w ramach pierwszego argumentu funkcji PrintF, która jest literałem ciągłym, oznacza zastąpienie się wartości całkowitej, która jest następnym argumentem funkcji PrintF. %D jest synonimem %i. „\ N” zawsze odgrywa swoją rolę w wysyłaniu tego, co ma zostać wydrukowane obok następnego wiersza na terminalu. Specyfikator taki jak %I, wpisany obok \ n, nie stanowi konfliktu interesów. Drugim argumentem funkcji printf () może być zmienna.
Zastępując się kolejną wartością argumentu funkcji drukowania, mówi się, że specyfikator jest rozszerzony do odpowiedniej wartości. Uwaga: %i dotyczy liczby całkowitej, a %F dotyczy numeru pływaka.
Teraz, jeśli jedno zero zostanie wstawione między % a faktycznym specyfikatorem, i, i.mi., %0i za 1 zero, a następnie 52 zostanie wyprowadzone jako 52. Jeśli jest to %02i, dla 2 zer, 52 nadal będzie wyprowadzane jako 52. Jeśli jest to %03i, dla 3 zer, 52 zostanie wyprowadzone jako 052. Jeden zero został dodany w trzeciej pozycji, liczy się z prawego końca liczby. Jeśli jest to %04i, dla 4 zer, 52 zostanie wyprowadzone jako 0052. W czwartej pozycji dodano dwie zera, licząc od prawego końca liczby.
W tym kontekście zero nazywa się flagą. Poniższy program ilustruje to:
#włączaćWyjście to:
Liczba to: 52Zero w tym kontekście nazywa się flagą. Inną możliwą flagą jest przestrzeń. Poniższy program ilustruje to dla przestrzeni:
#włączaćWyjście to:
Liczba to: 52Zauważ, że z flagą przestrzenną nie używano żadnego znaku w specyfikatorze formatu. Flaga jest dodawana przed liczbą, aby stworzyć liczbę pozycji wymaganych dla pola prezentacji, licząc z prawej strony. Jeśli liczba pozycji jest mniejsza lub równa liczbie cyfr, żadna flaga nie jest dodawana.
Szerokość pola
Pole to liczba znaków, które można wyświetlić dla tej liczby. Szerokość pola to maksymalna liczba znaków, które programista ma nadzieję uzyskać. Numer szerokości pola jest wstawiany tuż po flagie (w prawo) w specyfikacji formatu. Jest taki sam jak poprzedni numer. Jeśli liczba wyświetlanych znaków jest naturalnie większa niż szerokość pola, funkcja printf () na to pozwoli. Poniższy program ilustruje to:
#włączaćWyjście to:
Liczba to: 001Platforma
Numer punktu pływającego to liczba z częścią liczbową i częścią dziesiętną. Uwaga: część liczb całkowita nie jest reprezentowana jako liczba całkowita, wewnętrznie. Rzeczywisty specyfikator pływaka to „F”. Poniższy program ilustruje to:
#włączaćWyjście dla komputera autora to:
Liczba to: 2.530000Ta liczba ma naturalnie 2 miejsca po przecinku. Niestety dołączono 4 miejsca po przecinku 4 zer. Prawda jest taka, że komputer autora okrąża liczbę miejsc dziesiętnych do 6. Dodaje zera, aby nadrobić 6 miejsc po przecinku, jeśli naturalna liczba miejsc dziesiętnych jest mniejsza. Programista może rozstrzygać liczbę miejsc dziesiętnych. Może być mniejsze lub równe 6 lub może być większe niż 6.
Ta intencja wymaga innego komponentu kodu, zwanego komponentem precyzyjnym, dla specyfikatora formatu. Składa się z kropki i liczby dla liczby poszukiwanych miejsc dziesiętnych. Poniższy program ilustruje to:
#włączaćWyjście to:
Liczba to: 2.530000Zauważ, że „.0 ”nie jest w żadnym ze specyfikatorów.
Wariadyczny charakter printf
Pierwszym argumentem funkcji printf () jest literał ciąg. Specyfikatory formatu mogą być przeplatane w dosłownym sznurku. Pierwszy specyfikator formatu z lewej, w literale ciągów, odpowiada drugim argumentowi funkcji printf (). Drugi specyfikator formatu z lewej, w literale ciągów, odpowiada trzecim argumentowi funkcji printf (). Trzeci specyfikator formatu odpowiada czwartemu argumentowi funkcji printf () i tak dalej. Poniższy program ilustruje to dla typów INT i Float:
#włączaćWyjście to:
Liczby to 027 i 052 i 2.530
Typ ciągu
Podstawowy specyfikator formatu ciągów to %s. Poniższy program pokazuje jego użycie:
#włączaćWyjście to:
Kocham cię.Znakiem „\ n” jest wysłanie wszystkiego, co jest wydrukowane obok następnego wiersza. Cały pierwszy argument tutaj ma %s jako treść.
Różne możliwe sposoby używania liczb z specyfikatorem formatu ciągów są następujące:
%NumsW ciągu jest 11 znaków: „Kocham cię.„DOT to postać. Jeśli NUM jest mniejsza niż 11, ciąg wyjściowy nie zostanie obcięty. Jeśli jest to większe niż 11, dodatkowe przestrzenie zostaną wyściełane po lewej stronie, aby całkowita liczba znaków w polu podana liczba. Poniższy kod to ilustruje:
#włączaćWyjście to:
Kocham cię.Tutaj jest kropka przed liczbą. DOT tutaj oznacza wydrukowanie liczby znaków danej liczby, zaczynając od pierwszego postaci. Oznacza to, że jeśli NUM jest mniejsza niż całkowita liczba znaków, obcinaj równowagę po prawej stronie. Jeśli nume jest więcej, dodaj przestrzenie po prawej stronie, aby nadrobić podany numer. Poniższy program ilustruje to:
#włączaćWyjście to:
Kocham cię kocham.To wyjście wymaga dalszego wyjaśnienia. W ciągu „Kocham cię.\ n ”, jest 12 znaków. „\ N” to postać. Pierwsze 7 postaci to „Kocham”. Pierwsza funkcja programu printf () drukuje to: „I Love”, obcinając resztę literatu, w tym „\ n”. Od „\ n” pierwszego „Kocham cię.\ n ”zostało zdejmowane, cokolwiek trzeba wydrukować w następnym, jest wydrukowane na tej linii. Druga funkcja printf () drukuje swoje 11 znaków. Dwunastowa postać, która jest „\ n”, powoduje, że kursor przechodzi do następnej linii. Następnie należy wydrukować kolejne 4 przestrzenie.
%-NumsTutaj przed liczbą jest łącznik. Łącznik oznacza, wydrukuj liczbę znaków danej liczby, poczynając od pierwszej postaci. Dodatkowo nie obcinaj, czy num jest mniejszy niż całkowita liczba znaków. Po prostu dodaj więcej miejsc po prawej stronie, aby nadrobić podany numer. Poniższy program ilustruje to:
#włączaćWyjście to:
Kocham cię.Kursor pojawia się po 4 dodatkowych przestrzeniach w trzeciej linii.
%.NUM1-NUM2S, %-NUM1.num2sInterpretacja tych dwóch elementów pozostaje jako ćwiczenie dla czytelnika.
Biała przestrzeń
„\ N” jest przykładem postaci białej. Postacie białych to sekwencje ucieczki. Nie są drukowane. Po prostu mają swoje indywidualne efekty. Na przykład „\ n” powoduje, że kursor przechodzi do następującej linii. W poprzednich próbkach kodu ten „\ n” został zastosowany w pierwszym argumencie funkcji printf (), literał. Nadal może być stosowany jako zmienna, jak pokazuje następujący program:
#włączaćWyjście to:
Pierwsza liniaPoniżej znajdują się białe listy i ich znaczenia:
\N: Dodaj nową linię
\T: Zakładka pozioma
\ V: Karta pionowa
\F: Form Feed
\ 040: Pojedyncza przestrzeń, naciskając klawisz paska kosmicznego
\R: zwrot powozu
Wniosek
Formatowanie ciągów oznacza umieszczanie niektórych znaków dla łańcucha, w określonych pozycjach i określonej kolejności. Obejmuje to również wstawienie znaków białych w niektórych pozycjach. C ++ 20 to najnowsza wersja C++. Ma bibliotekę formatową. Jednak większość kompilatorów C ++ nie wdrożyła jeszcze tej biblioteki. Uwaga: funkcja Variatyka printf (), włączona do języka C ++ z języka C, jest podobna do celu biblioteki formatowej. Pierwszym argumentem tej funkcji jest literał ciąg. Specyfikatory formatu są przeplatane w środku. Reszta argumentów do funkcji printf () odpowiada tym specyfikacjom w porządku.