Bedste svar
C har mange formatspecifikationer. Man eksisterer naturligvis for hver type, men ud over det eksisterer andre sådan, at en programmør kan vise en variabel af en bestemt type i et par forskellige repræsentationer. For eksempel \% d vil udskrive et heltal. Men det samme heltal kan også vises i hexadecimal ved at bruge \% x. Ikke desto mindre kan en liste over alle de originale C-formatspecifikatorer findes her: Liste over alle formatspecifikatorer i C-programmering – Codeforwin
Dog anbefaler jeg, at du tager den mere moderne tilgang til at skrive din C-kode, der har at gøre med erklærer variabler og viser dem korrekt. Det vil sige at bruge definitioner leveret af og . Ved at inkludere disse overskrifter kan du nu erklære dine variabler sådan:
Kilde: Sådan C (pr. 2016)
-
int8\_t
, int16\_t
, int32\_t
, int64\_t
– signerede heltal
-
uint8\_t
, uint16\_t
, uint32\_t
, uint64\_t
-undersøgte heltal
-
float
– standard 32-bit flydende punkt
-
double
– standard 64-bit flydende punkt
-
intptr\_t, uintptr\_t, ptrdiff\_t
Det sidste punkt indeholder punkttyper, du kan bruge til pegearitmetik.
Når sådanne typer nu er givet, er den rigtige måde at vise dem på som følger:
-
size\_t
– \%zu
-
ssize\_t
– \%zd
-
ptrdiff\_t
– \%td
- rå pointe r-værdi –
\%p
(udskriver hex i moderne kompilatorer; kast din markør til (void *)
først)
-
int64\_t
– "\%" PRId64
-
uint64\_t
– "\%" PRIu64
64-bitstyper skal kun udskrives ved hjælp af PRI[udixXo]64
stilmakroer. Hvorfor? På nogle platforme er en 64-bit værdi en long
og på andre er den “sa long long
. Disse makroer giver den korrekte underliggende formatspecifikation på tværs platforme. Det er faktisk umuligt at specificere en korrekt platformstreng på tværs af platforme uden disse formatmakroer, fordi typerne skifter ud under dig (og husk at casting af værdier inden udskrivning ikke er sikkert eller logisk). div id = “fe270a60a2″>
– "\%" PRIdPTR
uintptr\_t
– "\%" PRIuPTR
intmax\_t
– "\%" PRIdMAX
uintmax\_t
– "\%" PRIuMAX
Et eksempel på udskrivning af en af disse typer:
printf("Local number: \%" PRIdPTR "\n\n", someIntPtr);
Bemærk at PRIdPTR er uden for citaterne, men lige efter procentsignalet. Noget irriterende syntaktisk faktisk.
Under alle omstændigheder håber jeg, at dette svarer på det meste af det, du var loo konge for. Oplysningerne om brug af C på en mere moderne måde med hensyn til datatyper og visning af dem via specielle formatspecifikatorer kom fra et godt dokument, jeg foreslår at læse Sådan C (pr. 2016) .
Glem heller ikke, at du kan slå formatformater og alle ting, der er relateret til printf () på mandsiderne. Hvis du er på et UNIX- eller UNIX-lignende system, skal du bare åbne din shell og
bash$ man printf
Også google er din ven …; -)
Svar
Formatangivere starter med en procentdel \% operatør og efterfulgt af et specielt tegn til identifikation af datatypen.
Der findes for det meste 6 typer formatspecifikatorer der er tilgængelige i C.
Liste over formatangivere i C
Heltalsformatspecifikator\% d
\% d formatspecifikator er implementeret til at repræsentere heltal værdier. Dette bruges sammen med funktionen printf () til udskrivning af det heltal, der er gemt i variablen.
Syntaks:
printf("\%d",);
Specifikator for flydeformat\% f
\% f format specifier er implementeret til at repræsentere brøkværdier. Dette implementeres inden for funktionen printf () til udskrivning af den brøk- eller flydende værdi, der er gemt i variablen. Når du har brug for at udskrive brøk- eller flydende data, skal du bruge formatet \% f .
Syntaks:
printf("\%f", );
Specifikation af tegnformat \% c
\% c -formatspecifikatoren er implementeret til at repræsentere tegn. Dette bruges med funktionen printf () til udskrivning af det tegn, der er gemt i en variabel. Når du vil udskrive tegndata, skal du indarbejde \% c formatspecifikatoren.
Syntaks:
printf("\%c",);
Specifikation for strengformat\% s
\% s format specifier er implementeret til at repræsentere strenge. Dette bruges i funktionen printf () til udskrivning af en streng, der er gemt i tegnarrayvariablen. Når du skal udskrive en streng, skal du implementere formatet \% s .
Syntaks:
printf("\%s",);
Usigneret heltal formatspecifikator\% u
\% u formatspecifikator er implementeret til at hente værdier fra adressen på en variabel med usigneret decimaltal, der er gemt i hukommelsen. Dette bruges inden for printf () -funktionen til udskrivning af den usignerede heltalsvariabel.
Syntaks:
printf("\%u",);
Long Int Format Specifier\% ld
\% ld formatspecifikator er implementeret til at repræsentere lange heltalværdier. Dette implementeres med funktionen printf () til udskrivning af den lange heltal, der er gemt i variablen.
Syntaks:
printf("\%ld",);