Heim > Backend-Entwicklung > C++ > Was ist der Hauptunterschied zwischen „%i' und „%d' in den formatierten Eingabe-/Ausgabefunktionen von C?

Was ist der Hauptunterschied zwischen „%i' und „%d' in den formatierten Eingabe-/Ausgabefunktionen von C?

Mary-Kate Olsen
Freigeben: 2024-12-18 13:45:16
Original
540 Leute haben es durchsucht

What's the Key Difference Between `%i` and `%d` in C's Formatted Input/Output Functions?

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);
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage