C standard :: tillæg

Formateret output

Bruges af forskellige funktioner til at konvertere data fra et intern format til et for mennesker læsbart format. Således bruges formateret output oftest til udskrifter. Du giver en format string som værdien for format til funktionen, den angiver hvorledes du ønsker data repræsenteret.

Funktioner falder i to kategorier:

byte output (erklæret ved <stdio.h>) er konvertering af data til præsentationer af sekvenser af typen char, funktioner er fprintf, printf, sprintf, vfprintf, vprintf og vsprintf. For disse funktioner er format string en multibyte string som begynder og slutter i initial_shift_state.

wide output (erklæret ved <wchar.h>) konverterer data til præsentationer af sekvenser af typen wchar_t, funktioner er fwprintf, wprintf, swprintf, vfwprintf, vwprintf og vswprintf. For disse funktioner er format string en wide-character string.

Format string

En format string har det samme format uanset om den anvendes til print funktioner eller scan funktioner. Følgende er syntaksen for format string:

format string

Format string er en streng der kan blandes med tekst til og værdier der skal formateres inden i teksten. Formateringen indledes med tegnet % og en formatspecifier som beskrives nedenstående. White space er et udtryk for tegn der ikke er synlige, som mellemrum, tabulator og nylinie. null er den generelle måde at afslutte strenge på i C, kaldes null-terminated string.

Formatspecifier

Efter % bruges nedenstående syntaks til at specificere konverteringen:

formatspecifier

Flag

Efter % kan der bruges 0 eller flere flags:

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.
space 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, n, o, u, x, X, e, E, f, g og G konverteringerne bliver feltbredden justeret med nuller lige efter et evt. fortegn.

Field width

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.

Precision

Evt. en precision som er minimum antal cifre for d, i, n, o, u, x og X konverteringer, eller decimaler til a, A, 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.

*: 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.

Formatspecifier

Skal passe sammen med datatypen.

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.
a, A double Decimal tal med fortegn og decimalpunktum vist i hexadecimal notation efter format [-]0Xd.dddp±mm. Antallet af cifre efter punktummet er identisk med precision. Første ciffer er enten 0 eller 1, hvis 1 vises i hex bits efter den første bit. Mantissen (mm) viser bitnummeret for mest betydende bit startende fra bit0.
f, 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.
n int * Gemmer antallen af tegn foran %n i integer pointeren som angivet i parameteren.
%   Giver % som output

 

 

 

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 Så meget af det, vi kalder management, består i at gøre det besværligt for mennesker at arbejde.

Peter Drucker



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