PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [C] printf Ausgabe ausrichten



Cyrix
15-02-2004, 01:18
Hallo,

ich bin neu hier im Forum und lerne privat momentan die Sprache C, weil es mir Spaß macht. Darum bitte keine Hinweise, das C++ oder Java doch viel Sinnvoller wäre :)

Ich konnte in meinem Buch leider noch keinen Hinweis darauf finden, ob - und wenn ja wie - man die printf Ausgaben ausrichten kann. Ich kenne das von Basic her noch, das es sowas wie 10,20 damals gab (10 von oben, 20 von links). Gibt es in C auch sowas für die printf Funktion oder irgendeine andere möglichkeit?

Ich bin kein Profi, darum würde ich mich freuen wenn ihr einem Neuling freundlich helfen könntet :)

Programmiert von euch noch jemand in C oder seid ihr alle auf C++ und Java umgestiegen?

Achja, gibt es explizit(!) einen Editor unter Linux, der NUR bzw. speziell für C geeignet ist? (Leichte Bedienung, Tag Highlighting, Anzeige von Zahlen je Zeile links)? emacs, vi(m) oder kate sind nicht so mein fall. Und Kdevelop ist ein wenig zu überdimensioniert für meine kleinen C Programme die ich eh in der Konsole compiliere :)

So, hoffe ich falle hier niemandem mit meinen Fragen auf die Nerven ;)

peschmae
15-02-2004, 09:08
Hmm,

also für das 10 von links kannst du natürlich sehr gut tabs oder spaces verwenden.
Für die 20 von Oben löschst du zuerst mit so ner Escape-Sequenz (müsste nachschauen wie die genau geht) und gibst dann ein paar Leerzeilen aus.

Für kompliziertere Sachen benutzt man dann normalerweilse die libncurses.

Wegen Editor: Ich find Nedit noch ganz nett. Kate mag ich aber besser zum Programmieren weil das so eine praktische Seitenleiste mit allen geöffneten Dateien hat.

MfG Peschmä

Cyrix
15-02-2004, 11:29
Hallo,

dankeschön für die Antwort. Kannst du mir auch sagen, wo ich ein paar Informationen zu dieser Library bekomme (libcurses), falls möglich mit Beispiel?

peschmae
15-02-2004, 13:21
libcurses ist der quasi-Standard für Konsolengrafiken unter Unix
libncurses ist die neu-Implementierung der Funktionalität dieser Lib durch das Gnu-Projekt.

Die Projekt-Page ist da:
http://www.gnu.org/software/ncurses/ncurses.html

Howtos/Tutorials sind die da:
http://web.cs.mun.ca/~rod/ncurses/ncurses.html
http://en.tldp.org/HOWTO/NCURSES-Programming-HOWTO/

Ich hab aber seliber nie wirklich was gemacht mit NCurses. Sind nur so Links aus meiner Bookmarksammlung. :)

MfG Peschmä

Cyrix
15-02-2004, 13:48
Wenn ich eine Applikation mit C unter Linux programmiere, wie schwer ist es dann wenn man solche fremden Libs nimmt, das z.B. eventuell für Windows zu portieren?

capchaos
15-02-2004, 15:39
Einfache Formatierungen wie "\t" für printf findest du in der man-page. Für komplexe Textausgabe braucht man eben sowas wie ncurses. Für Windows gibt's wohl keinen Port (irgendwie verständlich, ist DOS ;) ), aber du kannst dir das "portable" PDCurses (http://pdcurses.sf.net/) angucken.

peschmae
15-02-2004, 18:10
Ich denke schon dass es für Windows was vergleichbares gibt. Schliesslich kenne ich auch einen Port des Midnight Commander nach Windows - und der benutzt Curses.

Bei http://cygwin.com/ ist auch eine Ncurses-Bibliothek dabei.

MfG Peschmä

sixfriends
15-02-2004, 18:52
Sowas gibt es definitiv für Windows/DOS. Sonst könnte der Befehl
GOTOXY(x,y);
unter Turbo Pascal nicht funktionieren. :p

Ciro
18-02-2004, 21:10
Also probier mal das aus...Dies sind einige Steuerzeichen damit kannst du auch deinen Text Formatieren....
\b = Backspace,rückwärtsschritt
\f = Seitenvorschub
\r = cursor an den Zeilenanfang
\t = Horizontaltabulator
\v = Vertikaltabulator

greets Ciro

Hans-Georg Normann
18-02-2004, 22:23
ich hab keine Ahnung von C! Aber in der shell und in bash kann ich folgendes ausführen
[hans@rosi tmp]$ tput cup 10 20; echo "hallo". Daraus folgere ich, dass das irgendwie gehen muß. Man könnte sich ja den Befehl tput mal zu Gemüte führen.

Frohes ausprobieren.

Hans

Cyrix
18-02-2004, 23:39
Netter Tipp, danke. Aber wenn ich das ausführen würde, würde es nur unter Linux laufen, da Windows tput ja nicht kennt. Von daher dachte ich, das es sowas als C Befehl gibt, der unter allen Systemen funktioniert.

Aufrufen im C-Programm kannst du das übrigens so:

system("tput cup 10 20; echo hallo");

nomad
19-02-2004, 08:58
hi leute

warum einfach.....
ich benutz in diesen faellen ein modifiziertes
"conio.h" -> attachment conio_h.txt
also so gehts:

include "conio.h"


gotoxy(10,10);
printf("hello world");

gruss nomad