C programmering for nybegyndere

konvertering af formateret output

Formateret output bruges af en familie af funktioner (printf m.fl.) der alle har det fælles at de omsætter parametre med forskellige datatyper til tekst.

%[flag][bredde][.precision][l|L|h]konvertering

Formatet eller konverteringen styres med en streng hvor der i teksten indsættes en formatspecifier efter ovenstående syntaksbeskrivelsen. Det er en sammensætning af tegn og tal der indledes med et %-tegn efterfulgt af evt. flag, bredde, precision, (l, L eller h) og en konvertering der skal være der. Efter tegnet % kommer følgende sekvens:

  • Nul eller flere flag, i vilkårlig orden, som modificerer konverteringen.
  • Evt. en bredde. Hvis output er smallere en feltbredden indsættes mellemrum, hvis intet er angivet i flag indsættes mellemrum til venstre for output, hvorved output højrestilles. Feltbredden kan antage * (beskrives senere) eller et heltal.
  • Evt. en precision som er minimum antal cifre for d, i, o, u, x og X konverteringer, eller decimaler til e, E eller f konverteringerne, det maksimale antal cifre for g og G konverteringerne eller det maksimale antal tegn for en streng s konvertering. Precision tager formen med et punktum (.) efterfulgt af * (beskrives senere) eller et heltal. Hvis der ikke angives noget efter punktum antages nul istedet.
  • Evt. h, l (som i el) eller L. h angiver at d, i, o, u, x og X konverteringer specificerer at parameteren er short int eller unsigned short int . l (som i el) efterfulgt af d, i, o, u, x og X konvertering angiver at parameteren er long int eller unsigned long int. L efterfulgt af e, E, f, g og G konverteringerne angiver at parameteren er long double.
  • Et bogstav der angiver konvertering.

* Som angivet kan man bruge * istedet for et tal til feltbredde eller precision, i sådanne situationer skal der en ekstra parameter på hvor tallet kan hentes.

Flag tegnene har følgende betydning:

Tegn Beskrivelse
- Resultatet af konverteringen vil blive ventrejusteret, hvis dette flaget er udeladt højrejusteres.
+ Resultatet vil altid have et minus eller plus tegn foran. Hvis dette flag udelades vil der kun blive et minustegn hvis resultatet er negativt.
mellemrum Hvis det første tegn af en konvertering ikke giver et tegn indsættes et mellemrum.
# Dette angiver et alternativ form. Med o konvertering bliver der altid et foranstillet nul, med x og X konverteringer indsættes 0x eller (0X) hvis resultatet er ikke-nul. For e, E, f, g og G konverteringerne bliver altid med decimalpunktum selvom er ingen cifre er efter decimalpunktummet.
0 Til d, i, o, u, x, X, e, E, f, g og G konverteringerne bliver feltbredden justeret med nuller lige efter et evt. fortegn.

Konverteringsspecifier:

Tegn Parm. Beskrivelse
d, i int Decimal heltal med fortegn i et [-]dddd format. Precision angiver minimum antal cifre, hvis resultatet består af færre cifre vil der fyldes op med foranstillede nuller.
o int Octal tal uden fortegn.
x, X int Hexadecimal tal uden fortegn eller 0x eller 0X foran. Bruger bogstaverne abcdef eller ABCDEF.
u int Decimal heltal uden fortegn. Precision angiver minimum antal cifre, hvis resultatet består af færre cifre vil der fyldes op med foranstillede nuller.
s char * Printer tegn fra tekststrengen indtil \0 eller antal tegn givet med precision.
c int, char Printer et tegn.
f double Decimal tal med fortegn og decimalpunktum efter format [-]ddd.ddd. Antallet af cifre efter decimalpunktummet er identisk med precision.
e, E double Konverteres til et eksponentielt noteret decimaltal efter format [-]m.dddddde±xx. Antallet af cifre d efter decimalpunktummet er identisk med precision men er default 6.
Eks. 1e+3=1*103=1000 og 1.0045e+3=1,0045*103=1004,5 og 1e-1=1*10-1=0,1
g, G double Konverteres til et decimaltal efter enten f eller e,E formatet. Hvilken afgøres efter hvad der passer bedst ind i feltbredden.

 

 

 

 

 

 

Ressourcer C Library opslag The Single UNIX® Specification, Version 2 Copyright © 1997 The Open Group GNU C Library Engelsk, med masser af gode og dybe artikler. Danske søgeord Find selv de bedste danske søgeord til din hjemmeside.
Produkter Bookingsystem
System for reservation af tid for behandlinger, aftaler, lokaler, udstyr, personale. Tilpasset lektionstimer. Udskriver arbejdsplaner og ugeskema for opslag. Statistik. Danmarks bedste pris nu kun kr. 1.695,-
HelpdeskEffektiviser din support-organisation med et Helpdesksystem. Fjern tidrøvere der forhindrer fokus på problemløsning. Lektionsplan Formidling af generelle information og specifikke lektioner fra undervisere til studerende/elever. Medlemssystem Medlemssystem online med administration af medlemskartotek, kontingentbetalinger, flettefiler m.m.
Styr selv Styr selv indholdet på dine hjemmesider med Content Management System.
Citat Gamle mennesker tror ikke, unge mennesker ved noget om kærligheden. Unge mennesker tror, gamle mennesker har glemt kærligheden.

Isaac Asimov



Professionelle løsninger til Internettet. Webdesign, e-handel, cms, søgeoptimering, webhotel, analyse, Intranet mm.