En formatspecifikation er et specialtegn eller en sekvens af tegn, der bruges til at definere typen af data, der skal udskrives på skærmen, eller typen af data, der skal scannes fra standardinput. En formatspecifikation begynder med et '%'-tegn efterfulgt af rækkefølgen af tegn for forskellige typer data.
Kort sagt fortæller den os, hvilken type data vi skal gemme, og hvilke der skal udskrives. Formatspecifikationer bruges primært med funktionerne scanf() og printf().
hvordan finder jeg skjulte apps på Android
For eksempel, hvis vi ønsker at læse og udskrive et heltal vha scanf() og printf()-funktioner, bruges enten %i eller %d, men der er en subtil forskel på begge %jeg og %d formatspecifikation .
%d angiver heltal med fortegn, mens %i angiver heltal af forskellige baser.
'%d' og '%i' opfører sig på samme måde med printf()
Der er ingen forskel mellem %i- og %d-formatspecifikationerne, når de bruges med printf.
Overvej følgende eksempel.
C
java streng format
// C program to demonstrate> // the behavior of %i and %d> // with printf statement> #include> int> main()> {> > int> num = 9;> > // print value using %d> > printf> (> 'Value of num using %%d is = %d
'> , num);> > // print value using %i> > printf> (> 'Value of num using %%i is = %i
'> , num);> > return> 0;> }> |
>
>Produktion
Value of num using %d is = 9 Value of num using %i is = 9>
%d og %i adfærd er forskellig med scanf()
%d antager base 10, mens %i automatisk registrerer basen.
hvad er mappeindsendelse
Derfor opfører begge specifikatorer sig forskelligt, når de bruges med en inputfunktion. Så værdien af 012 ville være 10 med %i, men 12 med %d.
- %d tager en heltalværdi som et decimaltal med fortegn, dvs. det tager negative værdier sammen med positive værdier, men værdierne skal være i decimal ellers vil den udskrive skraldværdi.
( Bemærk : Hvis inputtet er i det oktale format som 012, vil %d ignorere 0 og tage input som 12).
%i tager en heltalsværdi som en heltalsværdi med decimal-, hexadecimal- eller oktaltype.
For at indtaste en værdi i hexadecimalt format, skal værdien angives ved at gå foran 0x og for at indtaste en værdi i værdi i oktalt format, skal værdien angives ved at gå foran 0.
Overvej følgende eksempel.
C
// C program to demonstrate the difference> // between %i and %d specifier> #include> int> main()> {> > int> a, b, c;> > printf> (> 'Enter value of a in decimal format:'> );> > scanf> (> '%d'> , &a);> > printf> (> 'Enter value of b in octal format: '> );> > scanf> (> '%i'> , &b);> > printf> (> 'Enter value of c in hexadecimal format: '> );> > scanf> (> '%i'> , &c);> > printf> (> 'a = %i, b = %i, c = %i'> , a, b, c);> > return> 0;> }> |
>
>
konvertere et heltal til en streng
Produktion
Enter value of a in decimal format: 12 Enter value of b in octal format: 012 Enter value of c in hexadecimal format: 0x12 a = 12, b = 10, c = 18>
Forklaring
- Decimalværdien af a som 12 er 12
- Decimalværdien af b som 12(oktal) er 10
- Decimalværdien af c som 12(hexadecimal) er 18