Heim >Backend-Entwicklung >C++ >%i vs. %d in C: Wann unterscheiden sich diese Formatspezifizierer?
Unterschiede zwischen den Formatspezifizierern %i und %d in formatierten E/A-Funktionen (printf / scanf)
Formatierte E/A-Funktionen wie printf und scanf verwendet Konvertierungsspezifizierer, um zu steuern, wie Daten während der Eingabe oder Ausgabe dargestellt werden. Unter diesen Spezifizierern werden %i und %d häufig für Ganzzahlen verwendet.
Verwendung für die Ausgabe (%i vs. %d)
Bei Verwendung als Formatspezifizierer für Ausgabe gibt es keinen Unterschied zwischen %i und %d. Beide führen zum gleichen Ergebnis. Sie stellen einen ganzzahligen Wert im Dezimalformat dar.
Eingabespezifizierer
Der Unterschied ergibt sich jedoch, wenn %i und %d als Eingabespezifizierer verwendet werden (in scanf ). Hier liegt der Hauptunterschied:
%i: Das Standardverhalten ähnelt %d (vorzeichenbehaftete Dezimalzahl). Es verfügt jedoch über eine zusätzliche Funktion: Es ermöglicht die Eingabe in anderen Basen, wie zum Beispiel:
Praktisches Beispiel
Um den Unterschied zu veranschaulichen, betrachten Sie die Eingabezeichenfolge „033“.
Zusammenfassend lässt sich sagen, dass sich %i und %d bei der Ausgabe zwar ähnlich verhalten, sich aber in ihrem Verhalten bei der Eingabe unterscheiden. %i bietet erweiterte Funktionalität, indem es hexadezimale und oktale Eingaben ermöglicht, während %d strikt auf vorzeichenbehaftete Dezimaleingaben beschränkt ist.
Das obige ist der detaillierte Inhalt von%i vs. %d in C: Wann unterscheiden sich diese Formatspezifizierer?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!