Ein Formatbezeichner ist ein Sonderzeichen oder eine Zeichenfolge, mit der die Art der Daten definiert wird, die auf dem Bildschirm gedruckt werden sollen, oder die Art der Daten, die über die Standardeingabe gescannt werden sollen. Ein Formatbezeichner beginnt mit einem „%“-Zeichen, gefolgt von der Zeichenfolge für verschiedene Datentypen.
Kurz gesagt, es sagt uns, welche Art von Daten gespeichert und welche gedruckt werden sollen. Formatbezeichner werden hauptsächlich mit den Funktionen scanf() und printf() verwendet.
Wenn wir beispielsweise eine Ganzzahl mit lesen und drucken möchten scanf() und printf()-Funktionen wird entweder %i oder %d verwendet, es gibt jedoch einen subtilen Unterschied zwischen beiden %ich Und %D Formatbezeichner .
Javascript-Druck
%d gibt eine vorzeichenbehaftete Dezimalzahl an, während %i eine Ganzzahl verschiedener Basen angibt.
‚%d‘ und ‚%i‘ verhalten sich bei printf() ähnlich
Bei Verwendung mit printf gibt es keinen Unterschied zwischen den Formatspezifizierern %i und %d.
Betrachten Sie das folgende Beispiel.
C
str.substring in Java
// C program to demonstrate> // the behavior of %i and %d> // with printf statement> #include> int> main()> {> > int> num = 9;> > // print value using %d> > printf> (> 'Value of num using %%d is = %d
'> , num);> > // print value using %i> > printf> (> 'Value of num using %%i is = %i
'> , num);> > return> 0;> }> |
>
Name der Make-up-Produkte
>Ausgabe
Value of num using %d is = 9 Value of num using %i is = 9>
Das Verhalten von %d und %i unterscheidet sich bei scanf()
%d geht von Basis 10 aus, während %i die Basis automatisch erkennt.
Daher verhalten sich beide Spezifizierer unterschiedlich, wenn sie mit einer Eingabefunktion verwendet werden. Der Wert von 012 wäre also 10 bei %i, aber 12 bei %d.
- %d nimmt einen Ganzzahlwert als vorzeichenbehaftete Dezimalzahl an, d. h. es nimmt negative Werte zusammen mit positiven Werten an, aber die Werte sollten in Dezimalzahlen vorliegen, sonst werden fehlerhafte Werte ausgegeben.
( Notiz : Wenn die Eingabe im Oktalformat wie 012 vorliegt, ignoriert %d 0 und nimmt die Eingabe als 12).
%i nimmt einen Ganzzahlwert als Ganzzahlwert mit Dezimal-, Hexadezimal- oder Oktaltyp an.
Um einen Wert im Hexadezimalformat einzugeben, muss dem Wert ein 0x vorangestellt werden. Um einen Wert im Oktalformat einzugeben, muss dem Wert eine 0 vorangestellt werden.
Betrachten Sie das folgende Beispiel.
lokales Datum
C
// C program to demonstrate the difference> // between %i and %d specifier> #include> int> main()> {> > int> a, b, c;> > printf> (> 'Enter value of a in decimal format:'> );> > scanf> (> '%d'> , &a);> > printf> (> 'Enter value of b in octal format: '> );> > scanf> (> '%i'> , &b);> > printf> (> 'Enter value of c in hexadecimal format: '> );> > scanf> (> '%i'> , &c);> > printf> (> 'a = %i, b = %i, c = %i'> , a, b, c);> > return> 0;> }> |
>
wie man ein Skript ausführt
>
Ausgabe
Enter value of a in decimal format: 12 Enter value of b in octal format: 012 Enter value of c in hexadecimal format: 0x12 a = 12, b = 10, c = 18>
Erläuterung
- Der Dezimalwert von a as 12 ist 12
- Der Dezimalwert von b als 12(oktal) ist 10
- Der Dezimalwert von c als 12 (hexadezimal) ist 18