Formatspecifikationen i C bruges til at fortælle compileren om den type data, der skal udskrives eller scannes i input- og outputoperationer. De starter altid med en % symbol og bruges i den formaterede streng i funktioner som printf(), scanf, sprintf() osv.
C-sproget giver en række formatspecifikationer, der er forbundet med de forskellige datatyper såsom %d for int, %c for char osv. I denne artikel vil vi diskutere nogle almindeligt anvendte formatspecifikationer, og hvordan man bruger dem.
Liste over formatspecifikationer i C
Nedenstående tabel indeholder de mest almindeligt anvendte formatspecifikationer i C
Formatspecifikation | Beskrivelse |
---|---|
%c | For tegntype. |
%d | For signeret heltalstype. |
%e eller %E | Til videnskabelig notation af flydere. |
%f | Til flydetype. |
%g eller %G | Til flydetype med den aktuelle præcision. |
%jeg | Usigneret heltal |
%ld eller %li | Lang |
%lf | Dobbelt |
%Lf | Lang dobbelt |
%lu | Usigneret int eller usigneret lang |
%lli eller %lld | Lang lang |
%llu | Usigneret lang lang |
%O | Oktal repræsentation |
%p | Pointer |
%s | Snor |
%i logo java | Usigneret int |
%x eller %X | Hexadecimal repræsentation |
%n | Udskriver intet |
%% | Udskriver % tegn |
Eksempler på formatspecifikationer i C
1. Character Format Specifier – %c i C
%c er formatspecifikationen for char datatype i C-sprog. Det kan bruges til både formateret input og formateret output i C-sprog.
Syntaks:
scanf(' %d ...', ...); printf(' %d ...', ...);>
Eksempel:
C
// C Program to illustrate the %c format specifier.> #include> int> main()> {> > char> c;> > // using %c for character input> > scanf> (> 'Enter some character: %c'> , &c);> > // using %c for character output> > printf> (> 'The entered character: %c'> , &c);> > return> 0;> }> |
>
>
Input:
Enter some character: A>
Produktion:
The entered character: A>
2. Heltalsformatspecifikation (signeret) – %d i C
Vi kan bruge den signerede heltalsformatspecificator %d i funktionerne scanf() og print() eller andre funktioner, der bruger formateret streng til input og output af int datatype.
Syntaks:
scanf('%d...', ...); printf('%i...', ...);>
Eksempel:
C
// C Program to demonstrate the use of %d and %i> #include> // Driver code> int> main()> {> > int> x;> > // taking integer input> > scanf> (> 'Enter the two integers: %d'> , &x);> > // printing integer output> > printf> (> 'Printed using %%d: %d
'> , x);> > printf> (> 'Printed using %%i: %3i
'> , x);> > return> 0;> }> |
>
>
Input:
Enter the integer: 45>
Produktion:
Printed using %d: 45 Printed using %i: 45>
3. Usigneret heltalsformatspecifikation – %u i C
%u er formatspecifikationen for datatypen uden fortegn. Hvis vi angiver en negativ heltalsværdi til %u, konverterer det heltal til dets første komplement.
Syntaks:
printf(' %u ...', ...); scanf(' %u ...', ...);>
Eksempel: Det følgende C-program viser, hvordan du bruger %u i C.
C
// C Program to illustrate the how to use %u> #include> // driver code> int> main()> {> > unsigned> int> var;> > scanf> (> 'Enter an integer: %u'> , &var);> > printf> (> 'Entered Unsigned Integer: %u'> , var);> > // trying to print negative value using %u> > printf> (> 'Printing -10 using %%u: %u
'> , -10);> > return> 0;> }> |
>
faktorielle java
>
Input:
Enter an integer: 25>
Produktion:
Entered unsigned integer: 25 Printing -10 using %u: 4294967286>
4. Flydende komma-formatspecifikation – %f i C
Det %f er flydende komma-formatspecifikation i C-sprog, der kan bruges inde i den formaterede streng til input og output af flyde datatype. Udover %f kan vi bruge %Det er eller %OG formatspecifikationer for at udskrive flydende kommaværdi i eksponentiel form.
Syntaks:
printf(' %f ...', ...); scanf(' %e ...', ...); printf(' %E ...', ...);>
Eksempel:
C
// C program to demonstrate the use of %f, %e and %E> #include> // driver code> int> main()> {> > float> a = 12.67;> > printf> (> 'Using %%f: %f
'> , a);> > printf> (> 'Using %%e: %e
'> , a);> > printf> (> 'Using %%E, %E'> , a);> > return> 0;> }> |
>
>Produktion
Using %f: 12.670000 Using %e: 1.267000e+01 Using %E, 1.267000E+01>
5. Usigneret oktaltal for heltal – %o i C
Vi kan bruge %o-formatspecifikationen i C-programmet til at udskrive eller tage input for det oktale heltal uden fortegn.
Syntaks:
printf(' %o ...', ...); scanf(' %o ...', ...);>
Eksempel:
C
#include> int> main()> {> > int> a = 67;> > printf> (> '%o
'> , a);> > return> 0;> }> |
>
>Produktion
103>
6. Hexadecimal uden fortegn for heltal – %x i C
%x-formatspecifikationen bruges i den formaterede streng for hexadecimale heltal. I dette tilfælde vil alfabeterne i de hexadecimale tal være med små bogstaver. For cifre i det store alfabet bruger vi %X i stedet for.
Syntaks:
printf(' %x ...', ...); scanf(' %X ...', ...);>
Eksempel:
C
// C Program to demonstrate the use of %x and %X> #include> int> main()> {> > int> a = 15454;> > printf> (> '%x
'> , a);> > printf> (> '%X'> , a);> > return> 0;> }> |
>
>Produktion
3c5e 3C5E>
7. String Format Specifier – %s i C
%s i C bruges til at udskrive strenge eller tage strenge som input.
gør mens java
Syntaks:
printf(' %s ...', ...); scanf(' %s ...', ...);>
Eksempel:
C
// C program to illustrate the use of %s in C> #include> int> main()> {> > char> a[] => 'Hi Geeks'> ;> > printf> (> '%s
'> , a);> > return> 0;> }> |
>
>Produktion
Hi Geeks>
Eksempel: Arbejdet med %s med scanf() er en smule anderledes end dets arbejde med printf(). Lad os forstå dette ved hjælp af følgende C-program.
C
// C Program to illustrate the working of %s with scanf()> #include> int> main()> {> > char> str[50];> > // taking string as input> > scanf> (> 'Enter the String: %s'> , str);> > printf> (> 'Entered String: %s'> , str);> > return> 0;> }> |
>
>
4 måneder
Input
Enter the string: Hi Geeks>
Produktion
Hi>
Som vi kan se, scannes strengen kun, indtil der stødes på et mellemrum. Det kan vi undgå ved at bruge scanningssæt i C .
8. Adresseformatspecifikation – %p i C
C-sproget giver også formatspecifikationen til at udskrive adressen/pointerne. Vi kan bruge %p til at udskrive adresser og pointere i C
Syntaks
printf(' %p ...', ...);>
Eksempel:
C
#include> int> main()> {> > int> a = 10;> > printf> (> 'The Memory Address of a: %p
'> ,(> void> *)&a);> > return> 0;> }> |
>
>Produktion
The Memory Address of a: 0x7ffe9645b3fc>
Input og output formatering
C-sproget giver nogle værktøjer, som vi kan bruge til at formatere input og output. De er generelt indsat mellem %-tegnet og formatangivelsessymbolet. Nogle af dem er som følger:
- Et minus (-) tegn fortæller venstre justering.
- Et nummer efter % angiver den mindste feltbredde, der skal udskrives, hvis tegnene er mindre end størrelsen på bredden, det resterende mellemrum er fyldt med mellemrum, og hvis det er større, udskrives det, som det er uden trunkering.
- Et punktum(. )-symbol adskiller feltbredden med præcision.
Præcision fortæller det mindste antal cifre i et heltal, det maksimale antal tegn i en streng og antallet af cifre efter decimaldelen i en flydende værdi.
Eksempel på I/O-formatering
C
// C Program to demonstrate the formatting methods.> #include> int> main()> {> > char> str[] => 'geeksforgeeks'> ;> > printf> (> '%20s
'> , str);> > printf> (> '%-20s
'> , str);> > printf> (> '%20.5s
'> , str);> > printf> (> '%-20.5s
'> , str);> > return> 0;> }> |
>
>Produktion
geeksforgeeks geeksforgeeks geeks geeks>
Ofte stillede spørgsmål om C-formatspecifikationer
1. Har C en formatspecifikation for binære tal?
Nej, C-sproget giver ikke en formatspecifikation for binære tal.
2. Hvad er den formaterede streng?
Input- og outputfunktionerne i C tager en streng som et argument, der bestemmer, hvordan dataene vises på skærmen, eller dataene hentes til hukommelsen. Denne streng kaldes den formaterede streng.