Die Nuancen von Konvertierungsspezifizierern verstehen: %i vs. %d in formatierten E/A-Funktionen
Im Bereich der formatierten Eingabe/Ausgabe ( IO)-Funktionen wie printf und scanf spielen Konvertierungsspezifizierer eine entscheidende Rolle bei der Steuerung des Eingabe- oder Ausgabeformats. Unter diesen Spezifizierern werfen %i und %d häufig Fragen zu ihren Ähnlichkeiten und Unterschieden auf.
Ausgabe: Eine einheitliche Präsenz
Bei Verwendung für Ausgabevorgänge, z. B. mit printf, %i und %d verhalten sich identisch. Sie stellen durchgängig ganze Zahlen im Dezimalformat dar. Der folgende Codeausschnitt demonstriert beispielsweise ihre identische Ausgabe:
int num = 123; printf("Decimal representation (%%d): %d\n", num); printf("Decimal representation (%%i): %i\n", num);
Eingabe: Besondere Verhaltensweisen
Bei der Bereitstellung in Eingabevorgängen mit scanf oder ähnlichen Funktionen wird jedoch %i und %d weisen deutliche Unterschiede auf. %d scannt ausschließlich ganze Zahlen als vorzeichenbehaftete Dezimalzahlen. Im Gegensatz dazu behält %i seine dezimale Interpretation bei, umfasst aber auch hexadezimale (mit 0x vorangestellte) und oktale (mit 0 vorangestellte) Eingaben.
Um diese Unterscheidung zu veranschaulichen, betrachten Sie das folgende Beispiel:
int num; scanf("%%d", &num); // Only accepts decimal input scanf("%%i", &num); // Accepts decimal, hexadecimal, or octal input
Wenn der Benutzer 033 eingibt, interpretiert scanf es als 27 mit %i (da es es als Oktal behandelt) und 33 mit %d (streng dezimal).
Zusammenfassung...
Während %i und %d in formatierten E/A ähnliche Zwecke verfolgen, liegt ihr Unterschied darin ihr Verhalten bei Eingabevorgängen. %d ist auf vorzeichenbehaftete Dezimaleingaben beschränkt, während %i sowohl Dezimal- als auch andere Basisformate (Hexadezimal und Oktal) nahtlos verarbeitet. Dieses Verständnis ist entscheidend für die Anpassung von Eingabevorgängen an die spezifischen Anforderungen Ihres Programms.
Das obige ist der detaillierte Inhalt vonWas ist der Hauptunterschied zwischen „%i' und „%d' in den formatierten Eingabe-/Ausgabefunktionen von C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!