Progammiersprache C - printf

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
gora
Beiträge: 58
Registriert: 30.04.2004 21:27:43

Progammiersprache C - printf

Beitrag von gora » 21.06.2006 19:11:15

ich habe in einer schleife mehrere daten auszugeben durch mehrere printf's.
Ist es möglich, dass dies immer über der vorigen Ausgabe passiert, damit nicht so viel untereinander geschrieben wird? Also quasi einzeilig.

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Beitrag von peschmae » 21.06.2006 19:17:36

Das geht z.B. mit Terminal-Controll-Sequenzen oder wie man denen auch immer korrekt sagt. Escape-Sequenzen hab ich auch schon gehört:

http://www2.informatik.uni-halle.de/leh ... vt100.html

Beispiel:

Code: Alles auswählen

#!/bin/bash

echo -e "\e[s"
while $(true); do
        for SIGN in "/" "-" "\\" "|"; do
                echo -e "\033[u$SIGN"
                sleep 1
        done
done
macht so schrum dreh rumm wie unsere Mikrowelle ;)

Vorausgesetzt natürlich du gibst den Text auch auf einem Terminal aus das den Standards entspricht und die Kommanods interpretiert.

MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

gora
Beiträge: 58
Registriert: 30.04.2004 21:27:43

Beitrag von gora » 21.06.2006 19:22:26

Ich bräuchte das Ganze für C.

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 21.06.2006 19:23:43

Code: Alles auswählen

printf("Hallo Welt");
printf("\r");
printf("Dies überschreibt das vorherige, ggf. mit Leerzeichen auffüllen");
Beispiel 2:

Code: Alles auswählen

char* foo[] = { "Blablablablabla",
"Nur dies bleibt stehen" };
int main()
{
  int i;
  printf("Auch das ist nachher weg");
  for (i=0;i<2;i++) {
    printf("\r%-80s", foo[i]);
  }
}

gora
Beiträge: 58
Registriert: 30.04.2004 21:27:43

Beitrag von gora » 21.06.2006 20:30:40

Ah, danke, \r ists.
Aber die Zeile darf auch nicht zu lang sein, sonst funktionierts damit auch nicht...

Antworten