Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   printf() \r-Befehl unter Unix (https://www.delphipraxis.net/62627-printf-%5Cr-befehl-unter-unix.html)

ScorpionKing 7. Feb 2006 13:18


printf() \r-Befehl unter Unix
 
Hi Leute,
wenn man in C in die printf - Funktion "\r" schreibt, dann wird wieder an den Zeilenanfang gesprungen. Das brauche ich für eine Prozentanzeige in der Konsole ( printf("0% Prozent!\r"); ). Leider gibt es diesen "Befehl", wenn ich den Code unter Linux compiliere ja leider nicht mehr. Gibt es da eine andere Möglichkeit das zu realisieren?

MfG, ScorpionKing!

marabu 7. Feb 2006 13:21

Re: printf() \r-Befehl unter Unix
 
Das Steuerzeichen 13 (CR) musst du benutzen.

Grüße vom marabu

alcaeus 7. Feb 2006 13:22

Re: printf() \r-Befehl unter Unix
 
Oder in Code:
Code:
printf("Foobar\n");
Greetz
alcaeus

Robert Marquardt 7. Feb 2006 13:24

Re: printf() \r-Befehl unter Unix
 
Haeh? Was meinst du mit Befehl gibt es nicht mehr?
Uebrigens ist "%3d Prozent\r" besser, da dann der Text nicht springt.

ScorpionKing 8. Feb 2006 11:46

Re: printf() \r-Befehl unter Unix
 
Ihr versteht mich leider falsch. Der \r-Befehl steht nicht für einen Zeilenumbruch, sondern springt zum Anfang der Zeile!

marabu 8. Feb 2006 12:08

Re: printf() \r-Befehl unter Unix
 
Nach meinem Verständnis ist \r das gleiche wie \x0d und steht für das Steuerzeichen CARRIAGE RETURN (CR). Wenn bei dir \r nicht verfügbar ist, was niemand so richtig versteht, dann ist das doch eine Alternative, oder?

Grüße vom marabu

Robert Marquardt 8. Feb 2006 12:22

Re: printf() \r-Befehl unter Unix
 
An den Anfang der Zeile zu springen gibt es unter Linux durchaus.
Falls Linux nicht ausgeben will, dann liegt das moeglicherweise daran das stdio zeilengepuffert ist.
Die ausgabe erfolgt dann erst bei einem \n oder mit flush().

ScorpionKing 8. Feb 2006 13:18

Re: printf() \r-Befehl unter Unix
 
Zitat:

Zitat von marabu
Nach meinem Verständnis ist \r das gleiche wie \x0d und steht für das Steuerzeichen CARRIAGE RETURN (CR). Wenn bei dir \r nicht verfügbar ist, was niemand so richtig versteht, dann ist das doch eine Alternative, oder?

Grüße vom marabu

Der \r Befehl funktioniert doch unter Unix nicht, oder? Habe ich jedenfalls mal gelesen!

marabu 8. Feb 2006 13:39

Re: printf() \r-Befehl unter Unix
 
Linux ist nicht mein Ding - aber ich erwarte, dass der Compiler die gängigen Escapes erkennt und umsetzt. Allerdings frage ich mich, warum du nicht die conio Funktionen verwendest - immerhin willst du ja die Konsole ansteuern.

marabu

Robert Marquardt 8. Feb 2006 14:04

Re: printf() \r-Befehl unter Unix
 
Ach diese Jugend!
Es geht also nicht um ein konkretes Programm das nicht funktionieren will, sondern Du willst wissen ob es gehen koennte.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:25 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz