Wenn Sie möchten, dass das Wort "Hallo" in einer 40 Zeichen breiten Spalte mit Leerzeichen links gedruckt wird, verwenden Sie Folgendes.
char *ptr = "Hello";
printf("%40s\n", ptr);
Das gibt Ihnen 35 Leerzeichen, dann das Wort "Hallo". Auf diese Weise formatieren Sie Inhalte, wenn Sie wissen, wie breit die Spalte sein soll, aber die Daten sich ändern (nun, es ist eine Möglichkeit, dies zu tun).
Wenn Sie wissen, dass Sie genau 40 Leerzeichen und dann Text möchten, speichern Sie einfach die 40 Leerzeichen in einer Konstanten und drucken Sie sie aus. Wenn Sie mehrere Zeilen drucken müssen, verwenden Sie entweder mehrere printf
Anweisungen wie die obige oder führen Sie sie in einer Schleife aus, wobei Sie den Wert ptr
jedes Mal ändern .
Ich benutze diese Funktion, um meine Ausgabe einzurücken (zum Beispiel um eine Baumstruktur zu drucken). Das
indent
ist die Anzahl der Leerzeichen vor der Zeichenfolge.quelle
printf(..., indent, "", ...)
)Diese Anweisung reserviert eine Zeile mit 40 Zeichen und druckt eine Zeichenfolge am Ende der Zeile (wobei zusätzliche Leerzeichen entfernt werden, sodass die Gesamtzeilenlänge konstant bei 40 liegt). Gleiches kann für Zeichen und ganze Zahlen wie folgt verwendet werden:
Diese Methode, bei der ein Parameter zum Bestimmen von Leerzeichen verwendet wird, ist nützlich, wenn eine variable Anzahl von Leerzeichen erforderlich ist. Diese Anweisungen funktionieren weiterhin mit ganzzahligen Literalen wie folgt:
Hoffe das hilft jemandem wie mir in Zukunft.
quelle
error: empty character constant
für''
. Sollte es nicht sein' '
?"Hello"
alles sein könnte, hätte er ein Beispiel verwenden sollenWenn Sie genau 40 Leerzeichen vor dem String haben möchten, sollten Sie einfach Folgendes tun:
Wenn das zu schmutzig ist, können Sie dies tun (aber es ist langsamer als das manuelle Eingeben der 40 Leerzeichen):
printf("%40s%s", "", myStr );
Wenn Sie möchten, dass die Zeichenfolge in Spalte 40 ausgerichtet wird (dh bis zu 39 Leerzeichen, so dass das Zeichen ganz rechts in Spalte 40 steht), gehen Sie folgendermaßen vor:
printf("%40s", myStr);
Sie können auch "bis zu" 40 Leerzeichen nach dem String einfügen, indem Sie Folgendes tun:
printf("%-40s", myStr);
quelle