En streng kan formateres, sende den ut til konsollen eller sende den til en fil. Denne opplæringen forklarer formateringen av en streng, ved hjelp av printf () -funksjonen, sender den ut til terminalen (konsoll). I C ++ kan printf () -funksjonen brukes, gjennom inkludering av biblioteket.
Artikkelinnhold
- Aritmetiske typer
- Variadisk natur av Printf
- Strengtype
- Whitespace
- Konklusjon
Aritmetiske typer
Aritmetiske typer er heltall og flytende typer. Tenk på følgende program:
#inkludereUtgangen er:
Noe tekstDet første argumentet til printf () -funksjonen er en streng bokstavelig. Newline-tegnet, “\ n” i strengen bokstavelig, tvinger alt som skal skrives ut ved siden av å bli skrevet ut på neste linje, selv om den tingen er innenfor dobbeltkvotene. “\ N” er også en hvitromskarakter.
Med inkludering av, er "#include" egentlig nødvendig.
Heltall
Tenk på følgende PRINTF () uttalelser:
printf ("tall er: %i \ n", 52);Utgangen er:
Antall er: 52%I eller %D er et eksempel på en formatspesifikasjon. %i Innenfor det første argumentet for Printf -funksjonen, som er en streng bokstavelig, betyr erstatning med seg selv med heltallverdien som er neste argument for printf -funksjonen. %d er et synonym til %i. “\ N” vil alltid spille sin rolle i å sende det som skal skrives ut ved siden av neste linje på terminalen. En spesifikasjon som %i, skrevet ved siden av \ n, utgjør ingen interessekonflikt. Det andre argumentet til printf () -funksjonen kan være en variabel.
Ved å erstatte seg selv med neste argumentverdi for Printf -funksjonen, sies spesifikasjonen å bli utvidet til den tilsvarende verdien. Merk: %I er for et heltall, mens %f er for et flottørnummer.
Nå, hvis en null settes inn mellom % og den faktiske spesifikasjonen, i, i.e., %0i for 1 null, deretter vil 52 bli utsatt for 52. Hvis det er %02i, for 2 nuller, vil 52 fortsatt bli utført som 52. Hvis det er %03i, for 3 nuller, vil 52 bli utsendt som 052. Én null er lagt til, i den tredje posisjonen, og teller fra høyre ende av tallet. Hvis det er %04i, for 4 nuller, vil 52 bli utsendt som, 0052. To nuller er lagt til, i fjerde plassering, og teller fra høyre ende av nummeret.
I denne sammenhengen kalles null et flagg. Følgende program illustrerer dette:
#inkludereUtgangen er:
Antall er: 52Null i denne sammenhengen kalles et flagg. Et annet mulig flagg er plassen. Følgende program illustrerer dette for plassen:
#inkludereUtgangen er:
Antall er: 52Merk at med romflagget brukes ingen karakterer i formatets spesifikasjon. Et flagg legges foran nummeret for å utgjøre antall stillinger som er bedt om for presentasjonsfeltet, og teller fra høyre. Hvis antall posisjoner er mindre enn eller lik antall sifre, legges det ikke noe flagg til.
Feltbredde
Et felt er antall tegn som kan vises for det nummeret. En feltbredde er det maksimale antall tegn som programmereren håper å få. Feltbreddenummeret settes inn like etter flagget (høyre) i formatspesifikatoren. Det er det samme som forrige nummer. Hvis antall tegn som skal vises er naturlig større enn feltbredden, vil printf () -funksjonen tillate den. Følgende program illustrerer dette:
#inkludereUtgangen er:
Antall er: 001Flyte
Et flytende punktnummer er et tall med heltalldelen og en desimal del. Merk at heltalldelen ikke er representert som et heltall, internt. Den faktiske spesifikasjonen for flottøren er ”F”. Følgende program illustrerer dette:
#inkludereUtgangen for forfatterens datamaskin er:
Antall er: 2.530000Dette tallet har naturlig to desimaler. Dessverre ble 4 desimaler på 4 nuller vedlagt. Sannheten er at forfatterens datamaskin runder antall desimaler til 6. Det vil legge nuller til å gjøre opp for 6 desimaler hvis det naturlige antallet desimaler er mindre. Antall desimaler kan avgjøres av programmereren. Det kan være mindre enn eller lik 6, eller det kan være større enn 6.
Denne intensjonen trenger en annen kodekomponent, kalt presisjonskomponenten, for formatspesifikasjonen. Den består av prikken og et antall for antall desimaler ønsket. Følgende program illustrerer dette:
#inkludereUtgangen er:
Antall er: 2.530000Noter det ".0 ”er ikke i noen av spesifikasjonene.
Variadisk natur av Printf
Det første argumentet for printf () -funksjonen er en streng bokstavelig. Formatspesifikasjoner kan ispedes i strengen bokstavelig. Den første formatspesifikasjonen fra venstre, i strengen bokstavelig, tilsvarer det andre argumentet til printf () -funksjonen. Den andre formatspesifikasjonen fra venstre, i strengen bokstavelig, tilsvarer det tredje argumentet til printf () -funksjonen. Den tredje formatspesifikasjonen tilsvarer det fjerde argumentet for printf () -funksjonen og så videre. Følgende program illustrerer dette for Int- og Float -typene:
#inkludereUtgangen er:
Tall er 027 og 052 og 2.530
Strengtype
Basic String Format Specifier er %S. Følgende program viser bruken:
#inkludereUtgangen er:
Jeg elsker deg.'\ N' karakteren er å sende det som er trykt ved siden av neste linje. Alt det første argumentet her har %S som innhold.
De forskjellige mulige måtene å bruke tall, med spesifikatoren for strengformat, er som følger:
%numsDet er 11 tegn i strengen, “Jeg elsker deg.”Dot er en karakter. Hvis NUM er mindre enn 11, vil ikke utgangsstrengen bli avkortet. Hvis det er større enn 11, vil ekstra mellomrom bli polstret til venstre for å gjøre det totale antallet tegn i feltet til tallet som er gitt. Følgende kode illustrerer dette:
#inkludereUtgangen er:
Jeg elsker deg.Her er det en prikk foran nummeret. Prikken her betyr å skrive ut antall tegn på det gitte nummeret, som begynner fra det første tegnet. Dette betyr at hvis NUM er mindre enn det totale antallet tegn, avkort balansen til høyre. Hvis NUM er mer, legg til mellomrom til høyre for å gjøre opp for det gitte nummeret. Følgende program illustrerer dette:
#inkludereUtgangen er:
Jeg elsker jeg elsker deg.Denne utgangen trenger ytterligere forklaring. I strengen “Jeg elsker deg.\ n ”, det er 12 tegn. “\ N” er en karakter. De første 7 karakterene er "Jeg elsker". Programmets første printf () -funksjon skriver ut dette: “Jeg elsker”, og avkortet resten av strengen bokstavelig, inkludert “\ n”. Siden “\ n” av den første “Jeg elsker deg.\ n ”er tatt av, hva som må skrives ut neste, skrives ut på denne linjen. Den andre printf () -funksjonen skriver ut sine 11 tegn. Den tolvte karakteren, som er "\ n", får markøren til å gå til neste linje. Deretter skal 4 flere mellomrom skrives ut neste.
%-numsHer er det bindestrek foran nummeret. Bindestrek betyr, skriv ut antall tegn på det gitte nummeret, fra første karakter. I tillegg, ikke avkort hvis NUM er mindre enn det totale antallet tegn. Bare legg til flere mellomrom til høyre for å gjøre opp for det gitte nummeret. Følgende program illustrerer dette:
#inkludereUtgangen er:
Jeg elsker deg.Markøren vises etter 4 ekstra mellomrom i den tredje linjen.
%.num1-num2s, %-num1.num2sTolkningen av disse to varene er igjen som en øvelse for leseren.
Whitespace
“\ N” er et eksempel på en hvitromskarakter. Whitespace -tegn er rømningssekvenser. De er ikke trykt. De har bare sine individuelle effekter. For eksempel får “\ n” markøren til å gå til følgende linje. I de forrige kodeprøvene har denne "\ n" blitt brukt i det første argumentet for printf () -funksjonen, en streng bokstavelig. Det kan fremdeles brukes som en variabel, som følgende program viser:
#inkludereUtgangen er:
første linjeFølgende er hvitespasninger og deres betydninger:
\ n: Legg til en ny linje
\ T: Horisontal fane
\ V: vertikal fane
\ f: form feed
\ 040: enkelt plass ved å trykke på romfeltetasten
\ r: vognretur
Konklusjon
Strengformatering betyr å legge visse tegn for en streng, spesielt posisjoner og spesiell ordre. Dette innebærer også innsetting av hvitromstegn i visse posisjoner. C ++ 20 er den siste versjonen av C++. Det har et formatbibliotek. Imidlertid har de fleste C ++ kompilatorer ennå ikke implementert dette biblioteket. Merk, Printf () variadisk funksjon, integrert i C ++ -språket fra C -språket, ligner på formålet med formatbiblioteket. Det første argumentet til denne funksjonen er en streng bokstavelig. Formatspesifikasjonene er ispedd innenfor. Resten av argumentene til printf () -funksjonen tilsvarer disse spesifikasjonene i orden.