Vilka är formatspecifikationerna i c?


Bästa svaret

C har många formatspecifikationer. En finns för varje typ uppenbarligen, men utöver det finns andra så att en programmerare kan visa en variabel av en viss typ i ett par olika representationer. Till exempel kommer \% d att skriva ut ett heltal. Men samma heltal kan också visas i hexadecimal genom att använda \% x. Ändå kan en lista med alla de ursprungliga C-formatspecifikationerna hittas här: Lista över alla formatspecifikationer i C-programmering – Codeforwin

Men jag rekommenderar att du tar en mer modern metod för att skriva din C-kod som har att göra med deklarera variabler och visa dem på lämpligt sätt. Det vill säga att använda definitioner från och . Genom att inkludera dessa rubriker kan du nu förklara dina variabler så:

Källa: Så här gör du C (från och med 2016)

  • int8\_t, int16\_t, int32\_t, int64\_t – signerade heltal
  • uint8\_t, uint16\_t, uint32\_t, uint64\_t -undersignade heltal
  • float – standard 32-bitars flytande punkt
  • double – standard 64-bitars flytpunkt
  • intptr\_t, uintptr\_t, ptrdiff\_t

Den sista punkten innehåller typer som du kan använda för pekarens aritmetik.

Med tanke på sådana typer är det korrekta sättet att visa dem på följande sätt:

  • size\_t\%zu
  • ssize\_t\%zd
  • ptrdiff\_t\%td
  • rå pointe r-värde – \%p (skriver ut hex i moderna kompilatorer; kasta din pekare till (void *) först)
  • int64\_t"\%" PRId64
  • uint64\_t"\%" PRIu64 64-bitars typer bör endast skrivas ut med PRI[udixXo]64 stilmakron. Varför? På vissa plattformar är ett 64-bitarsvärde en long och på andra är det ”sa long long. Dessa makron ger rätt underliggande formatspecifikation över Det är faktiskt omöjligt att ange en korrekt formatsträng för flera plattformar utan dessa formatmakron eftersom typerna ändras under dig (och kom ihåg att det inte är säkert eller logiskt att casta värden innan utskrift).
  • intptr\_t"\%" PRIdPTR
  • uintptr\_t"\%" PRIuPTR
  • intmax\_t"\%" PRIdMAX
  • uintmax\_t"\%" PRIuMAX

Ett exempel på att skriva ut en av dessa typer:

printf("Local number: \%" PRIdPTR "\n\n", someIntPtr);

Observera att PRIdPTR ligger utanför offerten men strax efter procentsignalen. Något irriterande syntaktiskt verkligen.

Hur som helst, jag hoppas att det här svarar på det mesta av det du var loo kung för. Informationen om att använda C på ett mer modernt sätt angående datatyper och visa dem via specialformatspecifikationer kom från ett fantastiskt dokument. Jag föreslår att du läser Hur man C (från och med 2016) .

Glöm inte heller att du kan leta upp formatspecifikationer och allt som printf () relaterar till man-sidorna. Om du använder ett UNIX- eller UNIX-liknande system, öppna bara ditt skal och

bash$ man printf

Google är också din vän …; -)

Svar

Formatspecifikationer börjar med en procentsats \% operatör och följt av ett specialtecken för att identifiera typ av data.

Det finns mest 6 typer av formatspecifikationer som finns i C.

Lista över formatspecifikationer i C

Heltalsformatspecifikator\% d

\% d -formatspecifikatorn implementeras för att representera heltalsvärden. Detta används med funktionen printf () för att skriva ut det heltalsvärde som är lagrat i variabeln.

Syntax:

printf("\%d",);

Specifikator för flytformat\% f

\% f format specifier implementeras för att representera bråkvärden. Detta implementeras inom funktionen printf () för att skriva ut det bråk- eller flytvärde som är lagrat i variabeln. När du behöver skriva ut bråkdelar eller flytande data måste du använda formatdefinitionen \% f .

Syntax:

printf("\%f", );

Specifikation för teckenformat \% c

Formatdefinitionen \% c är implementerad för att representera tecken. Detta används med funktionen printf () för att skriva ut tecknet som är lagrat i en variabel. När du vill skriva ut en teckendata bör du inkludera formatet \% c .

Syntax:

printf("\%c",);

String Format Specifier\% s

\% s -formatspecifikatorn implementeras för att representera strängar. Detta används i funktionen printf () för att skriva ut en sträng som är lagrad i teckenmatrisvariabeln. När du måste skriva ut en sträng bör du implementera formatet \% s .

Syntax:

printf("\%s",);

Onsignerad heltal Format Specifier\% u

\% u -formatspecifikatorn implementeras för att hämta värden från adressen till en variabel med osignerat decimaltal som är lagrat i minnet. Detta används inom funktionen printf () för att skriva ut den osignerade heltalvariabeln.

Syntax:

printf("\%u",);

Long Int Format Specifier\% ld

Formatspecifikatorn \% ld implementeras för att representera långa heltalsvärden. Detta implementeras med funktionen printf () för att skriva ut det långa heltalsvärdet som är lagrat i variabeln.

Syntax:

printf("\%ld",);

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *