Wat zijn de formaatspecificaties in c?

Beste antwoord

C heeft veel formaatspecificaties. Er bestaat natuurlijk een voor elk type, maar daarnaast bestaan ​​er andere zodat een programmeur een variabele van een bepaald type in een paar verschillende representaties kan weergeven. \% d zal bijvoorbeeld een geheel getal afdrukken. Maar datzelfde gehele getal kan ook in hexadecimaal worden weergegeven door \% x te gebruiken. Desalniettemin vindt u hier een lijst met alle oorspronkelijke C-formaatspecificaties: Lijst met alle formaatspecificaties in C-programmering – Codeforwin

Ik raad je echter aan om de modernere benadering te volgen bij het schrijven van je C-code die te maken heeft met variabelen declareren en op de juiste manier weergeven. Dat is om definities te gebruiken die worden geleverd door en . Door deze headers op te nemen, kunt u uw variabelen nu als volgt declareren:

Bron: How to C (vanaf 2016)

  • int8\_t, int16\_t, int32\_t, int64\_t – gehele getallen met teken
  • uint8\_t, uint16\_t, uint32\_t, uint64\_t -ongetekende gehele getallen
  • float – standaard 32-bits zwevend point
  • double – standaard 64-bits drijvende komma
  • intptr\_t, uintptr\_t, ptrdiff\_t

Het laatste opsommingsteken bevat typen die u kunt gebruiken voor rekenkunde met aanwijzers.

Nu dergelijke typen worden gegeven, is de juiste manier om ze weer te geven als volgt:

  • size\_t\%zu
  • ssize\_t\%zd
  • ptrdiff\_t\%td
  • ruwe pointe r waarde – \%p (drukt hex af in moderne compilers; werp uw aanwijzer naar (void *) eerst)
  • int64\_t"\%" PRId64
  • uint64\_t"\%" PRIu64 64-bits typen mogen alleen worden afgedrukt met PRI[udixXo]64 stijlmacros. Waarom? Op sommige platforms is een 64-bits waarde een long en op andere is het “sa long long. Deze macros bieden de juiste onderliggende formaatspecificatie voor platforms. Het is eigenlijk onmogelijk om een ​​correcte cross-platform format string te specificeren zonder deze format macros omdat de types onder je vandaan veranderen (en onthoud dat het casten van waarden voor het printen niet veilig of logisch is).
  • intptr\_t"\%" PRIdPTR
  • uintptr\_t"\%" PRIuPTR
  • intmax\_t"\%" PRIdMAX
  • uintmax\_t"\%" PRIuMAX

Een voorbeeld van het afdrukken van een van deze typen:

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

Merk op dat de PRIdPTR buiten de aanhalingstekens valt, maar direct na het procentteken. Enigszins vervelend syntactisch inderdaad.

Hoe dan ook, ik hoop dat dit het meeste beantwoordt van wat je was koning voor. De informatie die is verstrekt over het gebruik van C op een modernere manier met betrekking tot datatypes en het weergeven ervan via speciale formaatspecificaties, kwam uit een geweldig document. Ik raad aan om How to C (vanaf 2016) .

Vergeet ook niet dat je formaatspecificaties kunt opzoeken en alles wat met printf () te maken heeft in de man-paginas. Als je op een UNIX- of UNIX-achtig systeem zit, open je gewoon je shell en

bash$ man printf

Ook Google is je vriend…; -)

Antwoord

Formaatspecificaties beginnen met een percentage \% operator en gevolgd door een speciaal teken om het type gegevens te identificeren.

Er zijn meestal 6 soorten formaatspecificaties die beschikbaar zijn in C.

Lijst met formaatspecificaties in C

Integer formaatspecificatie\% d

Het \% d formaatspecificatie is geïmplementeerd voor het weergeven van gehele getallen. Dit wordt gebruikt met de functie printf () voor het afdrukken van de integerwaarde die is opgeslagen in de variabele.

Syntaxis:

printf("\%d",);

Float-formaatspecificatie\% f

De \% f formaatspecificatie is geïmplementeerd voor het weergeven van breuken. Dit wordt geïmplementeerd in de functie printf () voor het afdrukken van de fractionele of zwevende waarde die is opgeslagen in de variabele. Telkens wanneer u fractionele of zwevende gegevens wilt afdrukken, moet u de \% f formaatspecificatie gebruiken.

Syntaxis:

printf("\%f", );

Tekenformaatspecificatie \% c

De \% c formaatspecificatie is geïmplementeerd voor het weergeven van karakters. Dit wordt gebruikt met de functie printf () voor het afdrukken van het teken dat is opgeslagen in een variabele. Als u karaktergegevens wilt afdrukken, moet u de \% c formaatspecificatie opnemen.

Syntaxis:

printf("\%c",);

String-formaatspecificatie\% s

De \% s formaatspecificatie is geïmplementeerd om tekenreeksen weer te geven. Dit wordt gebruikt in de functie printf () voor het afdrukken van een tekenreeks die is opgeslagen in de tekenreeksvariabele. Als u een string moet afdrukken, moet u de \% s formaatspecificatie implementeren.

Syntax:

printf("\%s",);

Unsigned Integer Format Specifier\% u

De \% u formaatspecificatie is geïmplementeerd voor het ophalen van waarden van het adres van een variabele waarvan een decimaal geheel getal zonder teken is opgeslagen in het geheugen. Dit wordt gebruikt binnen de functie printf () voor het afdrukken van de niet-ondertekende integervariabele.

Syntaxis:

printf("\%u",);

Long Int-formaatspecificatie\% ld

De \% ld formaatspecificatie is geïmplementeerd voor het weergeven van lange gehele getallen. Dit is geïmplementeerd met de functie printf () voor het afdrukken van de lange integerwaarde die is opgeslagen in de variabele.

Syntaxis:

printf("\%ld",);

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *