De formaatspecificatie is een tekenreeks die wordt gebruikt in de geformatteerde invoer- en uitvoerfuncties. De formatstring bepaalt het formaat van de invoer en uitvoer. De formatstring begint altijd met een '%'-teken.
De veelgebruikte formaatspecificaties in de printf()-functie zijn:
Formaatspecificatie | Beschrijving |
---|---|
%d of %i | Het wordt gebruikt om de ondertekende gehele waarde af te drukken, waarbij ondertekend geheel getal betekent dat de variabele zowel positieve als negatieve waarden kan bevatten. |
%in | Het wordt gebruikt om de geheel getalwaarde zonder teken af te drukken, waarbij het geheel getal zonder teken betekent dat de variabele alleen een positieve waarde kan bevatten. |
%O | Het wordt gebruikt om het octale gehele getal zonder teken af te drukken, waarbij de octale gehele waarde altijd begint met een 0-waarde. |
%X | Het wordt gebruikt om het hexadecimale gehele getal zonder teken af te drukken, waarbij de hexadecimale gehele waarde altijd begint met een 0x-waarde. Hierin worden alfabetische tekens in kleine letters afgedrukt, zoals a, b, c, enz. |
%X | Het wordt gebruikt om het hexadecimale gehele getal zonder teken af te drukken, maar %X drukt de alfabetische tekens in hoofdletters af, zoals A, B, C, enz. |
%F | Het wordt gebruikt voor het afdrukken van decimale waarden met drijvende komma. Standaard worden de 6 waarden afgedrukt na '.'. |
%en en | Het wordt gebruikt voor wetenschappelijke notatie. Het is ook bekend als Mantisse of Exponent. |
%G | Het wordt gebruikt om de decimale waarden met drijvende komma af te drukken, en het gebruikt de vaste precisie, d.w.z. de waarde na de komma in de invoer zou exact hetzelfde zijn als de waarde in de uitvoer. |
%P | Het wordt gebruikt om het adres in hexadecimale vorm af te drukken. |
%C | Het wordt gebruikt om het niet-ondertekende teken af te drukken. |
%S | Het wordt gebruikt om de snaren af te drukken. |
%ld | Het wordt gebruikt om de langtekenige gehele waarde af te drukken. |
Laten we de formaatspecificaties in detail begrijpen aan de hand van een voorbeeld.
int main() { int b=6; int c=8; printf('Value of b is:%d', b); printf(' Value of c is:%d',c); return 0; }
In de bovenstaande code drukken we de gehele waarde van b en c af met behulp van de %d-specificatie.
Uitvoer
scriptshell uitvoeren
int main() { int b=10; int c= -10; printf('Value of b is:%u', b); printf(' Value of c is:%u',c); return 0; }
In het bovenstaande programma geven we de waarde van b en c weer met behulp van een niet-ondertekende formaatspecificatie, d.w.z. %u. De waarde van b is positief, dus de %u-specificatie drukt de exacte waarde van b af, maar niet de waarde van c omdat c de negatieve waarde bevat.
Uitvoer
int main() { int a=0100; printf('Octal value of a is: %o', a); printf(' Integer value of a is: %d',a); return 0; }
In de bovenstaande code geven we de octale waarde en de gehele waarde van a weer.
Uitvoer
int main() { int y=0xA; printf('Hexadecimal value of y is: %x', y); printf(' Hexadecimal value of y is: %X',y); printf(' Integer value of y is: %d',y); return 0; }
In de bovenstaande code bevat y de hexadecimale waarde 'A'. We geven de hexadecimale waarde van y in twee formaten weer. We gebruiken %x en %X om de hexadecimale waarde af te drukken, waarbij %x de waarde in kleine letters weergeeft, d.w.z. 'a' en %X de waarde in een hoofdletter weergeeft, d.w.z. 'A'.
Hoe verander je de string in int?
Uitvoer
int main() { float y=3.4; printf('Floating point value of y is: %f', y); return 0; }
De bovenstaande code drukt de zwevende waarde van y af.
java case-verklaring
Uitvoer
int main() { float y=3; printf('Exponential value of y is: %e', y); return 0; }
Uitvoer
int main() { float y=3; printf('Exponential value of y is: %E', y); return 0; }
Uitvoer
int main() { float y=3.8; printf('Float value of y is: %g', y); return 0; }
In de bovenstaande code geven we de zwevende waarde van y weer met behulp van de %g-specificatie. De %g-specificatie geeft de uitvoer hetzelfde weer als de invoer, met dezelfde precisie.
Uitvoer
int main() { int y=5; printf('Address value of y in hexadecimal form is: %p', &y); return 0; }
Uitvoer
int main() { char a='c'; printf('Value of a is: %c', a); return 0; }
Uitvoer
mediatransmissie
int main() { printf('%s', 'javaTpoint'); return 0; }
Uitvoer
Minimale veldbreedtespecificatie
Stel dat we een uitvoer willen weergeven die een minimum aantal spaties op het scherm in beslag neemt. U kunt dit bereiken door een geheel getal weer te geven na het procentteken van de formaatspecificatie.
int main() { int x=900; printf('%8d', x); printf(' %-8d',x); return 0; }
In het bovenstaande programma geeft %8d specifier de waarde na 8 spaties weer, terwijl %-8d specifier een waarde links uitgelijnd maakt.
Uitvoer
Nu zullen we zien hoe we de lege ruimtes kunnen opvullen. Het wordt weergegeven in de onderstaande code:
int main() { int x=12; printf('%08d', x); return 0; }
In het bovenstaande programma betekent %08d dat de lege ruimte gevuld is met nullen.
hoeveel miljoenen zitten er in een miljard
Uitvoer
Precisie specificeren
We kunnen de precisie specificeren door '.' (Punt)-operator die wordt gevolgd door een geheel getal en een formaatspecificatie.
int main() { float x=12.2; printf('%.2f', x); return 0; }
Uitvoer