In C++ wird die setw-Funktion verwendet, um die Anzahl der Zeichen festzulegen, die als Feldbreite für die nächste Einfügeoperation verwendet werden sollen. Gibt es irgendeine Funktion in C, ich meine, in der Standard-c-Bibliothek, die dasselbe tut?C-Äquivalent der 'setw'-Funktion
Antwort
printf ("%5d", 42);
Wird 42 mit 5 Räumen drucken. Lesen Sie die man-Seiten von printf, um zu verstehen, wie Padding, Überlauf und andere Nuancen funktionieren.
EDIT: Einige Beispiele -
int x = 4000;
printf ("1234567890\n");
printf ("%05d\n", x);
printf ("%d\n", x);
printf ("%5d\n", x);
printf ("%2d\n", x);
Gibt den Ausgang
1234567890
04000
4000
4000
4000
Beachten Sie, dass die %2d
zu klein war die Zahl übergeben, um es zu handhaben, aber dennoch den gesamten Wert gedruckt.
Beachten Sie, dass das Platzieren eines '-' vor der Padding-Nummer bewirkt, dass der Ausgang nach links ausgerichtet wird. Beispiel: 'printf ("% - 7s, "12345"); 'wird' 12345__' drucken, wobei '_' ein Leerzeichen ist. Dies steht im Gegensatz zu' printf ("% 7s," 12345 "); gib dir '__12345'. [Related Answer] (http://stackoverflow.com/a/276869/1214700) – mb595x
Nein, da der in C verwendete Stream den Zustand des Stream-Objekts nicht verwaltet.
Sie müssen angeben mit z. printf()
mit einem geeigneten Formatierungscode.
könnten Sie angeben, wie könnte ich das tun? Ich benötige die äquivalente Formatierung von 'setw (2)' ...... –
Eine weitere Option ist die Formatzeichenfolge als eine Variable zu definieren:
char print_format[] = "%5d"; printf(print_format, 42);
Die oben ähnlich ist C++ setw
, dass Sie den Inhalt der Variablen vor dem Drucken festlegen. Viele Gelegenheiten erfordern eine dynamische Formatierung der Ausgabe. Dies ist eine Methode, um dies zu erreichen.
setw Manipulator: Dieser Manipulator legt die minimale Feldbreite am Ausgang fest. Die Syntax lautet: setw (x) Hier bewirkt setw, dass die Zahl oder die Zeichenfolge, die darauf folgt, in einem Feld mit x Zeichen Breite gedruckt wird, und x ist das Argument, das in setw manipulator gesetzt wird. Die Header-Datei, die aufgenommen werden müssen, während setw Manipulator ist Beispielcode
#include <iostream>
using namespace std;
#include <iomanip>
void main()
{
int x1=12345,x2= 23456, x3=7892;
cout << setw(8) << "Exforsys" << setw(20) << "Values" << endl
<< setw(8) << "E1234567" << setw(20)<< x1 << endl
<< setw(8) << "S1234567" << setw(20)<< x2 << endl
<< setw(8) << "A1234567" << setw(20)<< x3 << endl;
}
Dies ist nicht die C-Äquivalenz –
Dies ist keine gültige Antwort. Nicht gleichwertig. – NicoBerrogorry
- 1. Ändern der Darstellung der Nummerierung der Latexabschnitte
- 2. Der Punkt der Bencodierung
- 3. Der Punkt der Handler?
- 4. Die Methode der Berechnung der Verzögerung zwischen dem Drücken der Taste und der Ausführung der Codezeile
- 5. Überprüfen der Sichtbarkeit der Bildlaufleiste
- 6. Gegenüber der Tabulatur der Seite?
- 7. Erweiterung der Standardkomponente der Feder
- 8. Ermitteln der Gesamtsumme der Rasteransicht
- 9. Der Zugriffsbereich der Cloud Shell
- 10. Vergleich der Summe der Quadratwurzeln
- 11. Änderung der Anzahl der Münzen
- 12. Prozentsatz der Gesamtsumme der Gruppe
- 13. Ändern der Farbe der Statusleiste
- 14. Anzeige der Zellinkonsistenz der Tabelle.
- 15. Umleiten der Standardeingabe der Konsolenanwendung
- 16. Ermitteln der Größe der UITableViewCell
- 17. Anpassen der Form der Begrenzungsrect
- 18. Laout der Zeile der Liste
- 19. Erfassen der Druck der Funktion
- 20. aus der Liste der Listen
- 21. Bestimmen der Geschwindigkeit der Erschütterung
- 22. Ändern der Standardbeschreibungssprache der Anwendung
- 23. Erhalt der Reihenfolge der Funktionsimplementierung
- 24. Einschränken der Anzahl der Funktionsiterationen
- 25. Der Datenquellwert in der Verbindungszeichenfolge
- 26. Ändern der Argumente der Prozesseingabeausgabe
- 27. Der Umfang der klassendefinierten Freundschaftsfunktion?
- 28. Entfernen der Spitze der PriorityQueue?
- 29. Berechnung der Anzahl der Kombinationen
- 30. Erhöhung der Genauigkeit der Gleitkommazahlen
Dies ist das erste Mal sein, kann ich jemanden gesehen haben, der versteht, wie Iostream Formatierer zu verwenden, und nicht, wie das Äquivalent, was mit 'printf zu tun '... es ist fast immer umgekehrt. :) –
Ja, ich laufe immer in die gleichen Sachen. Ich habe die C++ Style Iostream Formatierer in der Schule gelernt, aber wir verwenden C-Stil bei der Arbeit. –