Veröffentlicht 14. Mai 200916 j Hallo zusammen, möchte in meinem Programm über mehrere printf Behfele Text sowie eine dazugehörende Zahl ausgeben. Der Text steht ganz normal links, die jeweilige Zahl soll aber rechtsbündig stehen. Die nachfolgenden printf Befehle, welche auch eine Zahl dann haben, soll auch rechtsbündig drunter stehen. Hab da mal von irgendwelchen Flags gelesen?! kA ob dass das ist! Wie realisiere ich das? Bearbeitet 14. Mai 200916 j von zero61
14. Mai 200916 j Hi arbeite doch mit \t als tabulator. Dann sollten die Ausgaben untereinander stehen. z.b.: printf("Text\tnoch ein Text\t\t\tein weiterer Text");
15. Mai 200916 j Mit \t habe ich es bereits versucht (siehe unten) und dann kommt genau das raus was ich im Anhang gepostet habe //-------------Ausgabe------------------------------------------ printf("\nListenpreis:\t\t\t %.2f EUR\n",listenpreis); printf("-Rabatt %.0f %% \t\t\t %.2f EUR\n",rabatt,xa); printf("= Zieleinkaufspreis\t\t\t %.2f EUR\n",zieleinkaufspreis); printf("-Skonto %.0f %% \t\t\t %.2f EUR\n",skonto,xb); printf("= Bareinkaufspreis\t\t\t %.2f EUR\n",bareinkaufspreis); printf("+ Versandkosten\t\t\t %.2f EUR\n",versandkosten); printf("= Bezugspreis (Einstandspreis)\t\t\t %.2f EUR\n",bezugspreis);
15. Mai 200916 j Der Text steht ganz normal links, die jeweilige Zahl soll aber rechtsbündig stehen.Die Zahlen sind rechtsbündig. Da du aber keine Breite angegeben hast, ist die Ausgabebreite für jede einzelne Zahl nur so groß, dass die jeweilige Zahl gerade eben hineinpasst. Die Breite kannst du zwischen dem % und dem Punkt angeben, z.B. so: "%8.2f"
18. Mai 200916 j Also mit der Breite funktioniert das nicht... oder ich hab das falsch angewendet. Zum Verzicht auf printf .. geht leider nicht, da wir es so in der Schule lernen und nicht anders. Komm da sonst durch einander //-------------Ausgabe------------------------------------------ printf("\nListenpreis:\t\ %8.2f EUR\n",listenpreis); printf("-Rabatt %.0f %% \t %8.2f EUR\n",rabatt,xa); printf("= Zieleinkaufspreis\t %8.2f EUR\n",zieleinkaufspreis); printf("-Skonto %.0f %% \t %8.2f EUR\n",skonto,xb); printf("= Bareinkaufspreis\t %8.2f EUR\n",bareinkaufspreis); printf("+ Versandkosten\t %8.2f EUR\n",versandkosten); printf("= Bezugspreis (Einstandspreis)\t %8.2f EUR\n",bezugspreis);
18. Mai 200916 j Mach die Tabs raus und sorg dafür, dass die Strings vor dem Formatfeld gleich lang sind.
18. Mai 200916 j oder füge jeweils noch tabs dazu, sodass du die zahlen untereinander bekommst. in der 1. 2. 4. 6. jeweils zwei mal \t dazu und in der 3. und 5 jeweils 1 \t dazu. dann sollte alles untereinander stehen
18. Mai 200916 j Mach die Tabs raus und sorg dafür, dass die Strings vor dem Formatfeld gleich lang sind. hab das versucht, jedoch leider ohne Erfolg oder füge jeweils noch tabs dazu, sodass du die zahlen untereinander bekommst. in der 1. 2. 4. 6. jeweils zwei mal \t dazu und in der 3. und 5 jeweils 1 \t dazu. dann sollte alles untereinander stehen printf("\nListenpreis:\t\t\t %8.2f EUR\n",listenpreis); printf("-Rabatt %.0f %% \t\t\t %8.2f EUR\n",rabatt,xa); printf("= Zieleinkaufspreis\t\t %8.2f EUR\n",zieleinkaufspreis); printf("-Skonto %.0f %% \t\t\t %8.2f EUR\n",skonto,xb); printf("= Bareinkaufspreis\t\t %8.2f EUR\n",bareinkaufspreis); printf("+ Versandkosten\t\t\t %8.2f EUR\n",versandkosten); printf("= Bezugspreis (Einstandspreis)\t %8.2f EUR\n",bezugspreis); Tatsache, so hats geklapt! Frage mich jetzt nur wie du das rausbekommen hast .. Könnt ihr mir das erklären?!
18. Mai 200916 j Weil du durch die Tabs genau das gemacht hast was Klotzkopp dir empfohlen hat, nämlich den Text vor den Zahlen gleich lang.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.